kernel: bump 6.12 to 6.12.41
authorJohn Audia <therealgraysky@proton.me>
Fri, 1 Aug 2025 09:26:34 +0000 (05:26 -0400)
committerRobert Marko <robimarko@gmail.com>
Tue, 26 Aug 2025 19:35:35 +0000 (21:35 +0200)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.41

All patches automatically rebased.

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19618
Signed-off-by: Robert Marko <robimarko@gmail.com>
12 files changed:
target/linux/bcm27xx/patches-6.12/950-0154-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
target/linux/bcm27xx/patches-6.12/950-0155-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
target/linux/bcm27xx/patches-6.12/950-0161-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
target/linux/bcm27xx/patches-6.12/950-0163-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
target/linux/bcm27xx/patches-6.12/950-0521-mm-vmscan-Maintain-TLB-coherency-in-LRU-code.patch
target/linux/generic/backport-6.12/410-01-v6.14-mtd-rawnand-qcom-cleanup-qcom_nandc-driver.patch
target/linux/generic/backport-6.12/410-02-v6.14-mtd-rawnand-qcom-Add-qcom-prefix-to-common-api.patch
target/linux/generic/backport-6.12/410-03-v6.14-mtd-nand-Add-qpic_common-API-file.patch
target/linux/generic/backport-6.12/410-04-v6.14-mtd-rawnand-qcom-use-FIELD_PREP-and-GENMASK.patch
target/linux/generic/backport-6.12/410-05-v6.14-mtd-rawnand-qcom-fix-broken-config-in-qcom_param_pag.patch
target/linux/generic/hack-6.12/259-regmap_dynamic.patch
target/linux/generic/kernel-6.12

index b580ee5377e6b4c59f46a1dcab3046594049cda2..e9f351d518715d7e8f74c7230e12d9a25d70dd3b 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
  static const struct vchiq_platform_info bcm2835_info = {
        .cache_line_size = 32,
-@@ -1760,6 +1761,7 @@ static int vchiq_probe(struct platform_d
+@@ -1759,6 +1760,7 @@ static int vchiq_probe(struct platform_d
  
        vchiq_debugfs_init(&mgmt->state);
  
@@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        bcm2835_audio = vchiq_device_register(&pdev->dev, "bcm2835-audio");
        bcm2835_camera = vchiq_device_register(&pdev->dev, "bcm2835-camera");
  
-@@ -1778,6 +1780,7 @@ static void vchiq_remove(struct platform
+@@ -1777,6 +1779,7 @@ static void vchiq_remove(struct platform
  
        vchiq_device_unregister(bcm2835_audio);
        vchiq_device_unregister(bcm2835_camera);
index 874bf15d3424964995b28bcc11b02db535df8f9b..acc70e297724d72d40b1cad1372de1a524973f7d 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  static struct vchiq_device *vcsm_cma;
  
  static const struct vchiq_platform_info bcm2835_info = {
-@@ -1762,6 +1763,7 @@ static int vchiq_probe(struct platform_d
+@@ -1761,6 +1762,7 @@ static int vchiq_probe(struct platform_d
        vchiq_debugfs_init(&mgmt->state);
  
        vcsm_cma = vchiq_device_register(&pdev->dev, "vcsm-cma");
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        bcm2835_audio = vchiq_device_register(&pdev->dev, "bcm2835-audio");
        bcm2835_camera = vchiq_device_register(&pdev->dev, "bcm2835-camera");
  
-@@ -1780,6 +1782,7 @@ static void vchiq_remove(struct platform
+@@ -1779,6 +1781,7 @@ static void vchiq_remove(struct platform
  
        vchiq_device_unregister(bcm2835_audio);
        vchiq_device_unregister(bcm2835_camera);
index 0c7fd01ec859f112577b3cf12c09318320119a92..b2b470eaebd2d1353917aa92c822c89536566e9f 100644 (file)
@@ -234,7 +234,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        dev_dbg(&pdev->dev, "arm: vchiq_init - done (slots %pK, phys %pad)\n",
                vchiq_slot_zero, &slot_phys);
  
-@@ -1711,6 +1777,7 @@ void vchiq_platform_conn_state_changed(s
+@@ -1710,6 +1776,7 @@ void vchiq_platform_conn_state_changed(s
  static const struct of_device_id vchiq_of_match[] = {
        { .compatible = "brcm,bcm2835-vchiq", .data = &bcm2835_info },
        { .compatible = "brcm,bcm2836-vchiq", .data = &bcm2836_info },
index 1ba21abf1dc7be257013541ff7d209d6bce368a6..c9394bc85b7796977be30f1da609b574ed232206 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  static struct vchiq_device *vcsm_cma;
  
  static const struct vchiq_platform_info bcm2835_info = {
-@@ -1858,6 +1859,7 @@ static int vchiq_probe(struct platform_d
+@@ -1857,6 +1858,7 @@ static int vchiq_probe(struct platform_d
        bcm2835_codec = vchiq_device_register(&pdev->dev, "bcm2835-codec");
        bcm2835_audio = vchiq_device_register(&pdev->dev, "bcm2835-audio");
        bcm2835_camera = vchiq_device_register(&pdev->dev, "bcm2835-camera");
@@ -29,7 +29,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  
        return 0;
  
-@@ -1872,6 +1874,7 @@ static void vchiq_remove(struct platform
+@@ -1871,6 +1873,7 @@ static void vchiq_remove(struct platform
        struct vchiq_drv_mgmt *mgmt = dev_get_drvdata(&pdev->dev);
        struct vchiq_arm_state *arm_state;
  
index 26f11df2a16e6299456fe26811ac4adeb5b4c716..66472a96bf4ac0edb74ac5900f5c797ef3c59e6c 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -4128,7 +4128,7 @@ bool lru_gen_look_around(struct page_vma
+@@ -4136,7 +4136,7 @@ bool lru_gen_look_around(struct page_vma
                if (!folio)
                        continue;
  
index 95b66071ade0b2e5ce17838da7fec7b6bf45e53c..1d1288e832e61c70ee8734b5f5d2fea26bb48cb6 100644 (file)
@@ -815,7 +815,15 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        read_reg_dma(nandc, NAND_FLASH_STATUS, 1, NAND_BAM_NEXT_SGL);
  
        ret = submit_descs(nandc);
-@@ -2864,7 +2815,7 @@ static int qcom_param_page_type_exec(str
+@@ -2862,14 +2813,14 @@ static int qcom_param_page_type_exec(str
+       reg_base = NAND_READ_LOCATION_0;
+-      if (nandc->props->qpic_v2)
++      if (nandc->props->qpic_version2)
+               reg_base = NAND_READ_LOCATION_LAST_CW_0;
+       ret = qcom_parse_instructions(chip, subop, &q_op);
        if (ret)
                return ret;
  
@@ -824,7 +832,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
  
        nandc->buf_count = 0;
        nandc->buf_start = 0;
-@@ -2872,38 +2823,38 @@ static int qcom_param_page_type_exec(str
+@@ -2877,52 +2828,52 @@ static int qcom_param_page_type_exec(str
        clear_read_regs(nandc);
        clear_bam_transaction(nandc);
  
@@ -890,9 +898,14 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        }
  
        instr = q_op.data_instr;
-@@ -2912,9 +2863,9 @@ static int qcom_param_page_type_exec(str
+       op_id = q_op.data_instr_idx;
+       len = nand_subop_get_data_len(subop, op_id);
  
-       nandc_set_read_loc(chip, 0, 0, 0, len, 1);
+-      if (nandc->props->qpic_v2)
++      if (nandc->props->qpic_version2)
+               nandc_set_read_loc_last(chip, reg_base, 0, len, 1);
+       else
+               nandc_set_read_loc_first(chip, reg_base, 0, len, 1);
  
 -      if (!nandc->props->qpic_v2) {
 -              write_reg_dma(nandc, NAND_DEV_CMD_VLD, 1, 0);
@@ -903,7 +916,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        }
  
        nandc->buf_count = 512;
-@@ -2926,9 +2877,10 @@ static int qcom_param_page_type_exec(str
+@@ -2934,9 +2885,10 @@ static int qcom_param_page_type_exec(str
                      nandc->buf_count, 0);
  
        /* restore CMD1 and VLD regs */
@@ -917,7 +930,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        }
  
        ret = submit_descs(nandc);
-@@ -3017,7 +2969,7 @@ static const struct nand_controller_ops
+@@ -3025,7 +2977,7 @@ static const struct nand_controller_ops
  
  static void qcom_nandc_unalloc(struct qcom_nand_controller *nandc)
  {
@@ -926,7 +939,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
                if (!dma_mapping_error(nandc->dev, nandc->reg_read_dma))
                        dma_unmap_single(nandc->dev, nandc->reg_read_dma,
                                         MAX_REG_RD *
-@@ -3070,7 +3022,7 @@ static int qcom_nandc_alloc(struct qcom_
+@@ -3078,7 +3030,7 @@ static int qcom_nandc_alloc(struct qcom_
        if (!nandc->reg_read_buf)
                return -ENOMEM;
  
@@ -935,7 +948,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
                nandc->reg_read_dma =
                        dma_map_single(nandc->dev, nandc->reg_read_buf,
                                       MAX_REG_RD *
-@@ -3151,15 +3103,15 @@ static int qcom_nandc_setup(struct qcom_
+@@ -3159,15 +3111,15 @@ static int qcom_nandc_setup(struct qcom_
        u32 nand_ctrl;
  
        /* kill onenand */
@@ -954,7 +967,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
                nand_ctrl = nandc_read(nandc, NAND_CTRL);
  
                /*
-@@ -3176,7 +3128,7 @@ static int qcom_nandc_setup(struct qcom_
+@@ -3184,7 +3136,7 @@ static int qcom_nandc_setup(struct qcom_
        }
  
        /* save the original values of these registers */
@@ -963,7 +976,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
                nandc->cmd1 = nandc_read(nandc, dev_cmd_reg_addr(nandc, NAND_DEV_CMD1));
                nandc->vld = NAND_DEV_CMD_VLD_VAL;
        }
-@@ -3349,7 +3301,7 @@ static int qcom_nandc_parse_dt(struct pl
+@@ -3357,7 +3309,7 @@ static int qcom_nandc_parse_dt(struct pl
        struct device_node *np = nandc->dev->of_node;
        int ret;
  
@@ -972,7 +985,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
                ret = of_property_read_u32(np, "qcom,cmd-crci",
                                           &nandc->cmd_crci);
                if (ret) {
-@@ -3474,30 +3426,30 @@ static void qcom_nandc_remove(struct pla
+@@ -3482,30 +3434,30 @@ static void qcom_nandc_remove(struct pla
  
  static const struct qcom_nandc_props ipq806x_nandc_props = {
        .ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT),
index f634e0442a82de610d480e77132584a9933778f7..23ef86f80776ab297d900c1bf91d92fc46c827a2 100644 (file)
@@ -823,7 +823,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        if (ret) {
                dev_err(nandc->dev, "failure in submitting misc descriptor\n");
                goto err_out;
-@@ -2820,8 +2820,8 @@ static int qcom_param_page_type_exec(str
+@@ -2825,8 +2825,8 @@ static int qcom_param_page_type_exec(str
        nandc->buf_count = 0;
        nandc->buf_start = 0;
        host->use_ecc = false;
@@ -834,8 +834,8 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
  
        nandc->regs->cmd = q_op.cmd_reg;
        nandc->regs->addr0 = 0;
-@@ -2864,8 +2864,8 @@ static int qcom_param_page_type_exec(str
-       nandc_set_read_loc(chip, 0, 0, 0, len, 1);
+@@ -2872,8 +2872,8 @@ static int qcom_param_page_type_exec(str
+               nandc_set_read_loc_first(chip, reg_base, 0, len, 1);
  
        if (!nandc->props->qpic_version2) {
 -              write_reg_dma(nandc, &nandc->regs->vld, NAND_DEV_CMD_VLD, 1, 0);
@@ -845,7 +845,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        }
  
        nandc->buf_count = 512;
-@@ -2873,17 +2873,17 @@ static int qcom_param_page_type_exec(str
+@@ -2881,17 +2881,17 @@ static int qcom_param_page_type_exec(str
  
        config_nand_single_cw_page_read(chip, false, 0);
  
@@ -869,7 +869,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        if (ret) {
                dev_err(nandc->dev, "failure in submitting param page descriptor\n");
                goto err_out;
-@@ -3067,7 +3067,7 @@ static int qcom_nandc_alloc(struct qcom_
+@@ -3075,7 +3075,7 @@ static int qcom_nandc_alloc(struct qcom_
                 * maximum codeword size
                 */
                nandc->max_cwperpage = 1;
index 26211461c13159e53a62feaa6fdd8422281f2ec8..9272f9886275e995f6dc0fc26fae5b77188f597b 100644 (file)
@@ -1786,7 +1786,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
  /*
   * when using BCH ECC, the HW flags an error in NAND_FLASH_STATUS if it read
   * an erased CW, and reports an erased CW in NAND_ERASED_CW_DETECT_STATUS.
-@@ -2967,141 +2022,14 @@ static const struct nand_controller_ops
+@@ -2975,141 +2030,14 @@ static const struct nand_controller_ops
        .exec_op = qcom_nand_exec_op,
  };
  
@@ -1931,7 +1931,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        /* kill onenand */
        if (!nandc->props->nandc_part_of_qpic)
                nandc_write(nandc, SFLASHC_BURST_CFG, 0);
-@@ -3240,7 +2168,7 @@ static int qcom_nand_host_init_and_regis
+@@ -3248,7 +2176,7 @@ static int qcom_nand_host_init_and_regis
        chip->legacy.block_bad          = qcom_nandc_block_bad;
        chip->legacy.block_markbad      = qcom_nandc_block_markbad;
  
@@ -1940,7 +1940,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        chip->options |= NAND_NO_SUBPAGE_WRITE | NAND_USES_DMA |
                         NAND_SKIP_BBTSCAN;
  
-@@ -3323,17 +2251,21 @@ static int qcom_nandc_parse_dt(struct pl
+@@ -3331,17 +2259,21 @@ static int qcom_nandc_parse_dt(struct pl
  static int qcom_nandc_probe(struct platform_device *pdev)
  {
        struct qcom_nand_controller *nandc;
index b37507409a7ab13a714ce387df9c39cc8b850a28..c19f681e9d9aa2a17691386684ab159f20ac6c45 100644 (file)
@@ -104,7 +104,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
  
        if (!nandc->props->qpic_version2)
                host->ecc_buf_cfg = 0x203 << NUM_STEPS;
-@@ -1882,21 +1881,21 @@ static int qcom_param_page_type_exec(str
+@@ -1887,21 +1886,21 @@ static int qcom_param_page_type_exec(str
        nandc->regs->addr0 = 0;
        nandc->regs->addr1 = 0;
  
index a6a4db229f5dbaeba32d42eb7fa61a4a176b5691..238a1f9d93f1077539b99f071a84f118830f42bf 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/drivers/mtd/nand/raw/qcom_nandc.c
 +++ b/drivers/mtd/nand/raw/qcom_nandc.c
-@@ -1881,18 +1881,18 @@ static int qcom_param_page_type_exec(str
+@@ -1886,18 +1886,18 @@ static int qcom_param_page_type_exec(str
        nandc->regs->addr0 = 0;
        nandc->regs->addr1 = 0;
  
index e7614d6822fa751ac27cc257beee0618c5c166be..cbd6c4223493812329a7b51dbcae1d942cd05771 100644 (file)
@@ -137,7 +137,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #include <linux/mutex.h>
  #include <linux/err.h>
  #include <linux/property.h>
-@@ -3519,3 +3520,5 @@ static int __init regmap_initcall(void)
+@@ -3521,3 +3522,5 @@ static int __init regmap_initcall(void)
        return 0;
  }
  postcore_initcall(regmap_initcall);
index 9880cae37ec57de0bb8feaa9e14fe51478699dd9..11f05faf1c22be14a412dedb6936d68eaa4cd4ca 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.12 = .40
-LINUX_KERNEL_HASH-6.12.40 = 4811af1317f98d2cccea3c7695969a2c03a27cb02fd2d5327032dd5341842933
+LINUX_VERSION-6.12 = .41
+LINUX_KERNEL_HASH-6.12.41 = 6b19a3ae99423de2416964d67251d745910277af258b4c4c63e88fd87dbf0e27