From 8c403eca0eec9c5d569ede2004ce0780a4d43f3e Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 8 Mar 2024 10:16:26 +0800 Subject: [PATCH] kernel: bump 5.10 to 5.10.212 (#11961) --- include/kernel-5.10 | 4 +- ...and-gigadevice-Support-GD5F1GQ5UExxG.patch | 172 ------------------ ...device-fix-Quad-IO-for-GD5F1GQ5UExxG.patch | 44 ----- ...device-add-support-for-GD5FxGQ4xExxG.patch | 2 +- ...device-add-support-for-GD5F1GQ5RExxG.patch | 2 +- ...device-add-support-for-GD5F-2-4-GQ5x.patch | 2 +- ...device-add-support-for-GD5FxGM7xExxG.patch | 2 +- 7 files changed, 6 insertions(+), 222 deletions(-) delete mode 100644 target/linux/generic/backport-5.10/419-v5.14-mtd-spinand-gigadevice-Support-GD5F1GQ5UExxG.patch delete mode 100644 target/linux/generic/backport-5.10/420-v5.19-01-mtd-spinand-gigadevice-fix-Quad-IO-for-GD5F1GQ5UExxG.patch diff --git a/include/kernel-5.10 b/include/kernel-5.10 index c4d422a39..1269c0414 100644 --- a/include/kernel-5.10 +++ b/include/kernel-5.10 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.10 = .210 -LINUX_KERNEL_HASH-5.10.210 = 4ea63c5a90fdc3c459ab35c11ee8c93d2364a7cdbfb101100f8cab70d490ef6d +LINUX_VERSION-5.10 = .212 +LINUX_KERNEL_HASH-5.10.212 = 0cf3e467bd8d35533888327e9f8a9a9d354fdf83e8f82e9fe5a234f896a07493 diff --git a/target/linux/generic/backport-5.10/419-v5.14-mtd-spinand-gigadevice-Support-GD5F1GQ5UExxG.patch b/target/linux/generic/backport-5.10/419-v5.14-mtd-spinand-gigadevice-Support-GD5F1GQ5UExxG.patch deleted file mode 100644 index 00c43879f..000000000 --- a/target/linux/generic/backport-5.10/419-v5.14-mtd-spinand-gigadevice-Support-GD5F1GQ5UExxG.patch +++ /dev/null @@ -1,172 +0,0 @@ -From bd568cc04c675b7fa97214d278a54794c2ecc2ad Mon Sep 17 00:00:00 2001 -From: Reto Schneider -Date: Thu, 11 Feb 2021 12:36:19 +0100 -Subject: [PATCH] mtd: spinand: gigadevice: Support GD5F1GQ5UExxG - -The relevant changes to the already existing GD5F1GQ4UExxG support has -been determined by consulting the GigaDevice product change notice -AN-0392-10, version 1.0 from November 30, 2020. - -As the overlaps are huge, variable names have been generalized -accordingly. - -Apart from the lowered ECC strength (4 instead of 8 bits per 512 bytes), -the new device ID, and the extra quad IO dummy byte, no changes had to -be taken into account. - -New hardware features are not supported, namely: - - Power on reset - - Unique ID - - Double transfer rate (DTR) - - Parameter page - - Random data quad IO - -The inverted semantic of the "driver strength" register bits, defaulting -to 100% instead of 50% for the Q5 devices, got ignored as the driver has -never touched them anyway. - -The no longer supported "read from cache during block erase" -functionality is not reflected as the current SPI NAND core does not -support it anyway. - -Implementation has been tested on MediaTek MT7688 based GARDENA smart -Gateways using both, GigaDevice GD5F1GQ5UEYIG and GD5F1GQ4UBYIG. - -Signed-off-by: Reto Schneider -Reviewed-by: Frieder Schrempf -Reviewed-by: Stefan Roese -Signed-off-by: Miquel Raynal -Link: https://lore.kernel.org/linux-mtd/20210211113619.3502-1-code@reto-schneider.ch -(cherry picked from commit 469b992489852b500d39048aa0013639dfe9f2e6) ---- - drivers/mtd/nand/spi/gigadevice.c | 69 +++++++++++++++++++++++++++---- - 1 file changed, 60 insertions(+), 9 deletions(-) - ---- a/drivers/mtd/nand/spi/gigadevice.c -+++ b/drivers/mtd/nand/spi/gigadevice.c -@@ -13,7 +13,10 @@ - #define GD5FXGQ4XA_STATUS_ECC_1_7_BITFLIPS (1 << 4) - #define GD5FXGQ4XA_STATUS_ECC_8_BITFLIPS (3 << 4) - --#define GD5FXGQ4UEXXG_REG_STATUS2 0xf0 -+#define GD5FXGQ5XE_STATUS_ECC_1_4_BITFLIPS (1 << 4) -+#define GD5FXGQ5XE_STATUS_ECC_4_BITFLIPS (3 << 4) -+ -+#define GD5FXGQXXEXXG_REG_STATUS2 0xf0 - - #define GD5FXGQ4UXFXXG_STATUS_ECC_MASK (7 << 4) - #define GD5FXGQ4UXFXXG_STATUS_ECC_NO_BITFLIPS (0 << 4) -@@ -102,7 +105,7 @@ static int gd5fxgq4xa_ecc_get_status(str - return -EINVAL; - } - --static int gd5fxgq4_variant2_ooblayout_ecc(struct mtd_info *mtd, int section, -+static int gd5fxgqx_variant2_ooblayout_ecc(struct mtd_info *mtd, int section, - struct mtd_oob_region *region) - { - if (section) -@@ -114,7 +117,7 @@ static int gd5fxgq4_variant2_ooblayout_e - return 0; - } - --static int gd5fxgq4_variant2_ooblayout_free(struct mtd_info *mtd, int section, -+static int gd5fxgqx_variant2_ooblayout_free(struct mtd_info *mtd, int section, - struct mtd_oob_region *region) - { - if (section) -@@ -127,9 +130,10 @@ static int gd5fxgq4_variant2_ooblayout_f - return 0; - } - --static const struct mtd_ooblayout_ops gd5fxgq4_variant2_ooblayout = { -- .ecc = gd5fxgq4_variant2_ooblayout_ecc, -- .free = gd5fxgq4_variant2_ooblayout_free, -+/* Valid for Q4/Q5 and Q6 (untested) devices */ -+static const struct mtd_ooblayout_ops gd5fxgqx_variant2_ooblayout = { -+ .ecc = gd5fxgqx_variant2_ooblayout_ecc, -+ .free = gd5fxgqx_variant2_ooblayout_free, - }; - - static int gd5fxgq4xc_ooblayout_256_ecc(struct mtd_info *mtd, int section, -@@ -165,7 +169,7 @@ static int gd5fxgq4uexxg_ecc_get_status( - u8 status) - { - u8 status2; -- struct spi_mem_op op = SPINAND_GET_FEATURE_OP(GD5FXGQ4UEXXG_REG_STATUS2, -+ struct spi_mem_op op = SPINAND_GET_FEATURE_OP(GD5FXGQXXEXXG_REG_STATUS2, - &status2); - int ret; - -@@ -203,6 +207,43 @@ static int gd5fxgq4uexxg_ecc_get_status( - return -EINVAL; - } - -+static int gd5fxgq5xexxg_ecc_get_status(struct spinand_device *spinand, -+ u8 status) -+{ -+ u8 status2; -+ struct spi_mem_op op = SPINAND_GET_FEATURE_OP(GD5FXGQXXEXXG_REG_STATUS2, -+ &status2); -+ int ret; -+ -+ switch (status & STATUS_ECC_MASK) { -+ case STATUS_ECC_NO_BITFLIPS: -+ return 0; -+ -+ case GD5FXGQ5XE_STATUS_ECC_1_4_BITFLIPS: -+ /* -+ * Read status2 register to determine a more fine grained -+ * bit error status -+ */ -+ ret = spi_mem_exec_op(spinand->spimem, &op); -+ if (ret) -+ return ret; -+ -+ /* -+ * 1 ... 4 bits are flipped (and corrected) -+ */ -+ /* bits sorted this way (1...0): ECCSE1, ECCSE0 */ -+ return ((status2 & STATUS_ECC_MASK) >> 4) + 1; -+ -+ case STATUS_ECC_UNCOR_ERROR: -+ return -EBADMSG; -+ -+ default: -+ break; -+ } -+ -+ return -EINVAL; -+} -+ - static int gd5fxgq4ufxxg_ecc_get_status(struct spinand_device *spinand, - u8 status) - { -@@ -282,7 +323,7 @@ static const struct spinand_info gigadev - &write_cache_variants, - &update_cache_variants), - SPINAND_HAS_QE_BIT, -- SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout, -+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, - gd5fxgq4uexxg_ecc_get_status)), - SPINAND_INFO("GD5F1GQ4UFxxG", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE, 0xb1, 0x48), -@@ -292,8 +333,18 @@ static const struct spinand_info gigadev - &write_cache_variants, - &update_cache_variants), - SPINAND_HAS_QE_BIT, -- SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout, -+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, - gd5fxgq4ufxxg_ecc_get_status)), -+ SPINAND_INFO("GD5F1GQ5UExxG", -+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x51), -+ NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), -+ NAND_ECCREQ(4, 512), -+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants, -+ &write_cache_variants, -+ &update_cache_variants), -+ SPINAND_HAS_QE_BIT, -+ SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, -+ gd5fxgq5xexxg_ecc_get_status)), - }; - - static const struct spinand_manufacturer_ops gigadevice_spinand_manuf_ops = { diff --git a/target/linux/generic/backport-5.10/420-v5.19-01-mtd-spinand-gigadevice-fix-Quad-IO-for-GD5F1GQ5UExxG.patch b/target/linux/generic/backport-5.10/420-v5.19-01-mtd-spinand-gigadevice-fix-Quad-IO-for-GD5F1GQ5UExxG.patch deleted file mode 100644 index 1b0b57c2b..000000000 --- a/target/linux/generic/backport-5.10/420-v5.19-01-mtd-spinand-gigadevice-fix-Quad-IO-for-GD5F1GQ5UExxG.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a4f9dd55c5e1bb951db6f1dee20e62e0103f3438 Mon Sep 17 00:00:00 2001 -From: Chuanhong Guo -Date: Sun, 20 Mar 2022 17:59:57 +0800 -Subject: [PATCH 1/5] mtd: spinand: gigadevice: fix Quad IO for GD5F1GQ5UExxG - -Read From Cache Quad IO (EBH) uses 2 dummy bytes on this chip according -to page 23 of the datasheet[0]. - -[0]: https://www.gigadevice.com/datasheet/gd5f1gq5xexxg/ - -Fixes: 469b99248985 ("mtd: spinand: gigadevice: Support GD5F1GQ5UExxG") -Signed-off-by: Chuanhong Guo -Signed-off-by: Miquel Raynal -Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-2-gch981213@gmail.com ---- - drivers/mtd/nand/spi/gigadevice.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - ---- a/drivers/mtd/nand/spi/gigadevice.c -+++ b/drivers/mtd/nand/spi/gigadevice.c -@@ -39,6 +39,14 @@ static SPINAND_OP_VARIANTS(read_cache_va - SPINAND_PAGE_READ_FROM_CACHE_OP_3A(true, 0, 1, NULL, 0), - SPINAND_PAGE_READ_FROM_CACHE_OP_3A(false, 0, 0, NULL, 0)); - -+static SPINAND_OP_VARIANTS(read_cache_variants_1gq5, -+ SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_OP(true, 0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_OP(false, 0, 1, NULL, 0)); -+ - static SPINAND_OP_VARIANTS(write_cache_variants, - SPINAND_PROG_LOAD_X4(true, 0, NULL, 0), - SPINAND_PROG_LOAD(true, 0, NULL, 0)); -@@ -339,7 +347,7 @@ static const struct spinand_info gigadev - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x51), - NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), - NAND_ECCREQ(4, 512), -- SPINAND_INFO_OP_VARIANTS(&read_cache_variants, -+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5, - &write_cache_variants, - &update_cache_variants), - SPINAND_HAS_QE_BIT, diff --git a/target/linux/generic/backport-5.10/420-v5.19-02-mtd-spinand-gigadevice-add-support-for-GD5FxGQ4xExxG.patch b/target/linux/generic/backport-5.10/420-v5.19-02-mtd-spinand-gigadevice-add-support-for-GD5FxGQ4xExxG.patch index 181c912fb..94863b891 100644 --- a/target/linux/generic/backport-5.10/420-v5.19-02-mtd-spinand-gigadevice-add-support-for-GD5FxGQ4xExxG.patch +++ b/target/linux/generic/backport-5.10/420-v5.19-02-mtd-spinand-gigadevice-add-support-for-GD5FxGQ4xExxG.patch @@ -19,7 +19,7 @@ Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-3-gch981213@gmail. --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c -@@ -333,6 +333,36 @@ static const struct spinand_info gigadev +@@ -335,6 +335,36 @@ static const struct spinand_info gigadev SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, gd5fxgq4uexxg_ecc_get_status)), diff --git a/target/linux/generic/backport-5.10/420-v5.19-03-mtd-spinand-gigadevice-add-support-for-GD5F1GQ5RExxG.patch b/target/linux/generic/backport-5.10/420-v5.19-03-mtd-spinand-gigadevice-add-support-for-GD5F1GQ5RExxG.patch index 3a1cc9efc..287a062aa 100644 --- a/target/linux/generic/backport-5.10/420-v5.19-03-mtd-spinand-gigadevice-add-support-for-GD5F1GQ5RExxG.patch +++ b/target/linux/generic/backport-5.10/420-v5.19-03-mtd-spinand-gigadevice-add-support-for-GD5F1GQ5RExxG.patch @@ -14,7 +14,7 @@ Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-4-gch981213@gmail. --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c -@@ -383,6 +383,16 @@ static const struct spinand_info gigadev +@@ -385,6 +385,16 @@ static const struct spinand_info gigadev SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, gd5fxgq5xexxg_ecc_get_status)), diff --git a/target/linux/generic/backport-5.10/420-v5.19-04-mtd-spinand-gigadevice-add-support-for-GD5F-2-4-GQ5x.patch b/target/linux/generic/backport-5.10/420-v5.19-04-mtd-spinand-gigadevice-add-support-for-GD5F-2-4-GQ5x.patch index cee9d9db3..b1cf47678 100644 --- a/target/linux/generic/backport-5.10/420-v5.19-04-mtd-spinand-gigadevice-add-support-for-GD5F-2-4-GQ5x.patch +++ b/target/linux/generic/backport-5.10/420-v5.19-04-mtd-spinand-gigadevice-add-support-for-GD5F-2-4-GQ5x.patch @@ -35,7 +35,7 @@ Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-5-gch981213@gmail. static SPINAND_OP_VARIANTS(write_cache_variants, SPINAND_PROG_LOAD_X4(true, 0, NULL, 0), SPINAND_PROG_LOAD(true, 0, NULL, 0)); -@@ -391,6 +399,46 @@ static const struct spinand_info gigadev +@@ -393,6 +401,46 @@ static const struct spinand_info gigadev &write_cache_variants, &update_cache_variants), SPINAND_HAS_QE_BIT, diff --git a/target/linux/generic/backport-5.10/420-v5.19-05-mtd-spinand-gigadevice-add-support-for-GD5FxGM7xExxG.patch b/target/linux/generic/backport-5.10/420-v5.19-05-mtd-spinand-gigadevice-add-support-for-GD5FxGM7xExxG.patch index d63113e1a..5e342a29f 100644 --- a/target/linux/generic/backport-5.10/420-v5.19-05-mtd-spinand-gigadevice-add-support-for-GD5FxGM7xExxG.patch +++ b/target/linux/generic/backport-5.10/420-v5.19-05-mtd-spinand-gigadevice-add-support-for-GD5FxGM7xExxG.patch @@ -22,7 +22,7 @@ Link: https://lore.kernel.org/linux-mtd/20220320100001.247905-6-gch981213@gmail. --- a/drivers/mtd/nand/spi/gigadevice.c +++ b/drivers/mtd/nand/spi/gigadevice.c -@@ -441,6 +441,66 @@ static const struct spinand_info gigadev +@@ -443,6 +443,66 @@ static const struct spinand_info gigadev SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, gd5fxgq5xexxg_ecc_get_status)),