kernel: bump 6.6 to 6.6.63
authorJohn Audia <therealgraysky@proton.me>
Fri, 22 Nov 2024 15:53:37 +0000 (10:53 -0500)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 24 Nov 2024 21:46:21 +0000 (22:46 +0100)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.63

Manually rebased:
bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch

All other patches automatically rebased.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16997
(cherry picked from commit eb395585ae1b7560bbcea9544f428db2a9105152)
Link: https://github.com/openwrt/openwrt/pull/17055
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
include/kernel-6.6
target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch
target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch
target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch

index dfb1e855f8de02bc492e220618683f8f35f88a29..0cfe052e651ad15cf46c3421acc966d6a1c39a66 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .62
-LINUX_KERNEL_HASH-6.6.62 = e2c35611775534941b9d4dd871f3ae5b988b6594dc9033b5ca784366e07d9336
+LINUX_VERSION-6.6 = .63
+LINUX_KERNEL_HASH-6.6.63 = d1054ab4803413efe2850f50f1a84349c091631ec50a1cf9e891d1b1f9061835
index c5b01b7daddfc42d288172789137fc3424ba1fa6..dd57c53a18101ac1bb2e9a52b5424b8af4982f9d 100644 (file)
@@ -557,7 +557,7 @@ SVN-Revision: 35130
  static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
 --- a/net/sched/cls_u32.c
 +++ b/net/sched/cls_u32.c
-@@ -157,7 +157,7 @@ next_knode:
+@@ -167,7 +167,7 @@ next_knode:
                        data = skb_header_pointer(skb, toff, 4, &hdata);
                        if (!data)
                                goto out;
@@ -566,7 +566,7 @@ SVN-Revision: 35130
                                n = rcu_dereference_bh(n->next);
                                goto next_knode;
                        }
-@@ -208,8 +208,8 @@ check_terminal:
+@@ -218,8 +218,8 @@ check_terminal:
                                                  &hdata);
                        if (!data)
                                goto out;
index 102931650446f414c5b7b8b9a28456b7eb864afd..741d377fc8d3be96a3791894552b855492ff5038 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
  struct vchiq_drvdata {
        const unsigned int cache_line_size;
-@@ -1838,6 +1839,7 @@ static int vchiq_probe(struct platform_d
+@@ -1825,6 +1826,7 @@ static int vchiq_probe(struct platform_d
                goto error_exit;
        }
  
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
        bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
  
-@@ -1853,6 +1855,7 @@ static void vchiq_remove(struct platform
+@@ -1840,6 +1842,7 @@ static void vchiq_remove(struct platform
  {
        platform_device_unregister(bcm2835_audio);
        platform_device_unregister(bcm2835_camera);
index ab4fb514d6dd28957da3bed3250f9fc7cca8e3cc..5a3c91b7800471a7f7a78f5ff0e18f20266fdcb0 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  static struct platform_device *vcsm_cma;
  
  struct vchiq_drvdata {
-@@ -1840,6 +1841,7 @@ static int vchiq_probe(struct platform_d
+@@ -1827,6 +1828,7 @@ static int vchiq_probe(struct platform_d
        }
  
        vcsm_cma = vchiq_register_child(pdev, "vcsm-cma");
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
        bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
  
-@@ -1855,6 +1857,7 @@ static void vchiq_remove(struct platform
+@@ -1842,6 +1844,7 @@ static void vchiq_remove(struct platform
  {
        platform_device_unregister(bcm2835_audio);
        platform_device_unregister(bcm2835_camera);
index b008f9094682688afdce605336ef2b106f2dc927..3abc4f19bf77fb844fe1207a8eadac6b0d603a47 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1790,6 +1790,12 @@ vchiq_register_child(struct platform_dev
+@@ -1777,6 +1777,12 @@ vchiq_register_child(struct platform_dev
                child = NULL;
        }
  
index 85d1174a60e553bf16ae70be8937df76bf83505f..e5c5fdbc0b775a51f925c3627e8d8567a83fc5de 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1776,6 +1776,7 @@ vchiq_register_child(struct platform_dev
+@@ -1763,6 +1763,7 @@ vchiq_register_child(struct platform_dev
  {
        struct platform_device_info pdevinfo;
        struct platform_device *child;
@@ -25,7 +25,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
  
        memset(&pdevinfo, 0, sizeof(pdevinfo));
  
-@@ -1791,10 +1792,20 @@ vchiq_register_child(struct platform_dev
+@@ -1778,10 +1779,20 @@ vchiq_register_child(struct platform_dev
        }
  
        /*
index eab0710367f63234dc45a24c76428e67ff46f19e..9dba2dffca16a1aa9db1df6186c464e1ead9b8e4 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1785,12 +1785,20 @@ vchiq_register_child(struct platform_dev
+@@ -1772,12 +1772,20 @@ vchiq_register_child(struct platform_dev
        pdevinfo.id = PLATFORM_DEVID_NONE;
        pdevinfo.dma_mask = DMA_BIT_MASK(32);
  
index a33b39967f857ffe3d8223809ec83c1f406405e0..b5f912c85b0aad6e80efb7909d5e1efaf0d21206 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  
  struct vchiq_drvdata {
        const unsigned int cache_line_size;
-@@ -1869,6 +1870,7 @@ static int vchiq_probe(struct platform_d
+@@ -1856,6 +1857,7 @@ static int vchiq_probe(struct platform_d
        bcm2835_codec = vchiq_register_child(pdev, "bcm2835-codec");
        bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
        bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
@@ -29,7 +29,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  
        return 0;
  
-@@ -1880,6 +1882,7 @@ error_exit:
+@@ -1867,6 +1869,7 @@ error_exit:
  
  static void vchiq_remove(struct platform_device *pdev)
  {
index 0c1ee62fab2670497dd30b38c3c465d09888b943..11147d9fd9615a504347ed9bcd59d1d0fc89b032 100644 (file)
@@ -36,10 +36,10 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 +      .use_36bit_addrs = true,
 +};
 +
- struct vchiq_2835_state {
-       int inited;
-       struct vchiq_arm_state arm_state;
-@@ -147,10 +153,12 @@ static void __iomem *g_regs;
+ struct vchiq_pagelist_info {
+       struct pagelist *pagelist;
+       size_t pagelist_buffer_size;
+@@ -142,10 +148,12 @@ static void __iomem *g_regs;
   * of 32.
   */
  static unsigned int g_cache_line_size = 32;
@@ -52,7 +52,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  
  static DEFINE_SEMAPHORE(g_free_fragments_mutex, 1);
  
-@@ -180,7 +188,7 @@ static void
+@@ -175,7 +183,7 @@ static void
  cleanup_pagelistinfo(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagelistinfo)
  {
        if (pagelistinfo->scatterlist_mapped) {
@@ -61,7 +61,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
                             pagelistinfo->num_pages, pagelistinfo->dma_dir);
        }
  
-@@ -340,7 +348,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -335,7 +343,7 @@ create_pagelist(struct vchiq_instance *i
                count -= len;
        }
  
@@ -70,7 +70,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
                                 scatterlist,
                                 num_pages,
                                 pagelistinfo->dma_dir);
-@@ -354,22 +362,61 @@ create_pagelist(struct vchiq_instance *i
+@@ -349,22 +357,61 @@ create_pagelist(struct vchiq_instance *i
  
        /* Combine adjacent blocks for performance */
        k = 0;
@@ -148,7 +148,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        }
  
        /* Partial cache lines (fragments) require special measures */
-@@ -413,7 +460,7 @@ free_pagelist(struct vchiq_instance *ins
+@@ -408,7 +455,7 @@ free_pagelist(struct vchiq_instance *ins
         * NOTE: dma_unmap_sg must be called before the
         * cpu can touch any of the data/pages.
         */
@@ -157,7 +157,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
                     pagelistinfo->num_pages, pagelistinfo->dma_dir);
        pagelistinfo->scatterlist_mapped = 0;
  
-@@ -468,6 +515,7 @@ free_pagelist(struct vchiq_instance *ins
+@@ -463,6 +510,7 @@ free_pagelist(struct vchiq_instance *ins
  static int vchiq_platform_init(struct platform_device *pdev, struct vchiq_state *state)
  {
        struct device *dev = &pdev->dev;
@@ -165,7 +165,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        struct vchiq_drvdata *drvdata = platform_get_drvdata(pdev);
        struct rpi_firmware *fw = drvdata->fw;
        struct vchiq_slot_zero *vchiq_slot_zero;
-@@ -489,6 +537,24 @@ static int vchiq_platform_init(struct pl
+@@ -484,6 +532,24 @@ static int vchiq_platform_init(struct pl
        g_cache_line_size = drvdata->cache_line_size;
        g_fragments_size = 2 * g_cache_line_size;
  
@@ -190,7 +190,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        /* Allocate space for the channels in coherent memory */
        slot_mem_size = PAGE_ALIGN(TOTAL_SLOTS * VCHIQ_SLOT_SIZE);
        frag_mem_size = PAGE_ALIGN(g_fragments_size * MAX_FRAGMENTS);
-@@ -501,13 +567,14 @@ static int vchiq_platform_init(struct pl
+@@ -496,13 +562,14 @@ static int vchiq_platform_init(struct pl
        }
  
        WARN_ON(((unsigned long)slot_mem & (PAGE_SIZE - 1)) != 0);
@@ -206,7 +206,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        vchiq_slot_zero->platform_data[VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX] =
                MAX_FRAGMENTS;
  
-@@ -541,7 +608,6 @@ static int vchiq_platform_init(struct pl
+@@ -536,7 +603,6 @@ static int vchiq_platform_init(struct pl
        }
  
        /* Send the base address of the slots to VideoCore */
@@ -214,7 +214,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        err = rpi_firmware_property(fw, RPI_FIRMWARE_VCHIQ_INIT,
                                    &channelbase, sizeof(channelbase));
        if (err) {
-@@ -555,6 +621,8 @@ static int vchiq_platform_init(struct pl
+@@ -550,6 +616,8 @@ static int vchiq_platform_init(struct pl
                return -ENXIO;
        }
  
@@ -223,7 +223,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        vchiq_log_info(vchiq_arm_log_level, "vchiq_init - done (slots %pK, phys %pad)",
                       vchiq_slot_zero, &slot_phys);
  
-@@ -1768,6 +1836,7 @@ void vchiq_platform_conn_state_changed(s
+@@ -1755,6 +1823,7 @@ void vchiq_platform_conn_state_changed(s
  static const struct of_device_id vchiq_of_match[] = {
        { .compatible = "brcm,bcm2835-vchiq", .data = &bcm2835_drvdata },
        { .compatible = "brcm,bcm2836-vchiq", .data = &bcm2836_drvdata },
@@ -231,7 +231,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        {},
  };
  MODULE_DEVICE_TABLE(of, vchiq_of_match);
-@@ -1800,22 +1869,8 @@ vchiq_register_child(struct platform_dev
+@@ -1787,22 +1856,8 @@ vchiq_register_child(struct platform_dev
  
        child->dev.of_node = np;
  
index b6fb2e9eda2f55cdb290f4a76dac1cc2399f0f7a..87bea65fc765238cda1f31577698c1e6d757d1c7 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1869,8 +1869,18 @@ vchiq_register_child(struct platform_dev
+@@ -1856,8 +1856,18 @@ vchiq_register_child(struct platform_dev
  
        child->dev.of_node = np;
  
index bcd9dae853d5abc10aabaacbdc9f629acc04ed0e..162d333c6127e8f1b0191d9d76e8ea997c2e43d1 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com>
  /* Override the default prefix, which would be vchiq_arm (from the filename) */
  #undef MODULE_PARAM_PREFIX
  #define MODULE_PARAM_PREFIX DEVICE_NAME "."
-@@ -133,6 +136,7 @@ struct vchiq_pagelist_info {
+@@ -128,6 +131,7 @@ struct vchiq_pagelist_info {
        struct pagelist *pagelist;
        size_t pagelist_buffer_size;
        dma_addr_t dma_addr;
@@ -45,7 +45,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com>
        enum dma_data_direction dma_dir;
        unsigned int num_pages;
        unsigned int pages_need_release;
-@@ -153,6 +157,7 @@ static void __iomem *g_regs;
+@@ -148,6 +152,7 @@ static void __iomem *g_regs;
   * of 32.
   */
  static unsigned int g_cache_line_size = 32;
@@ -53,7 +53,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com>
  static unsigned int g_use_36bit_addrs = 0;
  static unsigned int g_fragments_size;
  static char *g_fragments_base;
-@@ -195,8 +200,13 @@ cleanup_pagelistinfo(struct vchiq_instan
+@@ -190,8 +195,13 @@ cleanup_pagelistinfo(struct vchiq_instan
        if (pagelistinfo->pages_need_release)
                unpin_user_pages(pagelistinfo->pages, pagelistinfo->num_pages);
  
@@ -69,7 +69,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com>
  }
  
  static inline bool
-@@ -231,6 +241,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -226,6 +236,7 @@ create_pagelist(struct vchiq_instance *i
        u32 *addrs;
        unsigned int num_pages, offset, i, k;
        int actual_pages;
@@ -77,7 +77,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com>
        size_t pagelist_size;
        struct scatterlist *scatterlist, *sg;
        int dma_buffers;
-@@ -260,8 +271,14 @@ create_pagelist(struct vchiq_instance *i
+@@ -255,8 +266,14 @@ create_pagelist(struct vchiq_instance *i
        /* Allocate enough storage to hold the page pointers and the page
         * list
         */
@@ -94,7 +94,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com>
  
        vchiq_log_trace(vchiq_arm_log_level, "%s - %pK", __func__, pagelist);
  
-@@ -282,6 +299,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -277,6 +294,7 @@ create_pagelist(struct vchiq_instance *i
        pagelistinfo->pagelist = pagelist;
        pagelistinfo->pagelist_buffer_size = pagelist_size;
        pagelistinfo->dma_addr = dma_addr;
@@ -102,7 +102,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski@gmail.com>
        pagelistinfo->dma_dir =  (type == PAGELIST_WRITE) ?
                                  DMA_TO_DEVICE : DMA_FROM_DEVICE;
        pagelistinfo->num_pages = num_pages;
-@@ -622,6 +640,13 @@ static int vchiq_platform_init(struct pl
+@@ -617,6 +635,13 @@ static int vchiq_platform_init(struct pl
        }
  
        g_dma_dev = dma_dev ?: dev;