]> git.itanic.dy.fi Git - linux-stable/commitdiff
mtd: spi-nor: winbond: sort flash_info entries
authorMichael Walle <mwalle@kernel.org>
Fri, 8 Sep 2023 10:16:57 +0000 (12:16 +0200)
committerTudor Ambarus <tudor.ambarus@linaro.org>
Tue, 19 Sep 2023 15:59:22 +0000 (18:59 +0300)
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 <mwalle@kernel.org>
Link: https://lore.kernel.org/r/20230807-mtd-flash-info-db-rework-v3-39-e60548861b10@kernel.org
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
drivers/mtd/spi-nor/winbond.c

index edc64c99cd81e6b23e8c51871a51cf1594f6f046..142fb27b2ea9a35da4a2eb74868df9a6b39d34fa 100644 (file)
@@ -72,37 +72,25 @@ static const struct flash_info winbond_nor_parts[] = {
                .name = "w25x16",
                .size = SZ_2M,
                .no_sfdp_flags = SECT_4K,
-       }, {
-               .id = SNOR_ID(0xef, 0x60, 0x15),
-               .name = "w25q16dw",
-               .size = SZ_2M,
-               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
                .id = SNOR_ID(0xef, 0x30, 0x16),
                .name = "w25x32",
                .size = SZ_4M,
                .no_sfdp_flags = SECT_4K,
        }, {
-               .id = SNOR_ID(0xef, 0x70, 0x15),
-               .name = "w25q16jv-im/jm",
-               .size = SZ_2M,
-               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+               .id = SNOR_ID(0xef, 0x30, 0x17),
+               .name = "w25x64",
+               .size = SZ_8M,
+               .no_sfdp_flags = SECT_4K,
        }, {
                .id = SNOR_ID(0xef, 0x40, 0x12),
                .name = "w25q20cl",
                .size = SZ_256K,
                .no_sfdp_flags = SECT_4K,
        }, {
-               .id = SNOR_ID(0xef, 0x50, 0x12),
-               .name = "w25q20bw",
-               .size = SZ_256K,
-               .no_sfdp_flags = SECT_4K,
-       }, {
-               .id = SNOR_ID(0xef, 0x60, 0x12),
-               .name = "w25q20ew",
-               .size = SZ_256K,
+               .id = SNOR_ID(0xef, 0x40, 0x14),
+               .name = "w25q80bl",
+               .size = SZ_1M,
                .no_sfdp_flags = SECT_4K,
        }, {
                .id = SNOR_ID(0xef, 0x40, 0x16),
@@ -110,57 +98,84 @@ static const struct flash_info winbond_nor_parts[] = {
                .size = SZ_4M,
                .no_sfdp_flags = SECT_4K,
        }, {
-               .id = SNOR_ID(0xef, 0x60, 0x16),
-               .name = "w25q32dw",
-               .size = SZ_4M,
+               .id = SNOR_ID(0xef, 0x40, 0x17),
+               .name = "w25q64",
+               .size = SZ_8M,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
+               .id = SNOR_ID(0xef, 0x40, 0x18),
+               .name = "w25q128",
                .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
+       }, {
+               .id = SNOR_ID(0xef, 0x40, 0x19),
+               .name = "w25q256",
+               .size = SZ_32M,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-               .otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
+               .fixups = &w25q256_fixups,
        }, {
-               .id = SNOR_ID(0xef, 0x70, 0x16),
-               .name = "w25q32jv",
-               .size = SZ_4M,
+               .id = SNOR_ID(0xef, 0x40, 0x20),
+               .name = "w25q512jvq",
+               .size = SZ_64M,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
+               .id = SNOR_ID(0xef, 0x50, 0x12),
+               .name = "w25q20bw",
+               .size = SZ_256K,
+               .no_sfdp_flags = SECT_4K,
+       }, {
+               .id = SNOR_ID(0xef, 0x50, 0x14),
+               .name = "w25q80",
+               .size = SZ_1M,
+               .no_sfdp_flags = SECT_4K,
+       }, {
+               .id = SNOR_ID(0xef, 0x60, 0x12),
+               .name = "w25q20ew",
+               .size = SZ_256K,
+               .no_sfdp_flags = SECT_4K,
+       }, {
+               .id = SNOR_ID(0xef, 0x60, 0x15),
+               .name = "w25q16dw",
+               .size = SZ_2M,
                .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
-               .id = SNOR_ID(0xef, 0x80, 0x16),
-               .name = "w25q32jwm",
+               .id = SNOR_ID(0xef, 0x60, 0x16),
+               .name = "w25q32dw",
                .size = SZ_4M,
                .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
        }, {
-               .id = SNOR_ID(0xef, 0x80, 0x17),
-               .name = "w25q64jwm",
+               .id = SNOR_ID(0xef, 0x60, 0x17),
+               .name = "w25q64dw",
                .size = SZ_8M,
                .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
-               .id = SNOR_ID(0xef, 0x80, 0x18),
-               .name = "w25q128jwm",
+               .id = SNOR_ID(0xef, 0x60, 0x18),
+               .name = "w25q128fw",
                .size = SZ_16M,
                .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
-               .id = SNOR_ID(0xef, 0x80, 0x19),
-               .name = "w25q256jwm",
+               .id = SNOR_ID(0xef, 0x60, 0x19),
+               .name = "w25q256jw",
                .size = SZ_32M,
-               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
-               .id = SNOR_ID(0xef, 0x30, 0x17),
-               .name = "w25x64",
-               .size = SZ_8M,
-               .no_sfdp_flags = SECT_4K,
+               .id = SNOR_ID(0xef, 0x60, 0x20),
+               .name = "w25q512nwq",
+               .otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
        }, {
-               .id = SNOR_ID(0xef, 0x40, 0x17),
-               .name = "w25q64",
-               .size = SZ_8M,
+               .id = SNOR_ID(0xef, 0x70, 0x15),
+               .name = "w25q16jv-im/jm",
+               .size = SZ_2M,
+               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
-               .id = SNOR_ID(0xef, 0x60, 0x17),
-               .name = "w25q64dw",
-               .size = SZ_8M,
+               .id = SNOR_ID(0xef, 0x70, 0x16),
+               .name = "w25q32jv",
+               .size = SZ_4M,
                .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
@@ -168,64 +183,49 @@ static const struct flash_info winbond_nor_parts[] = {
                .name = "w25q64jvm",
                .size = SZ_8M,
                .no_sfdp_flags = SECT_4K,
-       }, {
-               .id = SNOR_ID(0xef, 0x60, 0x18),
-               .name = "w25q128fw",
-               .size = SZ_16M,
-               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
                .id = SNOR_ID(0xef, 0x70, 0x18),
                .name = "w25q128jv",
                .size = SZ_16M,
                .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-       }, {
-               .id = SNOR_ID(0xef, 0x50, 0x14),
-               .name = "w25q80",
-               .size = SZ_1M,
-               .no_sfdp_flags = SECT_4K,
-       }, {
-               .id = SNOR_ID(0xef, 0x40, 0x14),
-               .name = "w25q80bl",
-               .size = SZ_1M,
-               .no_sfdp_flags = SECT_4K,
-       }, {
-               .id = SNOR_ID(0xef, 0x40, 0x18),
-               .name = "w25q128",
-               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
-       }, {
-               .id = SNOR_ID(0xef, 0x40, 0x19),
-               .name = "w25q256",
-               .size = SZ_32M,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-               .fixups = &w25q256_fixups,
        }, {
                .id = SNOR_ID(0xef, 0x70, 0x19),
                .name = "w25q256jvm",
-       }, {
-               .id = SNOR_ID(0xef, 0x60, 0x19),
-               .name = "w25q256jw",
-               .size = SZ_32M,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
                .id = SNOR_ID(0xef, 0x71, 0x19),
                .name = "w25m512jv",
                .size = SZ_64M,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
-               .id = SNOR_ID(0xef, 0x60, 0x20),
-               .name = "w25q512nwq",
+               .id = SNOR_ID(0xef, 0x80, 0x16),
+               .name = "w25q32jwm",
+               .size = SZ_4M,
+               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
+       }, {
+               .id = SNOR_ID(0xef, 0x80, 0x17),
+               .name = "w25q64jwm",
+               .size = SZ_8M,
+               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
+               .id = SNOR_ID(0xef, 0x80, 0x18),
+               .name = "w25q128jwm",
+               .size = SZ_16M,
+               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
+               .id = SNOR_ID(0xef, 0x80, 0x19),
+               .name = "w25q256jwm",
+               .size = SZ_32M,
+               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
                .id = SNOR_ID(0xef, 0x80, 0x20),
                .name = "w25q512nwm",
                .otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
-       }, {
-               .id = SNOR_ID(0xef, 0x40, 0x20),
-               .name = "w25q512jvq",
-               .size = SZ_64M,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        },
 };