From nobody Mon Sep 8 07:57:14 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1C79AEE57F0 for ; Fri, 8 Sep 2023 10:20:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241013AbjIHKUQ (ORCPT ); Fri, 8 Sep 2023 06:20:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52800 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235512AbjIHKUO (ORCPT ); Fri, 8 Sep 2023 06:20:14 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF8EF210D for ; Fri, 8 Sep 2023 03:19:40 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 46467C433D9; Fri, 8 Sep 2023 10:17:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1694168271; bh=q62jcKfbyvw1UyVsR97jLApwSi8lfnOL5ELNif2Hl1k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=dcfgBTZELeDlvRfNAxwJZ8XBsoPl3VGjKYz63YW4cuRev4tzeMsqqr2dTIQir65f1 kISPN1HfkmlgYTsMtOaXneOxowbDlExDh/iHoxuu3o7uWGwZgiZS8+DgUvGuYHoNeN gFdibWX83X+LrQQRFyUJRBCg4aec/5iIOUpbuxtaYyayncO1JftcAaKJCTdyeEKlq7 2LKAZf9X57qXdjh3ERrMGnmudavp74xQ7AN3+MvAoz8NcXR1ro6bFSvM62nOkh26Wi Fpm9A74/v2V/PZLw88H4s61ehzGGdAmeqGgtoqlylis7SBG3MHIFr/G041dc4EX57e pU/kZl7ZZFoiw== From: Michael Walle Date: Fri, 08 Sep 2023 12:16:57 +0200 Subject: [PATCH v3 39/41] mtd: spi-nor: winbond: sort flash_info entries MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230807-mtd-flash-info-db-rework-v3-39-e60548861b10@kernel.org> References: <20230807-mtd-flash-info-db-rework-v3-0-e60548861b10@kernel.org> In-Reply-To: <20230807-mtd-flash-info-db-rework-v3-0-e60548861b10@kernel.org> To: Tudor Ambarus , Pratyush Yadav , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra Cc: linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, Michael Walle X-Mailer: b4 0.12.2 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The flash ID is the new primary key into our database. Sort the entry by it. Keep the most specific ones first, because there might be ID collisions between shorter and longer ones. Signed-off-by: Michael Walle --- drivers/mtd/spi-nor/winbond.c | 166 +++++++++++++++++++++-----------------= ---- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c index edc64c99cd81..142fb27b2ea9 100644 --- a/drivers/mtd/spi-nor/winbond.c +++ b/drivers/mtd/spi-nor/winbond.c @@ -72,37 +72,25 @@ static const struct flash_info winbond_nor_parts[] =3D { .name =3D "w25x16", .size =3D SZ_2M, .no_sfdp_flags =3D SECT_4K, - }, { - .id =3D SNOR_ID(0xef, 0x60, 0x15), - .name =3D "w25q16dw", - .size =3D SZ_2M, - .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, - .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { .id =3D SNOR_ID(0xef, 0x30, 0x16), .name =3D "w25x32", .size =3D SZ_4M, .no_sfdp_flags =3D SECT_4K, }, { - .id =3D SNOR_ID(0xef, 0x70, 0x15), - .name =3D "w25q16jv-im/jm", - .size =3D SZ_2M, - .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, - .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, + .id =3D SNOR_ID(0xef, 0x30, 0x17), + .name =3D "w25x64", + .size =3D SZ_8M, + .no_sfdp_flags =3D SECT_4K, }, { .id =3D SNOR_ID(0xef, 0x40, 0x12), .name =3D "w25q20cl", .size =3D SZ_256K, .no_sfdp_flags =3D SECT_4K, }, { - .id =3D SNOR_ID(0xef, 0x50, 0x12), - .name =3D "w25q20bw", - .size =3D SZ_256K, - .no_sfdp_flags =3D SECT_4K, - }, { - .id =3D SNOR_ID(0xef, 0x60, 0x12), - .name =3D "w25q20ew", - .size =3D SZ_256K, + .id =3D SNOR_ID(0xef, 0x40, 0x14), + .name =3D "w25q80bl", + .size =3D SZ_1M, .no_sfdp_flags =3D SECT_4K, }, { .id =3D SNOR_ID(0xef, 0x40, 0x16), @@ -110,57 +98,84 @@ static const struct flash_info winbond_nor_parts[] =3D= { .size =3D SZ_4M, .no_sfdp_flags =3D SECT_4K, }, { - .id =3D SNOR_ID(0xef, 0x60, 0x16), - .name =3D "w25q32dw", - .size =3D SZ_4M, + .id =3D SNOR_ID(0xef, 0x40, 0x17), + .name =3D "w25q64", + .size =3D SZ_8M, + .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, + }, { + .id =3D SNOR_ID(0xef, 0x40, 0x18), + .name =3D "w25q128", .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, + }, { + .id =3D SNOR_ID(0xef, 0x40, 0x19), + .name =3D "w25q256", + .size =3D SZ_32M, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, - .otp =3D SNOR_OTP(256, 3, 0x1000, 0x1000), + .fixups =3D &w25q256_fixups, }, { - .id =3D SNOR_ID(0xef, 0x70, 0x16), - .name =3D "w25q32jv", - .size =3D SZ_4M, + .id =3D SNOR_ID(0xef, 0x40, 0x20), + .name =3D "w25q512jvq", + .size =3D SZ_64M, + .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, + }, { + .id =3D SNOR_ID(0xef, 0x50, 0x12), + .name =3D "w25q20bw", + .size =3D SZ_256K, + .no_sfdp_flags =3D SECT_4K, + }, { + .id =3D SNOR_ID(0xef, 0x50, 0x14), + .name =3D "w25q80", + .size =3D SZ_1M, + .no_sfdp_flags =3D SECT_4K, + }, { + .id =3D SNOR_ID(0xef, 0x60, 0x12), + .name =3D "w25q20ew", + .size =3D SZ_256K, + .no_sfdp_flags =3D SECT_4K, + }, { + .id =3D SNOR_ID(0xef, 0x60, 0x15), + .name =3D "w25q16dw", + .size =3D SZ_2M, .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { - .id =3D SNOR_ID(0xef, 0x80, 0x16), - .name =3D "w25q32jwm", + .id =3D SNOR_ID(0xef, 0x60, 0x16), + .name =3D "w25q32dw", .size =3D SZ_4M, .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, .otp =3D SNOR_OTP(256, 3, 0x1000, 0x1000), }, { - .id =3D SNOR_ID(0xef, 0x80, 0x17), - .name =3D "w25q64jwm", + .id =3D SNOR_ID(0xef, 0x60, 0x17), + .name =3D "w25q64dw", .size =3D SZ_8M, .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { - .id =3D SNOR_ID(0xef, 0x80, 0x18), - .name =3D "w25q128jwm", + .id =3D SNOR_ID(0xef, 0x60, 0x18), + .name =3D "w25q128fw", .size =3D SZ_16M, .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { - .id =3D SNOR_ID(0xef, 0x80, 0x19), - .name =3D "w25q256jwm", + .id =3D SNOR_ID(0xef, 0x60, 0x19), + .name =3D "w25q256jw", .size =3D SZ_32M, - .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { - .id =3D SNOR_ID(0xef, 0x30, 0x17), - .name =3D "w25x64", - .size =3D SZ_8M, - .no_sfdp_flags =3D SECT_4K, + .id =3D SNOR_ID(0xef, 0x60, 0x20), + .name =3D "w25q512nwq", + .otp =3D SNOR_OTP(256, 3, 0x1000, 0x1000), }, { - .id =3D SNOR_ID(0xef, 0x40, 0x17), - .name =3D "w25q64", - .size =3D SZ_8M, + .id =3D SNOR_ID(0xef, 0x70, 0x15), + .name =3D "w25q16jv-im/jm", + .size =3D SZ_2M, + .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { - .id =3D SNOR_ID(0xef, 0x60, 0x17), - .name =3D "w25q64dw", - .size =3D SZ_8M, + .id =3D SNOR_ID(0xef, 0x70, 0x16), + .name =3D "w25q32jv", + .size =3D SZ_4M, .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { @@ -168,64 +183,49 @@ static const struct flash_info winbond_nor_parts[] = =3D { .name =3D "w25q64jvm", .size =3D SZ_8M, .no_sfdp_flags =3D SECT_4K, - }, { - .id =3D SNOR_ID(0xef, 0x60, 0x18), - .name =3D "w25q128fw", - .size =3D SZ_16M, - .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, - .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { .id =3D SNOR_ID(0xef, 0x70, 0x18), .name =3D "w25q128jv", .size =3D SZ_16M, .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, - }, { - .id =3D SNOR_ID(0xef, 0x50, 0x14), - .name =3D "w25q80", - .size =3D SZ_1M, - .no_sfdp_flags =3D SECT_4K, - }, { - .id =3D SNOR_ID(0xef, 0x40, 0x14), - .name =3D "w25q80bl", - .size =3D SZ_1M, - .no_sfdp_flags =3D SECT_4K, - }, { - .id =3D SNOR_ID(0xef, 0x40, 0x18), - .name =3D "w25q128", - .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, - }, { - .id =3D SNOR_ID(0xef, 0x40, 0x19), - .name =3D "w25q256", - .size =3D SZ_32M, - .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, - .fixups =3D &w25q256_fixups, }, { .id =3D SNOR_ID(0xef, 0x70, 0x19), .name =3D "w25q256jvm", - }, { - .id =3D SNOR_ID(0xef, 0x60, 0x19), - .name =3D "w25q256jw", - .size =3D SZ_32M, - .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { .id =3D SNOR_ID(0xef, 0x71, 0x19), .name =3D "w25m512jv", .size =3D SZ_64M, .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { - .id =3D SNOR_ID(0xef, 0x60, 0x20), - .name =3D "w25q512nwq", + .id =3D SNOR_ID(0xef, 0x80, 0x16), + .name =3D "w25q32jwm", + .size =3D SZ_4M, + .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, + .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, .otp =3D SNOR_OTP(256, 3, 0x1000, 0x1000), + }, { + .id =3D SNOR_ID(0xef, 0x80, 0x17), + .name =3D "w25q64jwm", + .size =3D SZ_8M, + .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, + .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, + }, { + .id =3D SNOR_ID(0xef, 0x80, 0x18), + .name =3D "w25q128jwm", + .size =3D SZ_16M, + .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, + .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, + }, { + .id =3D SNOR_ID(0xef, 0x80, 0x19), + .name =3D "w25q256jwm", + .size =3D SZ_32M, + .flags =3D SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB, + .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, { .id =3D SNOR_ID(0xef, 0x80, 0x20), .name =3D "w25q512nwm", .otp =3D SNOR_OTP(256, 3, 0x1000, 0x1000), - }, { - .id =3D SNOR_ID(0xef, 0x40, 0x20), - .name =3D "w25q512jvq", - .size =3D SZ_64M, - .no_sfdp_flags =3D SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, }, }; =20 --=20 2.39.2