kernel: bump 5.15 to 5.15.152
authorHauke Mehrtens <hauke@hauke-m.de>
Tue, 26 Mar 2024 00:18:15 +0000 (01:18 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 29 Mar 2024 12:44:41 +0000 (13:44 +0100)
Removed because it is upstream:
generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=fbddd48f1456db32b675fad95a902de38345902a

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
include/kernel-5.15
target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch [deleted file]
target/linux/generic/backport-5.15/350-v5.18-regmap-add-configurable-downshift-for-addresses.patch
target/linux/generic/backport-5.15/351-v5.18-regmap-allow-a-defined-reg_base-to-be-added-to-every.patch
target/linux/generic/backport-5.15/352-v6.3-regmap-apply-reg_base-and-reg_downshift-for-single-r.patch
target/linux/generic/hack-5.15/259-regmap_dynamic.patch
target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch

index 4d621b63e8cd2c182c59160b3ff3b2854ce33871..ba6b497c3bad1d7a4e3563c4ecc5a3daddd2f8d9 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .151
-LINUX_KERNEL_HASH-5.15.151 = 8a1e760bf2660947234109aa4fdbbe3686238b4e852157b96c59356689107e49
+LINUX_VERSION-5.15 = .152
+LINUX_KERNEL_HASH-5.15.152 = f0805225f4a5b24d0bba9302c2c2f261c04f737ac5dd931da9b112e9f3e4a47e
index 1d3a21b6cdd7825ed14d19502a980550b9f1bbf5..49277ab251f6472121f8c8952d5e7b1d68a42268 100644 (file)
@@ -109,7 +109,7 @@ it on BCM4708 family.
  
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1907,6 +1907,7 @@ struct xhci_hcd {
+@@ -1908,6 +1908,7 @@ struct xhci_hcd {
  #define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
  #define XHCI_ZHAOXIN_TRB_FETCH        BIT_ULL(45)
  #define XHCI_ZHAOXIN_HOST     BIT_ULL(46)
diff --git a/target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch b/target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch
deleted file mode 100644 (file)
index e4c0833..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From 02d6fdecb9c38de19065f6bed8d5214556fd061d Mon Sep 17 00:00:00 2001
-From: Ansuel Smith <ansuelsmth@gmail.com>
-Date: Thu, 4 Nov 2021 16:00:40 +0100
-Subject: regmap: allow to define reg_update_bits for no bus configuration
-
-Some device requires a special handling for reg_update_bits and can't use
-the normal regmap read write logic. An example is when locking is
-handled by the device and rmw operations requires to do atomic operations.
-Allow to declare a dedicated function in regmap_config for
-reg_update_bits in no bus configuration.
-
-Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
-Link: https://lore.kernel.org/r/20211104150040.1260-1-ansuelsmth@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
----
- drivers/base/regmap/regmap.c | 1 +
- include/linux/regmap.h       | 7 +++++++
- 2 files changed, 8 insertions(+)
-
---- a/drivers/base/regmap/regmap.c
-+++ b/drivers/base/regmap/regmap.c
-@@ -877,6 +877,7 @@ struct regmap *__regmap_init(struct devi
-       if (!bus) {
-               map->reg_read  = config->reg_read;
-               map->reg_write = config->reg_write;
-+              map->reg_update_bits = config->reg_update_bits;
-               map->defer_caching = false;
-               goto skip_format_initialization;
---- a/include/linux/regmap.h
-+++ b/include/linux/regmap.h
-@@ -290,6 +290,11 @@ typedef void (*regmap_unlock)(void *);
-  *              read operation on a bus such as SPI, I2C, etc. Most of the
-  *              devices do not need this.
-  * @reg_write:          Same as above for writing.
-+ * @reg_update_bits: Optional callback that if filled will be used to perform
-+ *                 all the update_bits(rmw) operation. Should only be provided
-+ *                 if the function require special handling with lock and reg
-+ *                 handling and the operation cannot be represented as a simple
-+ *                 update_bits operation on a bus such as SPI, I2C, etc.
-  * @fast_io:    Register IO is fast. Use a spinlock instead of a mutex
-  *              to perform locking. This field is ignored if custom lock/unlock
-  *              functions are used (see fields lock/unlock of struct regmap_config).
-@@ -372,6 +377,8 @@ struct regmap_config {
-       int (*reg_read)(void *context, unsigned int reg, unsigned int *val);
-       int (*reg_write)(void *context, unsigned int reg, unsigned int val);
-+      int (*reg_update_bits)(void *context, unsigned int reg,
-+                             unsigned int mask, unsigned int val);
-       bool fast_io;
index 7bb328f3a6de9ad3a48051732a68ce1b811ee5f8..175df150cccdfd7050a41a9a980355902d1bd9f8 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
        map->format.val_bytes = DIV_ROUND_UP(config->val_bits, 8);
        map->format.buf_size = DIV_ROUND_UP(config->reg_bits +
                        config->val_bits + config->pad_bits, 8);
-@@ -1737,6 +1738,7 @@ static int _regmap_raw_write_impl(struct
+@@ -1750,6 +1751,7 @@ static int _regmap_raw_write_impl(struct
                        return ret;
        }
  
@@ -45,7 +45,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
        map->format.format_reg(map->work_buf, reg, map->reg_shift);
        regmap_set_work_buf_flag_mask(map, map->format.reg_bytes,
                                      map->write_flag_mask);
-@@ -1907,6 +1909,7 @@ static int _regmap_bus_formatted_write(v
+@@ -1920,6 +1922,7 @@ static int _regmap_bus_formatted_write(v
                        return ret;
        }
  
@@ -53,7 +53,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
        map->format.format_write(map, reg, val);
  
        trace_regmap_hw_write_start(map, reg, 1);
-@@ -2348,6 +2351,7 @@ static int _regmap_raw_multi_reg_write(s
+@@ -2360,6 +2363,7 @@ static int _regmap_raw_multi_reg_write(s
                unsigned int reg = regs[i].reg;
                unsigned int val = regs[i].def;
                trace_regmap_hw_write_start(map, reg, 1);
@@ -61,7 +61,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
                map->format.format_reg(u8, reg, map->reg_shift);
                u8 += reg_bytes + pad_bytes;
                map->format.format_val(u8, val, 0);
-@@ -2675,6 +2679,7 @@ static int _regmap_raw_read(struct regma
+@@ -2685,6 +2689,7 @@ static int _regmap_raw_read(struct regma
                        return ret;
        }
  
@@ -80,7 +80,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
   * @pad_bits: Number of bits of padding between register and value.
   * @val_bits: Number of bits in a register value, mandatory.
   *
-@@ -360,6 +362,7 @@ struct regmap_config {
+@@ -366,6 +368,7 @@ struct regmap_config {
  
        int reg_bits;
        int reg_stride;
index 841f8d45286fe0aca4f607fcbbb8f401151f91ff..df716c4b651c263d2c87c9140523ec4ad6a4a907 100644 (file)
@@ -42,7 +42,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
        map->format.reg_bytes = DIV_ROUND_UP(config->reg_bits, 8);
        map->format.pad_bytes = config->pad_bits / 8;
        map->format.reg_downshift = config->reg_downshift;
-@@ -1738,6 +1740,7 @@ static int _regmap_raw_write_impl(struct
+@@ -1751,6 +1753,7 @@ static int _regmap_raw_write_impl(struct
                        return ret;
        }
  
@@ -50,7 +50,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
        reg >>= map->format.reg_downshift;
        map->format.format_reg(map->work_buf, reg, map->reg_shift);
        regmap_set_work_buf_flag_mask(map, map->format.reg_bytes,
-@@ -1909,6 +1912,7 @@ static int _regmap_bus_formatted_write(v
+@@ -1922,6 +1925,7 @@ static int _regmap_bus_formatted_write(v
                        return ret;
        }
  
@@ -58,7 +58,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
        reg >>= map->format.reg_downshift;
        map->format.format_write(map, reg, val);
  
-@@ -2351,6 +2355,7 @@ static int _regmap_raw_multi_reg_write(s
+@@ -2363,6 +2367,7 @@ static int _regmap_raw_multi_reg_write(s
                unsigned int reg = regs[i].reg;
                unsigned int val = regs[i].def;
                trace_regmap_hw_write_start(map, reg, 1);
@@ -66,7 +66,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
                reg >>= map->format.reg_downshift;
                map->format.format_reg(u8, reg, map->reg_shift);
                u8 += reg_bytes + pad_bytes;
-@@ -2679,6 +2684,7 @@ static int _regmap_raw_read(struct regma
+@@ -2689,6 +2694,7 @@ static int _regmap_raw_read(struct regma
                        return ret;
        }
  
@@ -85,7 +85,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
   * @pad_bits: Number of bits of padding between register and value.
   * @val_bits: Number of bits in a register value, mandatory.
   *
-@@ -363,6 +365,7 @@ struct regmap_config {
+@@ -369,6 +371,7 @@ struct regmap_config {
        int reg_bits;
        int reg_stride;
        int reg_downshift;
index bc3865c75b92afff02d9c299f46b371eb9f2ef4a..33de94cb17b25e2f3672ca3d1578c24bedfedfcf 100644 (file)
@@ -28,7 +28,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
 
 --- a/drivers/base/regmap/regmap.c
 +++ b/drivers/base/regmap/regmap.c
-@@ -1931,6 +1931,8 @@ static int _regmap_bus_reg_write(void *c
+@@ -1943,6 +1943,8 @@ static int _regmap_bus_reg_write(void *c
  {
        struct regmap *map = context;
  
@@ -37,7 +37,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
        return map->bus->reg_write(map->bus_context, reg, val);
  }
  
-@@ -2705,6 +2707,8 @@ static int _regmap_bus_reg_read(void *co
+@@ -2715,6 +2717,8 @@ static int _regmap_bus_reg_read(void *co
  {
        struct regmap *map = context;
  
@@ -46,7 +46,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
        return map->bus->reg_read(map->bus_context, reg, val);
  }
  
-@@ -3080,6 +3084,8 @@ static int _regmap_update_bits(struct re
+@@ -3084,6 +3088,8 @@ static int _regmap_update_bits(struct re
                *change = false;
  
        if (regmap_volatile(map, reg) && map->reg_update_bits) {
index e0820ccfc0dbf3107e2fcf8baa7e88f945147a8e..ea06821c4bd6feb73a37a279f037f9bce3e52330 100644 (file)
@@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #include <linux/mutex.h>
  #include <linux/err.h>
  #include <linux/property.h>
-@@ -3360,3 +3361,5 @@ static int __init regmap_initcall(void)
+@@ -3364,3 +3365,5 @@ static int __init regmap_initcall(void)
        return 0;
  }
  postcore_initcall(regmap_initcall);
index 071a2ed3e5e0132e781189903c350d6ac61b7780..4c97d8b9ec5a02eac6f8d45ba53013c73b38ec16 100644 (file)
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -6298,6 +6329,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6291,6 +6322,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                net->ipv6.ip6_prohibit_entry->dst.dev = dev;
                net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -6309,6 +6342,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6302,6 +6335,7 @@ static int ip6_route_dev_notify(struct n
                in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
        }
-@@ -6500,6 +6534,8 @@ static int __net_init ip6_route_net_init
+@@ -6493,6 +6527,8 @@ static int __net_init ip6_route_net_init
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        net->ipv6.fib6_has_custom_rules = false;
@@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
                                               sizeof(*net->ipv6.ip6_prohibit_entry),
                                               GFP_KERNEL);
-@@ -6510,11 +6546,21 @@ static int __net_init ip6_route_net_init
+@@ -6503,11 +6539,21 @@ static int __net_init ip6_route_net_init
                         ip6_template_metrics, true);
        INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
  
@@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
        dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
                         ip6_template_metrics, true);
-@@ -6541,6 +6587,8 @@ out:
+@@ -6534,6 +6580,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -6560,6 +6608,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6553,6 +6601,7 @@ static void __net_exit ip6_route_net_exi
        kfree(net->ipv6.ip6_null_entry);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6643,6 +6692,9 @@ void __init ip6_route_init_special_entri
+@@ -6636,6 +6685,9 @@ void __init ip6_route_init_special_entri
        init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
        init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
        init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);