From: Greg Kroah-Hartman Date: Sat, 15 Apr 2023 18:39:33 +0000 (+0200) Subject: 5.10-stable patches X-Git-Tag: v4.14.313~53 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4403ef8dd3f99b323c8bf09600591940c59a616d;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: mtd-rawnand-meson-fix-bitmask-for-length-in-command-word.patch mtd-rawnand-stm32_fmc2-remove-unsupported-edo-mode.patch mtd-rawnand-stm32_fmc2-use-timings.mode-instead-of-checking-trc_min.patch mtdblock-tolerate-corrected-bit-flips.patch --- diff --git a/queue-5.10/mtd-rawnand-meson-fix-bitmask-for-length-in-command-word.patch b/queue-5.10/mtd-rawnand-meson-fix-bitmask-for-length-in-command-word.patch new file mode 100644 index 00000000000..0acbb7dc6df --- /dev/null +++ b/queue-5.10/mtd-rawnand-meson-fix-bitmask-for-length-in-command-word.patch @@ -0,0 +1,57 @@ +From 93942b70461574ca7fc3d91494ca89b16a4c64c7 Mon Sep 17 00:00:00 2001 +From: Arseniy Krasnov +Date: Wed, 29 Mar 2023 10:47:26 +0300 +Subject: mtd: rawnand: meson: fix bitmask for length in command word + +From: Arseniy Krasnov + +commit 93942b70461574ca7fc3d91494ca89b16a4c64c7 upstream. + +Valid mask is 0x3FFF, without this patch the following problems were +found: + +1) [ 0.938914] Could not find a valid ONFI parameter page, trying + bit-wise majority to recover it + [ 0.947384] ONFI parameter recovery failed, aborting + +2) Read with disabled ECC mode was broken. + +Fixes: 8fae856c5350 ("mtd: rawnand: meson: add support for Amlogic NAND flash controller") +Cc: +Signed-off-by: Arseniy Krasnov +Signed-off-by: Miquel Raynal +Link: https://lore.kernel.org/linux-mtd/3794ffbf-dfea-e96f-1f97-fe235b005e19@sberdevices.ru +Signed-off-by: Greg Kroah-Hartman +--- + drivers/mtd/nand/raw/meson_nand.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/mtd/nand/raw/meson_nand.c ++++ b/drivers/mtd/nand/raw/meson_nand.c +@@ -276,7 +276,7 @@ static void meson_nfc_cmd_access(struct + + if (raw) { + len = mtd->writesize + mtd->oobsize; +- cmd = (len & GENMASK(5, 0)) | scrambler | DMA_DIR(dir); ++ cmd = (len & GENMASK(13, 0)) | scrambler | DMA_DIR(dir); + writel(cmd, nfc->reg_base + NFC_REG_CMD); + return; + } +@@ -540,7 +540,7 @@ static int meson_nfc_read_buf(struct nan + if (ret) + goto out; + +- cmd = NFC_CMD_N2M | (len & GENMASK(5, 0)); ++ cmd = NFC_CMD_N2M | (len & GENMASK(13, 0)); + writel(cmd, nfc->reg_base + NFC_REG_CMD); + + meson_nfc_drain_cmd(nfc); +@@ -564,7 +564,7 @@ static int meson_nfc_write_buf(struct na + if (ret) + return ret; + +- cmd = NFC_CMD_M2N | (len & GENMASK(5, 0)); ++ cmd = NFC_CMD_M2N | (len & GENMASK(13, 0)); + writel(cmd, nfc->reg_base + NFC_REG_CMD); + + meson_nfc_drain_cmd(nfc); diff --git a/queue-5.10/mtd-rawnand-stm32_fmc2-remove-unsupported-edo-mode.patch b/queue-5.10/mtd-rawnand-stm32_fmc2-remove-unsupported-edo-mode.patch new file mode 100644 index 00000000000..57e171a1905 --- /dev/null +++ b/queue-5.10/mtd-rawnand-stm32_fmc2-remove-unsupported-edo-mode.patch @@ -0,0 +1,35 @@ +From f71e0e329c152c7f11ddfd97ffc62aba152fad3f Mon Sep 17 00:00:00 2001 +From: Christophe Kerello +Date: Tue, 28 Mar 2023 17:58:18 +0200 +Subject: mtd: rawnand: stm32_fmc2: remove unsupported EDO mode + +From: Christophe Kerello + +commit f71e0e329c152c7f11ddfd97ffc62aba152fad3f upstream. + +Remove the EDO mode support from as the FMC2 controller does not +support the feature. + +Signed-off-by: Christophe Kerello +Fixes: 2cd457f328c1 ("mtd: rawnand: stm32_fmc2: add STM32 FMC2 NAND flash controller driver") +Cc: stable@vger.kernel.org #v5.4+ +Reviewed-by: Tudor Ambarus +Signed-off-by: Miquel Raynal +Link: https://lore.kernel.org/linux-mtd/20230328155819.225521-2-christophe.kerello@foss.st.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/mtd/nand/raw/stm32_fmc2_nand.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/mtd/nand/raw/stm32_fmc2_nand.c ++++ b/drivers/mtd/nand/raw/stm32_fmc2_nand.c +@@ -1525,6 +1525,9 @@ static int stm32_fmc2_nfc_setup_interfac + if (IS_ERR(sdrt)) + return PTR_ERR(sdrt); + ++ if (sdrt->tRC_min < 30000) ++ return -EOPNOTSUPP; ++ + if (chipnr == NAND_DATA_IFACE_CHECK_ONLY) + return 0; + diff --git a/queue-5.10/mtd-rawnand-stm32_fmc2-use-timings.mode-instead-of-checking-trc_min.patch b/queue-5.10/mtd-rawnand-stm32_fmc2-use-timings.mode-instead-of-checking-trc_min.patch new file mode 100644 index 00000000000..28e6b47bfc9 --- /dev/null +++ b/queue-5.10/mtd-rawnand-stm32_fmc2-use-timings.mode-instead-of-checking-trc_min.patch @@ -0,0 +1,34 @@ +From ddbb664b6ab8de7dffa388ae0c88cd18616494e5 Mon Sep 17 00:00:00 2001 +From: Christophe Kerello +Date: Tue, 28 Mar 2023 17:58:19 +0200 +Subject: mtd: rawnand: stm32_fmc2: use timings.mode instead of checking tRC_min + +From: Christophe Kerello + +commit ddbb664b6ab8de7dffa388ae0c88cd18616494e5 upstream. + +Use timings.mode value instead of checking tRC_min timing +for EDO mode support. + +Signed-off-by: Christophe Kerello +Fixes: 2cd457f328c1 ("mtd: rawnand: stm32_fmc2: add STM32 FMC2 NAND flash controller driver") +Cc: stable@vger.kernel.org #v5.10+ +Reviewed-by: Tudor Ambarus +Signed-off-by: Miquel Raynal +Link: https://lore.kernel.org/linux-mtd/20230328155819.225521-3-christophe.kerello@foss.st.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/mtd/nand/raw/stm32_fmc2_nand.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/mtd/nand/raw/stm32_fmc2_nand.c ++++ b/drivers/mtd/nand/raw/stm32_fmc2_nand.c +@@ -1525,7 +1525,7 @@ static int stm32_fmc2_nfc_setup_interfac + if (IS_ERR(sdrt)) + return PTR_ERR(sdrt); + +- if (sdrt->tRC_min < 30000) ++ if (conf->timings.mode > 3) + return -EOPNOTSUPP; + + if (chipnr == NAND_DATA_IFACE_CHECK_ONLY) diff --git a/queue-5.10/mtdblock-tolerate-corrected-bit-flips.patch b/queue-5.10/mtdblock-tolerate-corrected-bit-flips.patch new file mode 100644 index 00000000000..f0f87e80d5d --- /dev/null +++ b/queue-5.10/mtdblock-tolerate-corrected-bit-flips.patch @@ -0,0 +1,58 @@ +From 0c3089601f064d80b3838eceb711fcac04bceaad Mon Sep 17 00:00:00 2001 +From: Bang Li +Date: Wed, 29 Mar 2023 00:30:12 +0800 +Subject: mtdblock: tolerate corrected bit-flips + +From: Bang Li + +commit 0c3089601f064d80b3838eceb711fcac04bceaad upstream. + +mtd_read() may return -EUCLEAN in case of corrected bit-flips.This +particular condition should not be treated like an error. + +Signed-off-by: Bang Li +Fixes: e47f68587b82 ("mtd: check for max_bitflips in mtd_read_oob()") +Cc: # v3.7 +Acked-by: Richard Weinberger +Signed-off-by: Miquel Raynal +Link: https://lore.kernel.org/linux-mtd/20230328163012.4264-1-libang.linuxer@gmail.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/mtd/mtdblock.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/drivers/mtd/mtdblock.c ++++ b/drivers/mtd/mtdblock.c +@@ -153,7 +153,7 @@ static int do_cached_write (struct mtdbl + mtdblk->cache_state = STATE_EMPTY; + ret = mtd_read(mtd, sect_start, sect_size, + &retlen, mtdblk->cache_data); +- if (ret) ++ if (ret && !mtd_is_bitflip(ret)) + return ret; + if (retlen != sect_size) + return -EIO; +@@ -188,8 +188,12 @@ static int do_cached_read (struct mtdblk + pr_debug("mtdblock: read on \"%s\" at 0x%lx, size 0x%x\n", + mtd->name, pos, len); + +- if (!sect_size) +- return mtd_read(mtd, pos, len, &retlen, buf); ++ if (!sect_size) { ++ ret = mtd_read(mtd, pos, len, &retlen, buf); ++ if (ret && !mtd_is_bitflip(ret)) ++ return ret; ++ return 0; ++ } + + while (len > 0) { + unsigned long sect_start = (pos/sect_size)*sect_size; +@@ -209,7 +213,7 @@ static int do_cached_read (struct mtdblk + memcpy (buf, mtdblk->cache_data + offset, size); + } else { + ret = mtd_read(mtd, pos, size, &retlen, buf); +- if (ret) ++ if (ret && !mtd_is_bitflip(ret)) + return ret; + if (retlen != size) + return -EIO; diff --git a/queue-5.10/series b/queue-5.10/series index 9a7632b636d..6c2d74feba5 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -61,3 +61,7 @@ bluetooth-fix-race-condition-in-hidp_session_thread.patch btrfs-print-checksum-type-and-implementation-at-mount-time.patch btrfs-fix-fast-csum-implementation-detection.patch fbmem-reject-fb_activate_kd_text-from-userspace.patch +mtdblock-tolerate-corrected-bit-flips.patch +mtd-rawnand-meson-fix-bitmask-for-length-in-command-word.patch +mtd-rawnand-stm32_fmc2-remove-unsupported-edo-mode.patch +mtd-rawnand-stm32_fmc2-use-timings.mode-instead-of-checking-trc_min.patch