Skip to content

Commit 55398be

Browse files
Kuwano-sanambarus
authored andcommitted
mtd: spi-nor: sfdp: Use SFDP_DWORD() macro for optional parameter tables
Change 0-based indexing values of parameter tables to 1-based ones by SFDP_DWORD() macro. Suggested-by: Tudor Ambarus <tudor.ambarus@linaro.org> Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com> Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org> Link: https://lore.kernel.org/r/48cb008b40fdef4bf7f87e37029efaa2bfefa9ef.1672026365.git.Takahiro.Kuwano@infineon.com
1 parent 86d4cdf commit 55398be

1 file changed

Lines changed: 16 additions & 12 deletions

File tree

drivers/mtd/spi-nor/sfdp.c

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,7 +1004,7 @@ static int spi_nor_parse_4bait(struct spi_nor *nor,
10041004

10051005
discard_hwcaps |= read->hwcaps;
10061006
if ((params->hwcaps.mask & read->hwcaps) &&
1007-
(dwords[0] & read->supported_bit))
1007+
(dwords[SFDP_DWORD(1)] & read->supported_bit))
10081008
read_hwcaps |= read->hwcaps;
10091009
}
10101010

@@ -1023,7 +1023,7 @@ static int spi_nor_parse_4bait(struct spi_nor *nor,
10231023
* authority for specifying Page Program support.
10241024
*/
10251025
discard_hwcaps |= program->hwcaps;
1026-
if (dwords[0] & program->supported_bit)
1026+
if (dwords[SFDP_DWORD(1)] & program->supported_bit)
10271027
pp_hwcaps |= program->hwcaps;
10281028
}
10291029

@@ -1035,7 +1035,7 @@ static int spi_nor_parse_4bait(struct spi_nor *nor,
10351035
for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) {
10361036
const struct sfdp_4bait *erase = &erases[i];
10371037

1038-
if (dwords[0] & erase->supported_bit)
1038+
if (dwords[SFDP_DWORD(1)] & erase->supported_bit)
10391039
erase_mask |= BIT(i);
10401040
}
10411041

@@ -1086,7 +1086,7 @@ static int spi_nor_parse_4bait(struct spi_nor *nor,
10861086

10871087
for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) {
10881088
if (erase_mask & BIT(i))
1089-
erase_type[i].opcode = (dwords[1] >>
1089+
erase_type[i].opcode = (dwords[SFDP_DWORD(2)] >>
10901090
erase_type[i].idx * 8) & 0xFF;
10911091
else
10921092
spi_nor_set_erase_type(&erase_type[i], 0u, 0xFF);
@@ -1145,15 +1145,15 @@ static int spi_nor_parse_profile1(struct spi_nor *nor,
11451145
le32_to_cpu_array(dwords, profile1_header->length);
11461146

11471147
/* Get 8D-8D-8D fast read opcode and dummy cycles. */
1148-
opcode = FIELD_GET(PROFILE1_DWORD1_RD_FAST_CMD, dwords[0]);
1148+
opcode = FIELD_GET(PROFILE1_DWORD1_RD_FAST_CMD, dwords[SFDP_DWORD(1)]);
11491149

11501150
/* Set the Read Status Register dummy cycles and dummy address bytes. */
1151-
if (dwords[0] & PROFILE1_DWORD1_RDSR_DUMMY)
1151+
if (dwords[SFDP_DWORD(1)] & PROFILE1_DWORD1_RDSR_DUMMY)
11521152
nor->params->rdsr_dummy = 8;
11531153
else
11541154
nor->params->rdsr_dummy = 4;
11551155

1156-
if (dwords[0] & PROFILE1_DWORD1_RDSR_ADDR_BYTES)
1156+
if (dwords[SFDP_DWORD(1)] & PROFILE1_DWORD1_RDSR_ADDR_BYTES)
11571157
nor->params->rdsr_addr_nbytes = 4;
11581158
else
11591159
nor->params->rdsr_addr_nbytes = 0;
@@ -1167,13 +1167,16 @@ static int spi_nor_parse_profile1(struct spi_nor *nor,
11671167
* Default to PROFILE1_DUMMY_DEFAULT if we don't find anything, and let
11681168
* flashes set the correct value if needed in their fixup hooks.
11691169
*/
1170-
dummy = FIELD_GET(PROFILE1_DWORD4_DUMMY_200MHZ, dwords[3]);
1170+
dummy = FIELD_GET(PROFILE1_DWORD4_DUMMY_200MHZ, dwords[SFDP_DWORD(4)]);
11711171
if (!dummy)
1172-
dummy = FIELD_GET(PROFILE1_DWORD5_DUMMY_166MHZ, dwords[4]);
1172+
dummy = FIELD_GET(PROFILE1_DWORD5_DUMMY_166MHZ,
1173+
dwords[SFDP_DWORD(5)]);
11731174
if (!dummy)
1174-
dummy = FIELD_GET(PROFILE1_DWORD5_DUMMY_133MHZ, dwords[4]);
1175+
dummy = FIELD_GET(PROFILE1_DWORD5_DUMMY_133MHZ,
1176+
dwords[SFDP_DWORD(5)]);
11751177
if (!dummy)
1176-
dummy = FIELD_GET(PROFILE1_DWORD5_DUMMY_100MHZ, dwords[4]);
1178+
dummy = FIELD_GET(PROFILE1_DWORD5_DUMMY_100MHZ,
1179+
dwords[SFDP_DWORD(5)]);
11771180
if (!dummy)
11781181
dev_dbg(nor->dev,
11791182
"Can't find dummy cycles from Profile 1.0 table\n");
@@ -1228,7 +1231,8 @@ static int spi_nor_parse_sccr(struct spi_nor *nor,
12281231

12291232
le32_to_cpu_array(dwords, sccr_header->length);
12301233

1231-
if (FIELD_GET(SCCR_DWORD22_OCTAL_DTR_EN_VOLATILE, dwords[21]))
1234+
if (FIELD_GET(SCCR_DWORD22_OCTAL_DTR_EN_VOLATILE,
1235+
dwords[SFDP_DWORD(22)]))
12321236
nor->flags |= SNOR_F_IO_MODE_EN_VOLATILE;
12331237

12341238
out:

0 commit comments

Comments
 (0)