Commit 1de41081 authored by Michael Walle's avatar Michael Walle Committed by Tudor Ambarus

mtd: spi-nor: sst: sort flash_info database

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: default avatarMichael Walle <mwalle@kernel.org>
Link: https://lore.kernel.org/r/20230807-mtd-flash-info-db-rework-v3-38-e60548861b10@kernel.orgSigned-off-by: default avatarTudor Ambarus <tudor.ambarus@linaro.org>
parent 8770a6a8
...@@ -62,38 +62,16 @@ static const struct spi_nor_fixups sst26vf_nor_fixups = { ...@@ -62,38 +62,16 @@ static const struct spi_nor_fixups sst26vf_nor_fixups = {
static const struct flash_info sst_nor_parts[] = { static const struct flash_info sst_nor_parts[] = {
{ {
.id = SNOR_ID(0xbf, 0x25, 0x8d), .id = SNOR_ID(0x62, 0x16, 0x12),
.name = "sst25vf040b", .name = "sst25wf020a",
.size = SZ_512K, .size = SZ_256K,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE, .flags = SPI_NOR_HAS_LOCK,
.no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE,
}, {
.id = SNOR_ID(0xbf, 0x25, 0x8e),
.name = "sst25vf080b",
.size = SZ_1M,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE,
}, {
.id = SNOR_ID(0xbf, 0x25, 0x41),
.name = "sst25vf016b",
.size = SZ_2M,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE,
}, {
.id = SNOR_ID(0xbf, 0x25, 0x4a),
.name = "sst25vf032b",
.size = SZ_4M,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K, .no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE,
}, { }, {
.id = SNOR_ID(0xbf, 0x25, 0x4b), .id = SNOR_ID(0x62, 0x16, 0x13),
.name = "sst25vf064c", .name = "sst25wf040b",
.size = SZ_8M, .size = SZ_512K,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP | SPI_NOR_SWP_IS_VOLATILE, .flags = SPI_NOR_HAS_LOCK,
.no_sfdp_flags = SECT_4K, .no_sfdp_flags = SECT_4K,
}, { }, {
.id = SNOR_ID(0xbf, 0x25, 0x01), .id = SNOR_ID(0xbf, 0x25, 0x01),
...@@ -116,18 +94,6 @@ static const struct flash_info sst_nor_parts[] = { ...@@ -116,18 +94,6 @@ static const struct flash_info sst_nor_parts[] = {
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE, .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K, .no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE, .mfr_flags = SST_WRITE,
}, {
.id = SNOR_ID(0x62, 0x16, 0x12),
.name = "sst25wf020a",
.size = SZ_256K,
.flags = SPI_NOR_HAS_LOCK,
.no_sfdp_flags = SECT_4K,
}, {
.id = SNOR_ID(0x62, 0x16, 0x13),
.name = "sst25wf040b",
.size = SZ_512K,
.flags = SPI_NOR_HAS_LOCK,
.no_sfdp_flags = SECT_4K,
}, { }, {
.id = SNOR_ID(0xbf, 0x25, 0x04), .id = SNOR_ID(0xbf, 0x25, 0x04),
.name = "sst25wf040", .name = "sst25wf040",
...@@ -143,10 +109,39 @@ static const struct flash_info sst_nor_parts[] = { ...@@ -143,10 +109,39 @@ static const struct flash_info sst_nor_parts[] = {
.no_sfdp_flags = SECT_4K, .no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE, .mfr_flags = SST_WRITE,
}, { }, {
.id = SNOR_ID(0xbf, 0x26, 0x51), .id = SNOR_ID(0xbf, 0x25, 0x41),
.name = "sst26wf016b", .name = "sst25vf016b",
.size = SZ_2M, .size = SZ_2M,
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE,
}, {
.id = SNOR_ID(0xbf, 0x25, 0x4a),
.name = "sst25vf032b",
.size = SZ_4M,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE,
}, {
.id = SNOR_ID(0xbf, 0x25, 0x4b),
.name = "sst25vf064c",
.size = SZ_8M,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K,
}, {
.id = SNOR_ID(0xbf, 0x25, 0x8d),
.name = "sst25vf040b",
.size = SZ_512K,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE,
}, {
.id = SNOR_ID(0xbf, 0x25, 0x8e),
.name = "sst25vf080b",
.size = SZ_1M,
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K,
.mfr_flags = SST_WRITE,
}, { }, {
.id = SNOR_ID(0xbf, 0x26, 0x41), .id = SNOR_ID(0xbf, 0x26, 0x41),
.name = "sst26vf016b", .name = "sst26vf016b",
...@@ -164,6 +159,11 @@ static const struct flash_info sst_nor_parts[] = { ...@@ -164,6 +159,11 @@ static const struct flash_info sst_nor_parts[] = {
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE, .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE,
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ, .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
.fixups = &sst26vf_nor_fixups, .fixups = &sst26vf_nor_fixups,
}, {
.id = SNOR_ID(0xbf, 0x26, 0x51),
.name = "sst26wf016b",
.size = SZ_2M,
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
} }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment