]> git.itanic.dy.fi Git - linux-stable/commitdiff
mtd: spi-nor: spansion: sort flash_info database
authorMichael Walle <mwalle@kernel.org>
Fri, 8 Sep 2023 10:16:55 +0000 (12:16 +0200)
committerTudor Ambarus <tudor.ambarus@linaro.org>
Tue, 19 Sep 2023 15:59:21 +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-37-e60548861b10@kernel.org
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
drivers/mtd/spi-nor/spansion.c

index a1cbe43feefe4ecc2ae295d28f76e6408e416dc8..12921344373dad66e60a5151cce9e68fb7e1aa6b 100644 (file)
@@ -757,28 +757,35 @@ static const struct spi_nor_fixups s25fs_s_nor_fixups = {
 
 static const struct flash_info spansion_nor_parts[] = {
        {
+               .id = SNOR_ID(0x01, 0x02, 0x12),
+               .name = "s25sl004a",
+               .size = SZ_512K,
+       }, {
+               .id = SNOR_ID(0x01, 0x02, 0x13),
+               .name = "s25sl008a",
+               .size = SZ_1M,
+       }, {
+               .id = SNOR_ID(0x01, 0x02, 0x14),
+               .name = "s25sl016a",
+               .size = SZ_2M,
+       }, {
                .id = SNOR_ID(0x01, 0x02, 0x15, 0x4d, 0x00),
                .name = "s25sl032p",
                .size = SZ_4M,
                .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
+               .id = SNOR_ID(0x01, 0x02, 0x15),
+               .name = "s25sl032a",
+               .size = SZ_4M,
        }, {
                .id = SNOR_ID(0x01, 0x02, 0x16, 0x4d, 0x00),
                .name = "s25sl064p",
                .size = SZ_8M,
                .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
-               .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x00, 0x80),
-               .name = "s25fl128s0",
-               .size = SZ_16M,
-               .sector_size = SZ_256K,
-               .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-               .mfr_flags = USE_CLSR,
-       }, {
-               .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01, 0x80),
-               .name = "s25fl128s1",
-               .size = SZ_16M,
-               .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-               .mfr_flags = USE_CLSR,
+               .id = SNOR_ID(0x01, 0x02, 0x16),
+               .name = "s25sl064a",
+               .size = SZ_8M,
        }, {
                .id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x00, 0x80),
                .name = "s25fl256s0",
@@ -787,31 +794,16 @@ static const struct flash_info spansion_nor_parts[] = {
                .no_sfdp_flags = SPI_NOR_SKIP_SFDP | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .mfr_flags = USE_CLSR,
        }, {
-               .id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x01, 0x80),
-               .name = "s25fl256s1",
+               .id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x00, 0x81),
+               .name = "s25fs256s0",
                .size = SZ_32M,
-               .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-               .mfr_flags = USE_CLSR,
-       }, {
-               .id = SNOR_ID(0x01, 0x02, 0x20, 0x4d, 0x00, 0x80),
-               .name = "s25fl512s",
-               .size = SZ_64M,
                .sector_size = SZ_256K,
-               .flags = SPI_NOR_HAS_LOCK,
                .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .mfr_flags = USE_CLSR,
        }, {
-               .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01, 0x81),
-               .name = "s25fs128s1",
-               .size = SZ_16M,
-               .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-               .mfr_flags = USE_CLSR,
-               .fixups = &s25fs_s_nor_fixups,
-       }, {
-               .id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x00, 0x81),
-               .name = "s25fs256s0",
+               .id = SNOR_ID(0x01, 0x02, 0x19, 0x4d, 0x01, 0x80),
+               .name = "s25fl256s1",
                .size = SZ_32M,
-               .sector_size = SZ_256K,
                .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .mfr_flags = USE_CLSR,
        }, {
@@ -820,6 +812,14 @@ static const struct flash_info spansion_nor_parts[] = {
                .size = SZ_32M,
                .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .mfr_flags = USE_CLSR,
+       }, {
+               .id = SNOR_ID(0x01, 0x02, 0x20, 0x4d, 0x00, 0x80),
+               .name = "s25fl512s",
+               .size = SZ_64M,
+               .sector_size = SZ_256K,
+               .flags = SPI_NOR_HAS_LOCK,
+               .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+               .mfr_flags = USE_CLSR,
        }, {
                .id = SNOR_ID(0x01, 0x02, 0x20, 0x4d, 0x00, 0x81),
                .name = "s25fs512s",
@@ -837,6 +837,13 @@ static const struct flash_info spansion_nor_parts[] = {
                .id = SNOR_ID(0x01, 0x20, 0x18, 0x03, 0x01),
                .name = "s25sl12801",
                .size = SZ_16M,
+       }, {
+               .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x00, 0x80),
+               .name = "s25fl128s0",
+               .size = SZ_16M,
+               .sector_size = SZ_256K,
+               .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+               .mfr_flags = USE_CLSR,
        }, {
                .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x00),
                .name = "s25fl129p0",
@@ -845,51 +852,34 @@ static const struct flash_info spansion_nor_parts[] = {
                .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .mfr_flags = USE_CLSR,
        }, {
-               .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01),
-               .name = "s25fl129p1",
+               .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01, 0x80),
+               .name = "s25fl128s1",
                .size = SZ_16M,
                .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .mfr_flags = USE_CLSR,
        }, {
-               .id = SNOR_ID(0x01, 0x02, 0x12),
-               .name = "s25sl004a",
-               .size = SZ_512K,
-       }, {
-               .id = SNOR_ID(0x01, 0x02, 0x13),
-               .name = "s25sl008a",
-               .size = SZ_1M,
-       }, {
-               .id = SNOR_ID(0x01, 0x02, 0x14),
-               .name = "s25sl016a",
-               .size = SZ_2M,
-       }, {
-               .id = SNOR_ID(0x01, 0x02, 0x15),
-               .name = "s25sl032a",
-               .size = SZ_4M,
+               .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01, 0x81),
+               .name = "s25fs128s1",
+               .size = SZ_16M,
+               .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+               .mfr_flags = USE_CLSR,
+               .fixups = &s25fs_s_nor_fixups,
        }, {
-               .id = SNOR_ID(0x01, 0x02, 0x16),
-               .name = "s25sl064a",
-               .size = SZ_8M,
+               .id = SNOR_ID(0x01, 0x20, 0x18, 0x4d, 0x01),
+               .name = "s25fl129p1",
+               .size = SZ_16M,
+               .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+               .mfr_flags = USE_CLSR,
        }, {
-               .id = SNOR_ID(0xef, 0x40, 0x13),
-               .name = "s25fl004k",
+               .id = SNOR_ID(0x01, 0x40, 0x13),
+               .name = "s25fl204k",
                .size = SZ_512K,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
        }, {
-               .id = SNOR_ID(0xef, 0x40, 0x14),
-               .name = "s25fl008k",
+               .id = SNOR_ID(0x01, 0x40, 0x14),
+               .name = "s25fl208k",
                .size = SZ_1M,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-       }, {
-               .id = SNOR_ID(0xef, 0x40, 0x15),
-               .name = "s25fl016k",
-               .size = SZ_2M,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
-       }, {
-               .id = SNOR_ID(0xef, 0x40, 0x17),
-               .name = "s25fl064k",
-               .size = SZ_8M,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
        }, {
                .id = SNOR_ID(0x01, 0x40, 0x15),
                .name = "s25fl116k",
@@ -905,16 +895,6 @@ static const struct flash_info spansion_nor_parts[] = {
                .name = "s25fl164k",
                .size = SZ_8M,
                .no_sfdp_flags = SECT_4K,
-       }, {
-               .id = SNOR_ID(0x01, 0x40, 0x13),
-               .name = "s25fl204k",
-               .size = SZ_512K,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
-       }, {
-               .id = SNOR_ID(0x01, 0x40, 0x14),
-               .name = "s25fl208k",
-               .size = SZ_1M,
-               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ,
        }, {
                .id = SNOR_ID(0x01, 0x60, 0x17),
                .name = "s25fl064l",
@@ -934,10 +914,11 @@ static const struct flash_info spansion_nor_parts[] = {
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
                .fixup_flags = SPI_NOR_4B_OPCODES,
        }, {
-               .id = SNOR_ID(0x34, 0x2b, 0x19, 0x0f, 0x08, 0x90),
-               .name = "s25fs256t",
-               .mfr_flags = USE_CLPEF,
-               .fixups = &s25fs256t_fixups
+               .id = SNOR_ID(0x04, 0x2c, 0xc2, 0x7f, 0x7f, 0x7f),
+               .name = "cy15x104q",
+               .size = SZ_512K,
+               .sector_size = SZ_512K,
+               .flags = SPI_NOR_NO_ERASE,
        }, {
                .id = SNOR_ID(0x34, 0x2a, 0x1a, 0x0f, 0x03, 0x90),
                .name = "s25hl512t",
@@ -954,6 +935,11 @@ static const struct flash_info spansion_nor_parts[] = {
                .mfr_flags = USE_CLPEF,
                .flags = NO_CHIP_ERASE,
                .fixups = &s25hx_t_fixups
+       }, {
+               .id = SNOR_ID(0x34, 0x2b, 0x19, 0x0f, 0x08, 0x90),
+               .name = "s25fs256t",
+               .mfr_flags = USE_CLPEF,
+               .fixups = &s25fs256t_fixups
        }, {
                .id = SNOR_ID(0x34, 0x2b, 0x1a, 0x0f, 0x03, 0x90),
                .name = "s25hs512t",
@@ -970,12 +956,6 @@ static const struct flash_info spansion_nor_parts[] = {
                .mfr_flags = USE_CLPEF,
                .flags = NO_CHIP_ERASE,
                .fixups = &s25hx_t_fixups
-       }, {
-               .id = SNOR_ID(0x04, 0x2c, 0xc2, 0x7f, 0x7f, 0x7f),
-               .name = "cy15x104q",
-               .size = SZ_512K,
-               .sector_size = SZ_512K,
-               .flags = SPI_NOR_NO_ERASE,
        }, {
                .id = SNOR_ID(0x34, 0x5a, 0x1a),
                .name = "s28hl512t",
@@ -1001,6 +981,26 @@ static const struct flash_info spansion_nor_parts[] = {
                .name = "s28hs02gt",
                .mfr_flags = USE_CLPEF,
                .fixups = &s28hx_t_fixups,
+       }, {
+               .id = SNOR_ID(0xef, 0x40, 0x13),
+               .name = "s25fl004k",
+               .size = SZ_512K,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
+               .id = SNOR_ID(0xef, 0x40, 0x14),
+               .name = "s25fl008k",
+               .size = SZ_1M,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
+               .id = SNOR_ID(0xef, 0x40, 0x15),
+               .name = "s25fl016k",
+               .size = SZ_2M,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
+               .id = SNOR_ID(0xef, 0x40, 0x17),
+               .name = "s25fl064k",
+               .size = SZ_8M,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }
 };