From nobody Sun Sep 7 12:25:51 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 B33E7C001B0 for ; Mon, 7 Aug 2023 13:24:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233774AbjHGNYx (ORCPT ); Mon, 7 Aug 2023 09:24:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35910 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234070AbjHGNYF (ORCPT ); Mon, 7 Aug 2023 09:24:05 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E949C2737 for ; Mon, 7 Aug 2023 06:23:15 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B533961B18 for ; Mon, 7 Aug 2023 13:23:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 705ABC433C7; Mon, 7 Aug 2023 13:23:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1691414595; bh=iBTPt8S5w7gWdJJi3s71qBJDZbCtHTAsa1phX7FXsLc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=J51iR/8+/4RKCNJpy6/8JDLOvmP0LXzz6PjNYZeTaibCYsgEpi8VHQey/qeoHYCEM xz495LqPBc+HFzhPR+sAik858x2SKqKYTHduCQ0FMORRhE5C1NaKCiVj0WvJ05nPB8 0NFu0rXrIhLDztop3X2Uc4537UYj1cU2bvSl3an0+KGeEvfCOh5JA+PjHeGAIl71FN olreunuAH1IQCSrTOIPdfJEirugzpMPoExw7PJ+Z7f1wrJ1AarhNq4M32wYkYmxu0B fiChc32wUEznfOBVVoKSMX/LDPVBo0bGjidr9S2Nd+nkHb9L5vr/0Nn1rknAQpRGbL xR6TQbwD4zDyA== From: Michael Walle Date: Mon, 07 Aug 2023 15:21:33 +0200 Subject: [PATCH 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-v1-39-3d3d5bef4ba4@kernel.org> References: <20230807-mtd-flash-info-db-rework-v1-0-3d3d5bef4ba4@kernel.org> In-Reply-To: <20230807-mtd-flash-info-db-rework-v1-0-3d3d5bef4ba4@kernel.org> To: Tudor Ambarus , Pratyush Yadav , Michael Walle , 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 1f95c4ccecd9..6ce50c3f3c27 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