mtd: rawnand: fix ecc parameters for mt7622
authorChuanhong Guo <gch981213@gmail.com>
Sat, 2 Apr 2022 16:03:13 +0000 (00:03 +0800)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 4 Apr 2022 08:42:20 +0000 (10:42 +0200)
commit9fe4e0d3cbfe90152137963cc024ecb63db6e8e6
treea8101bb442d071d2a78a9802d7c43ce0289fb04d
parent3123109284176b1532874591f7c81f3837bbdc17
mtd: rawnand: fix ecc parameters for mt7622

According to the datasheet, mt7622 only has 5 ECC capabilities instead
of 7, and the decoding error register is arranged  as follows:
+------+---------+---------+---------+---------+
| Bits |  19:15  |  14:10  |   9:5   |   4:0   |
+------+---------+---------+---------+---------+
| Name | ERRNUM3 | ERRNUM2 | ERRNUM1 | ERRNUM0 |
+------+---------+---------+---------+---------+
This means err_mask should be 0x1f instead of 0x3f and the number of
bits shifted in mtk_ecc_get_stats should be 5 instead of 8.

This commit introduces err_shift for the difference in this register
and fix other existing parameters.

Public MT7622 reference manual can be found on [0] and the info this
commit is based on is from page 656 and page 660.

[0]: https://wiki.banana-pi.org/Banana_Pi_BPI-R64#Documents

Fixes: 98dea8d71931 ("mtd: nand: mtk: Support MT7622 NAND flash controller.")
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20220402160315.919094-1-gch981213@gmail.com
drivers/mtd/nand/raw/mtk_ecc.c