]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
spi: spi-qpic-snand: don't hardcode ECC steps
authorGabor Juhos <j4g8y7@gmail.com>
Wed, 23 Jul 2025 08:06:43 +0000 (10:06 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 23 Jul 2025 12:04:03 +0000 (13:04 +0100)
NAND devices with different page sizes requires different number
of ECC steps, yet the qcom_spi_ecc_init_ctx_pipelined() function
sets 4 steps in 'ecc_cfg' unconditionally.

The correct number of the steps is calculated earlier in the
function already, so use that instead of the hardcoded value.

Fixes: 7304d1909080 ("spi: spi-qpic: add driver for QCOM SPI NAND flash Interface")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Link: https://patch.msgid.link/20250723-qpic-snand-fix-steps-v1-1-d800695dde4c@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-qpic-snand.c

index f2e1a27b410ddb98d1dfca52898cd5fe38308a2c..3b757e3d00c01dfe4da74bd504529f3aa49a5c92 100644 (file)
@@ -308,7 +308,7 @@ static int qcom_spi_ecc_init_ctx_pipelined(struct nand_device *nand)
        ecc_cfg->bch_enabled = true;
        ecc_cfg->bytes = ecc_cfg->ecc_bytes_hw + ecc_cfg->spare_bytes + ecc_cfg->bbm_size;
 
-       ecc_cfg->steps = 4;
+       ecc_cfg->steps = cwperpage;
        ecc_cfg->cw_data = 516;
        ecc_cfg->cw_size = ecc_cfg->cw_data + ecc_cfg->bytes;
        bad_block_byte = mtd->writesize - ecc_cfg->cw_size * (cwperpage - 1) + 1;