Skip to content

Commit fee9b24

Browse files
committed
mtd: spinand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information
These four chips: * W25N512GW * W25N01GW * W25N01JW * W25N02JW all require a single bit of ECC strength and thus feature an on-die Hamming-like ECC engine. There is no point in filling a ->get_status() callback for them because the main ECC status bytes are located in standard places, and retrieving the number of bitflips in case of corrected chunk is both useless and unsupported (if there are bitflips, then there is 1 at most, so no need to query the chip for that). Without this change, a kernel warning triggers every time a bit flips. Fixes: 6a804fb ("mtd: spinand: winbond: add support for serial NAND flash") Cc: [email protected] Signed-off-by: Miquel Raynal <[email protected]> Reviewed-by: Frieder Schrempf <[email protected]> Link: https://lore.kernel.org/linux-mtd/[email protected]
1 parent c1247de commit fee9b24

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

drivers/mtd/nand/spi/winbond.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -201,30 +201,30 @@ static const struct spinand_info winbond_spinand_table[] = {
201201
SPINAND_INFO("W25N01JW",
202202
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xbc, 0x21),
203203
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
204-
NAND_ECCREQ(4, 512),
204+
NAND_ECCREQ(1, 512),
205205
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
206206
&write_cache_variants,
207207
&update_cache_variants),
208208
0,
209-
SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
209+
SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)),
210210
SPINAND_INFO("W25N02JWZEIF",
211211
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xbf, 0x22),
212212
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 2, 1),
213-
NAND_ECCREQ(4, 512),
213+
NAND_ECCREQ(1, 512),
214214
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
215215
&write_cache_variants,
216216
&update_cache_variants),
217217
0,
218-
SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
218+
SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)),
219219
SPINAND_INFO("W25N512GW",
220220
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x20),
221221
NAND_MEMORG(1, 2048, 64, 64, 512, 10, 1, 1, 1),
222-
NAND_ECCREQ(4, 512),
222+
NAND_ECCREQ(1, 512),
223223
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
224224
&write_cache_variants,
225225
&update_cache_variants),
226226
0,
227-
SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
227+
SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)),
228228
SPINAND_INFO("W25N02KWZEIR",
229229
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x22),
230230
NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
@@ -237,12 +237,12 @@ static const struct spinand_info winbond_spinand_table[] = {
237237
SPINAND_INFO("W25N01GWZEIG",
238238
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x21),
239239
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
240-
NAND_ECCREQ(4, 512),
240+
NAND_ECCREQ(1, 512),
241241
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
242242
&write_cache_variants,
243243
&update_cache_variants),
244244
0,
245-
SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
245+
SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)),
246246
SPINAND_INFO("W25N04KV",
247247
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xaa, 0x23),
248248
NAND_MEMORG(1, 2048, 128, 64, 4096, 40, 2, 1, 1),

0 commit comments

Comments
 (0)