]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: bump 6.12 to 6.12.77 22276/head
authorJohn Audia <therealgraysky@proton.me>
Sat, 14 Mar 2026 00:07:03 +0000 (20:07 -0400)
committerRobert Marko <robimarko@gmail.com>
Sun, 22 Mar 2026 11:00:31 +0000 (12:00 +0100)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.77

Removed upstream:
  generic/backport-6.12/204-v6.13-resource-Add-resource-set-range-and-size-helpers.patch[1]
  microchipsw/patches-6.12/0098-v7.0-net-sparx5-lan969x-fix-DWRR-cost-max-to-match-hardwa.patch

Manually rebased:
  bcm27xx/patches-6.12/950-0955-hwmon-aht10-Fix-AHT20-initialization.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.77&id=889b5cb678c1ae5a4e1ff3b2c46f06ef4292aa86
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.77&id=6c28aa8dfdf24f554d4c5d4ff7d723a95360d94a

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Co-authored-by: Shiji Yang <yangshiji66@outlook.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22276
Signed-off-by: Robert Marko <robimarko@gmail.com>
22 files changed:
target/linux/bcm27xx/patches-6.12/950-0069-Improve-__copy_to_user-and-__copy_from_user-performa.patch
target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
target/linux/bcm27xx/patches-6.12/950-0309-hwmon-aht10-Add-DT-compatible-string.patch
target/linux/bcm27xx/patches-6.12/950-0407-media-i2c-Add-ROHM-BU64754-Camera-Autofocus-Actuator.patch
target/linux/bcm27xx/patches-6.12/950-0724-Revert-PCI-Warn-if-no-host-bridge-NUMA-node-info.patch
target/linux/bcm27xx/patches-6.12/950-0955-hwmon-aht10-Fix-AHT20-initialization.patch
target/linux/econet/patches-6.12/913-pcie-fix-bogus-prefetch-window.patch
target/linux/generic/backport-6.12/204-v6.13-resource-Add-resource-set-range-and-size-helpers.patch [deleted file]
target/linux/generic/backport-6.12/721-01-v6.15-net-ethernet-mediatek-add-EEE-support.patch
target/linux/generic/hack-6.12/730-net-ethernet-mtk_eth_soc-add-hw-dump-for-forced-rese.patch
target/linux/generic/kernel-6.12
target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-6.12/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
target/linux/generic/pending-6.12/732-03-net-ethernet-mtk_eth_soc-optimize-dma-ring-address-i.patch
target/linux/generic/pending-6.12/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
target/linux/generic/pending-6.12/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch
target/linux/generic/pending-6.12/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch
target/linux/generic/pending-6.12/834-ledtrig-libata.patch
target/linux/mediatek/patches-6.12/750-net-ethernet-mtk_eth_soc-add-mt7987-support.patch
target/linux/mediatek/patches-6.12/751-net-ethernet-mtk_eth_soc-revise-hardware-configuration-for-mt7987.patch
target/linux/microchipsw/patches-6.12/0098-v7.0-net-sparx5-lan969x-fix-DWRR-cost-max-to-match-hardwa.patch [deleted file]
target/linux/starfive/patches-6.12/0017-plic-irq-Set-IRQCHIP_EOI_THREADED-in-PREEMPT_RT-case.patch

index 33fcc2ada7b536d92df14865b61eb3fdd7c71b1c..794d02ad915632d67292926166dfd247e520383d 100644 (file)
@@ -86,7 +86,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/arch/arm/include/asm/string.h
 +++ b/arch/arm/include/asm/string.h
-@@ -68,4 +68,9 @@ static inline void *memset64(uint64_t *p
+@@ -72,4 +72,9 @@ static inline void *memset64(uint64_t *p
  
  #endif
  
index aa306da6f848c5453ff54cdd9d254a22dac2a36d..c38edf1184cb9854da59231c0cc385d6819b5593 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
  #define USB_VENDOR_ID_BELKIN          0x050d
  #define USB_DEVICE_ID_FLIP_KVM                0x3201
  
-@@ -1479,6 +1482,9 @@
+@@ -1480,6 +1483,9 @@
  #define USB_VENDOR_ID_XIAOMI          0x2717
  #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
  
index 6fac3b1364709a68c510e0f1c1f1f5b77f26a925..ab5cfc745e7581bb6f0874bdf20ac16f676c20ba 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/hwmon/aht10.c
 +++ b/drivers/hwmon/aht10.c
-@@ -57,6 +57,12 @@ static const struct i2c_device_id aht10_
+@@ -62,6 +62,12 @@ static const struct i2c_device_id aht10_
  };
  MODULE_DEVICE_TABLE(i2c, aht10_id);
  
@@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  /**
   *   struct aht10_data - All the data required to operate an AHT10/AHT20 chip
   *   @client: the i2c client associated with the AHT10/AHT20
-@@ -380,6 +386,7 @@ static int aht10_probe(struct i2c_client
+@@ -395,6 +401,7 @@ static int aht10_probe(struct i2c_client
  static struct i2c_driver aht10_driver = {
        .driver = {
                .name = "aht10",
index 1a2261aa3459b36a1ae4fff48daacb15a1326797..b6fe8e95e39780bec55e34bbdd2638ecc1a81ec0 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
 +
  config VIDEO_DW9714
        tristate "DW9714 lens voice coil support"
-       depends on I2C && VIDEO_DEV
+       depends on GPIOLIB && I2C && VIDEO_DEV
 --- a/drivers/media/i2c/Makefile
 +++ b/drivers/media/i2c/Makefile
 @@ -26,6 +26,7 @@ obj-$(CONFIG_VIDEO_ARDUCAM_PIVARIETY) +=
index f7f0a52f9501422622eccb75337d8cc367b09ad3..97ecdd7c59b268e5199e5cb06686542e5e5c87cd 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/pci/probe.c
 +++ b/drivers/pci/probe.c
-@@ -996,9 +996,6 @@ static int pci_register_host_bridge(stru
+@@ -994,9 +994,6 @@ static int pci_register_host_bridge(stru
        else
                pr_info("PCI host bridge to bus %s\n", name);
  
index c30b1b779ca06cf0cb63eae7460b970a953bcfa7..45a7dd4b55ff5433cbc8c55b4e989450f792e9e3 100644 (file)
@@ -17,16 +17,7 @@ Signed-off-by: Josh Martinez <8892161+joshermar@users.noreply.github.com>
 
 --- a/drivers/hwmon/aht10.c
 +++ b/drivers/hwmon/aht10.c
-@@ -37,6 +37,8 @@
- #define AHT10_CMD_MEAS        0b10101100
- #define AHT10_CMD_RST 0b10111010
-+#define AHT20_CMD_INIT        0b10111110
-+
- /*
-  * Flags in the answer byte/command
-  */
-@@ -59,6 +61,7 @@ MODULE_DEVICE_TABLE(i2c, aht10_id);
+@@ -64,6 +64,7 @@ MODULE_DEVICE_TABLE(i2c, aht10_id);
  
  static const struct of_device_id aht10_of_id[] = {
        { .compatible = "aosong,aht10", },
@@ -34,19 +25,3 @@ Signed-off-by: Josh Martinez <8892161+joshermar@users.noreply.github.com>
        { }
  };
  MODULE_DEVICE_TABLE(of, aht10_of_id);
-@@ -107,8 +110,13 @@ struct aht10_data {
-  */
- static int aht10_init(struct aht10_data *data)
- {
--      const u8 cmd_init[] = {AHT10_CMD_INIT, AHT10_CAL_ENABLED | AHT10_MODE_CYC,
--                             0x00};
-+      u8 cmd_init[] = {AHT10_CMD_INIT, AHT10_CAL_ENABLED | AHT10_MODE_CYC, 0x00};
-+
-+      if (data->crc8) { /* AHT20 */
-+              cmd_init[0] = AHT20_CMD_INIT;
-+              cmd_init[1] = AHT10_CAL_ENABLED;
-+      }
-+
-       int res;
-       u8 status;
-       struct i2c_client *client = data->client;
index a7ee7b7b6c7c3383868b4ea2343c9afcb18df077..872843549d13a72447e85ad6d0e439872598169a 100644 (file)
@@ -16,7 +16,7 @@ Suggested-by: Bjorn Helgaas <helgaas@kernel.org>
 Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
 --- a/drivers/pci/probe.c
 +++ b/drivers/pci/probe.c
-@@ -351,6 +351,9 @@ static void pci_read_bridge_io(struct pc
+@@ -349,6 +349,9 @@ static void pci_read_bridge_io(struct pc
        unsigned long io_mask, io_granularity, base, limit;
        struct pci_bus_region region;
  
@@ -26,7 +26,7 @@ Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
        io_mask = PCI_IO_RANGE_MASK;
        io_granularity = 0x1000;
        if (dev->io_window_1k) {
-@@ -412,6 +415,9 @@ static void pci_read_bridge_mmio_pref(st
+@@ -410,6 +413,9 @@ static void pci_read_bridge_mmio_pref(st
        pci_bus_addr_t base, limit;
        struct pci_bus_region region;
  
diff --git a/target/linux/generic/backport-6.12/204-v6.13-resource-Add-resource-set-range-and-size-helpers.patch b/target/linux/generic/backport-6.12/204-v6.13-resource-Add-resource-set-range-and-size-helpers.patch
deleted file mode 100644 (file)
index 0ea3e2a..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-From 9fb6fef0fb49124291837af1da5028f79d53f98e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
-Date: Fri, 14 Jun 2024 13:06:03 +0300
-Subject: [PATCH] resource: Add resource set range and size helpers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Setting the end address for a resource with a given size lacks a helper and
-is therefore coded manually unlike the getter side which has a helper for
-resource size calculation. Also, almost all callsites that calculate the
-end address for a resource also set the start address right before it like
-this:
-
-  res->start = start_addr;
-  res->end = res->start + size - 1;
-
-Add resource_set_range(res, start_addr, size) that sets the start address
-and calculates the end address to simplify this often repeated fragment.
-
-Also add resource_set_size() for the cases where setting the start address
-of the resource is not necessary but mention in its kerneldoc that
-resource_set_range() is preferred when setting both addresses.
-
-Link: https://lore.kernel.org/r/20240614100606.15830-2-ilpo.jarvinen@linux.intel.com
-Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
----
- include/linux/ioport.h | 32 ++++++++++++++++++++++++++++++++
- 1 file changed, 32 insertions(+)
-
---- a/include/linux/ioport.h
-+++ b/include/linux/ioport.h
-@@ -249,6 +249,38 @@ struct resource *lookup_resource(struct
- int adjust_resource(struct resource *res, resource_size_t start,
-                   resource_size_t size);
- resource_size_t resource_alignment(struct resource *res);
-+
-+/**
-+ * resource_set_size - Calculate resource end address from size and start
-+ * @res: Resource descriptor
-+ * @size: Size of the resource
-+ *
-+ * Calculate the end address for @res based on @size.
-+ *
-+ * Note: The start address of @res must be set when calling this function.
-+ * Prefer resource_set_range() if setting both the start address and @size.
-+ */
-+static inline void resource_set_size(struct resource *res, resource_size_t size)
-+{
-+      res->end = res->start + size - 1;
-+}
-+
-+/**
-+ * resource_set_range - Set resource start and end addresses
-+ * @res: Resource descriptor
-+ * @start: Start address for the resource
-+ * @size: Size of the resource
-+ *
-+ * Set @res start address and calculate the end address based on @size.
-+ */
-+static inline void resource_set_range(struct resource *res,
-+                                    resource_size_t start,
-+                                    resource_size_t size)
-+{
-+      res->start = start;
-+      resource_set_size(res, size);
-+}
-+
- static inline resource_size_t resource_size(const struct resource *res)
- {
-       return res->end - res->start + 1;
index c58635a2846c44b9598adae94f08158c8d8459ed..7a94897c02ff2b3534bbb53506978b134d2a97fa 100644 (file)
@@ -39,7 +39,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
        mcr |= MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK;
        mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id));
  }
-@@ -4514,6 +4524,61 @@ static int mtk_set_pauseparam(struct net
+@@ -4523,6 +4533,61 @@ static int mtk_set_pauseparam(struct net
        return phylink_ethtool_set_pauseparam(mac->phylink, pause);
  }
  
@@ -101,7 +101,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
  static u16 mtk_select_queue(struct net_device *dev, struct sk_buff *skb,
                            struct net_device *sb_dev)
  {
-@@ -4546,6 +4611,8 @@ static const struct ethtool_ops mtk_etht
+@@ -4555,6 +4620,8 @@ static const struct ethtool_ops mtk_etht
        .set_pauseparam         = mtk_set_pauseparam,
        .get_rxnfc              = mtk_get_rxnfc,
        .set_rxnfc              = mtk_set_rxnfc,
@@ -110,7 +110,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
  };
  
  static const struct net_device_ops mtk_netdev_ops = {
-@@ -4606,6 +4673,8 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4615,6 +4682,8 @@ static int mtk_add_mac(struct mtk_eth *e
        }
        mac = netdev_priv(eth->netdev[id]);
        eth->mac[id] = mac;
index 4cb8c2903ca6fb12d915facd971a0c04caea2c2c..39446f6bace3c12a7eafd2c5525066b72a9bdd8d 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
                .glo_cfg        = 0x4604,
                .rst_idx        = 0x4608,
                .delay_irq      = 0x460c,
-@@ -4060,6 +4063,56 @@ static void mtk_set_mcr_max_rx(struct mt
+@@ -4069,6 +4072,56 @@ static void mtk_set_mcr_max_rx(struct mt
                mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
  }
  
@@ -94,7 +94,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
  static void mtk_hw_reset(struct mtk_eth *eth)
  {
        u32 val;
-@@ -4539,6 +4592,8 @@ static void mtk_pending_work(struct work
+@@ -4548,6 +4601,8 @@ static void mtk_pending_work(struct work
        rtnl_lock();
        set_bit(MTK_RESETTING, &eth->state);
  
index 99bf5c5390f58a00df123c40a1c7bc0c55695624..848f89c66cee7922b8ac8374f55b28866689afde 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.12 = .76
-LINUX_KERNEL_HASH-6.12.76 = bbb43e834c46e6bd49a5c28f22e679a937443404e1f653204d4b24929f3ad896
+LINUX_VERSION-6.12 = .77
+LINUX_KERNEL_HASH-6.12.77 = 358836ebe5caef41e7ae9492e7fbcdf5be6e53ee43c99752aebda81e1b2cff67
index c8693afbba1a4ac436ba3399c20432a68c070934..7e99fae6b80c471e4264fb57d67f4d847896a88a 100644 (file)
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__rcuref       = RCUREF_INIT(1),
-@@ -1085,6 +1099,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1086,6 +1100,7 @@ static const int fib6_prop[RTN_MAX + 1]
        [RTN_BLACKHOLE] = -EINVAL,
        [RTN_UNREACHABLE] = -EHOSTUNREACH,
        [RTN_PROHIBIT]  = -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        [RTN_THROW]     = -EAGAIN,
        [RTN_NAT]       = -EINVAL,
        [RTN_XRESOLVE]  = -EINVAL,
-@@ -1120,6 +1135,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1121,6 +1136,10 @@ static void ip6_rt_init_dst_reject(struc
                rt->dst.output = ip6_pkt_prohibit_out;
                rt->dst.input = ip6_pkt_prohibit;
                break;
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        case RTN_THROW:
        case RTN_UNREACHABLE:
        default:
-@@ -4610,6 +4629,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4609,6 +4628,17 @@ static int ip6_pkt_prohibit_out(struct n
        return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  /*
   *    Allocate a dst for local (unicast / anycast) address.
   */
-@@ -5101,7 +5131,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -5100,7 +5130,8 @@ static int rtm_to_fib6_config(struct sk_
        if (rtm->rtm_type == RTN_UNREACHABLE ||
            rtm->rtm_type == RTN_BLACKHOLE ||
            rtm->rtm_type == RTN_PROHIBIT ||
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -6372,6 +6403,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6371,6 +6402,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
-@@ -6383,6 +6416,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6382,6 +6415,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
        }
-@@ -6578,6 +6612,8 @@ static int __net_init ip6_route_net_init
+@@ -6577,6 +6611,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);
-@@ -6588,11 +6624,21 @@ static int __net_init ip6_route_net_init
+@@ -6587,11 +6623,21 @@ static int __net_init ip6_route_net_init
                         ip6_template_metrics, true);
        INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_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);
-@@ -6619,6 +6665,8 @@ out:
+@@ -6618,6 +6664,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:
-@@ -6638,6 +6686,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6637,6 +6685,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);
-@@ -6721,6 +6770,9 @@ void __init ip6_route_init_special_entri
+@@ -6720,6 +6769,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);
index d476465132f6f30e2eca72fa27afcf4c81ed5dc6..2fdb59d1d84426aa292fd5cac5bfeeec8d8f2a71 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5148,6 +5148,8 @@ static int mtk_probe(struct platform_dev
+@@ -5157,6 +5157,8 @@ static int mtk_probe(struct platform_dev
                dev_err(eth->dev, "failed to allocated dummy device\n");
                goto err_unreg_netdev;
        }
index ef46691878033b24f8249f90dd9c3039560ae254..6a51dbbfb482c746629a46f254e9b170ee59bead 100644 (file)
@@ -294,7 +294,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                                  eth->scratch_ring, eth->phy_scratch_ring);
                eth->scratch_ring = NULL;
                eth->phy_scratch_ring = 0;
-@@ -5236,6 +5239,9 @@ static void mtk_remove(struct platform_d
+@@ -5245,6 +5248,9 @@ static void mtk_remove(struct platform_d
        mtk_mdio_cleanup(eth);
  }
  
@@ -304,7 +304,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static const struct mtk_soc_data mt2701_data = {
        .reg_map = &mtk_reg_map,
        .caps = MT7623_CAPS | MTK_HWLRO,
-@@ -5244,14 +5250,14 @@ static const struct mtk_soc_data mt2701_
+@@ -5253,14 +5259,14 @@ static const struct mtk_soc_data mt2701_
        .required_pctl = true,
        .version = 1,
        .tx = {
@@ -321,7 +321,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
                .dma_size = MTK_DMA_SIZE(2K),
-@@ -5272,14 +5278,14 @@ static const struct mtk_soc_data mt7621_
+@@ -5281,14 +5287,14 @@ static const struct mtk_soc_data mt7621_
        .hash_offset = 2,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
        .tx = {
@@ -338,7 +338,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
                .dma_size = MTK_DMA_SIZE(2K),
-@@ -5302,14 +5308,14 @@ static const struct mtk_soc_data mt7622_
+@@ -5311,14 +5317,14 @@ static const struct mtk_soc_data mt7622_
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
        .tx = {
@@ -355,7 +355,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
                .dma_size = MTK_DMA_SIZE(2K),
-@@ -5331,14 +5337,14 @@ static const struct mtk_soc_data mt7623_
+@@ -5340,14 +5346,14 @@ static const struct mtk_soc_data mt7623_
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
        .disable_pll_modes = true,
        .tx = {
@@ -372,7 +372,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
                .dma_size = MTK_DMA_SIZE(2K),
-@@ -5357,14 +5363,14 @@ static const struct mtk_soc_data mt7629_
+@@ -5366,14 +5372,14 @@ static const struct mtk_soc_data mt7629_
        .has_accounting = true,
        .version = 1,
        .tx = {
@@ -389,7 +389,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
                .dma_size = MTK_DMA_SIZE(2K),
-@@ -5387,14 +5393,14 @@ static const struct mtk_soc_data mt7981_
+@@ -5396,14 +5402,14 @@ static const struct mtk_soc_data mt7981_
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
        .tx = {
@@ -406,7 +406,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
-@@ -5417,14 +5423,14 @@ static const struct mtk_soc_data mt7986_
+@@ -5426,14 +5432,14 @@ static const struct mtk_soc_data mt7986_
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
        .tx = {
@@ -423,7 +423,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
-@@ -5447,14 +5453,14 @@ static const struct mtk_soc_data mt7988_
+@@ -5456,14 +5462,14 @@ static const struct mtk_soc_data mt7988_
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V3_SIZE,
        .tx = {
@@ -440,7 +440,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .irq_done_mask = MTK_RX_DONE_INT_V2,
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
-@@ -5471,13 +5477,13 @@ static const struct mtk_soc_data rt5350_
+@@ -5480,13 +5486,13 @@ static const struct mtk_soc_data rt5350_
        .required_pctl = false,
        .version = 1,
        .tx = {
index 93ceb9819ac138c60ef00d812f152719453e5f68..d76797af92ef64d5c45cf0ce33e97f238823a443 100644 (file)
@@ -497,7 +497,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        return 0;
  }
  
-@@ -4828,6 +4979,7 @@ static const struct net_device_ops mtk_n
+@@ -4837,6 +4988,7 @@ static const struct net_device_ops mtk_n
  static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
  {
        const __be32 *_id = of_get_property(np, "reg", NULL);
@@ -505,7 +505,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        phy_interface_t phy_mode;
        struct phylink *phylink;
        struct mtk_mac *mac;
-@@ -4866,16 +5018,44 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4875,16 +5027,44 @@ static int mtk_add_mac(struct mtk_eth *e
        mac->id = id;
        mac->hw = eth;
        mac->of_node = np;
@@ -558,7 +558,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        }
  
        memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip));
-@@ -4958,8 +5138,21 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4967,8 +5147,21 @@ static int mtk_add_mac(struct mtk_eth *e
                phy_interface_zero(mac->phylink_config.supported_interfaces);
                __set_bit(PHY_INTERFACE_MODE_INTERNAL,
                          mac->phylink_config.supported_interfaces);
@@ -580,7 +580,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        phylink = phylink_create(&mac->phylink_config,
                                 of_fwnode_handle(mac->of_node),
                                 phy_mode, &mtk_phylink_ops);
-@@ -5010,6 +5203,26 @@ free_netdev:
+@@ -5019,6 +5212,26 @@ free_netdev:
        return err;
  }
  
@@ -607,7 +607,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev)
  {
        struct net_device *dev, *tmp;
-@@ -5156,7 +5369,8 @@ static int mtk_probe(struct platform_dev
+@@ -5165,7 +5378,8 @@ static int mtk_probe(struct platform_dev
                        regmap_write(cci, 0, 3);
        }
  
@@ -617,7 +617,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                err = mtk_sgmii_init(eth);
  
                if (err)
-@@ -5267,6 +5481,24 @@ static int mtk_probe(struct platform_dev
+@@ -5276,6 +5490,24 @@ static int mtk_probe(struct platform_dev
                }
        }
  
@@ -642,7 +642,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
                err = devm_request_irq(eth->dev, eth->irq[0],
                                       mtk_handle_irq, 0,
-@@ -5377,6 +5609,11 @@ static void mtk_remove(struct platform_d
+@@ -5386,6 +5618,11 @@ static void mtk_remove(struct platform_d
                mtk_stop(eth->netdev[i]);
                mac = netdev_priv(eth->netdev[i]);
                phylink_disconnect_phy(mac->phylink);
index 1ba5433466704f53b9f8a17a7b578a0a8bda9bb9..95abd9459bc27dbeae80c85364ca34dc29612c30 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5647,7 +5647,7 @@ static const struct mtk_soc_data mt2701_
+@@ -5656,7 +5656,7 @@ static const struct mtk_soc_data mt2701_
                DESC_SIZE(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5675,7 +5675,7 @@ static const struct mtk_soc_data mt7621_
+@@ -5684,7 +5684,7 @@ static const struct mtk_soc_data mt7621_
                DESC_SIZE(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5705,7 +5705,7 @@ static const struct mtk_soc_data mt7622_
+@@ -5714,7 +5714,7 @@ static const struct mtk_soc_data mt7622_
                DESC_SIZE(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5734,7 +5734,7 @@ static const struct mtk_soc_data mt7623_
+@@ -5743,7 +5743,7 @@ static const struct mtk_soc_data mt7623_
                DESC_SIZE(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5760,7 +5760,7 @@ static const struct mtk_soc_data mt7629_
+@@ -5769,7 +5769,7 @@ static const struct mtk_soc_data mt7629_
                DESC_SIZE(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5792,7 +5792,7 @@ static const struct mtk_soc_data mt7981_
+@@ -5801,7 +5801,7 @@ static const struct mtk_soc_data mt7981_
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        },
  };
  
-@@ -5822,7 +5822,7 @@ static const struct mtk_soc_data mt7986_
+@@ -5831,7 +5831,7 @@ static const struct mtk_soc_data mt7986_
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        },
  };
  
-@@ -5875,7 +5875,7 @@ static const struct mtk_soc_data rt5350_
+@@ -5884,7 +5884,7 @@ static const struct mtk_soc_data rt5350_
                .dma_l4_valid = RX_DMA_L4_VALID_PDMA,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
index 10712eb4fa994674ff3d5fd43ce4af8088bcd06d..53216caeaa032c73e194dd78ad95f48aa5e291b9 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4747,6 +4747,7 @@ static int mtk_get_sset_count(struct net
+@@ -4756,6 +4756,7 @@ static int mtk_get_sset_count(struct net
  
  static void mtk_ethtool_pp_stats(struct mtk_eth *eth, u64 *data)
  {
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        struct page_pool_stats stats = {};
        int i;
  
-@@ -4759,6 +4760,7 @@ static void mtk_ethtool_pp_stats(struct
+@@ -4768,6 +4769,7 @@ static void mtk_ethtool_pp_stats(struct
                page_pool_get_stats(ring->page_pool, &stats);
        }
        page_pool_ethtool_stats_get(data, &stats);
index ba1f332df0ae956604d56a98fef2664fbd51d2ea..4b497d9fbf8f4649ffb74181e521bbedf8af355d 100644 (file)
@@ -63,7 +63,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /**
   *    ata_build_rw_tf - Build ATA taskfile for given read/write request
   *    @qc: Metadata associated with the taskfile to build
-@@ -4818,6 +4829,9 @@ void __ata_qc_complete(struct ata_queued
+@@ -4807,6 +4818,9 @@ void __ata_qc_complete(struct ata_queued
                link->active_tag = ATA_TAG_POISON;
                ap->nr_active_links--;
        }
@@ -73,7 +73,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
        /* clear exclusive status */
        if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL &&
-@@ -5546,6 +5560,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5536,6 +5550,9 @@ struct ata_port *ata_port_alloc(struct a
        ap->stats.unhandled_irq = 1;
        ap->stats.idle_irq = 1;
  #endif
@@ -83,7 +83,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        ata_sff_port_init(ap);
  
        ata_force_pflags(ap);
-@@ -5562,6 +5579,12 @@ void ata_port_free(struct ata_port *ap)
+@@ -5552,6 +5569,12 @@ void ata_port_free(struct ata_port *ap)
        kfree(ap->pmp_link);
        kfree(ap->slave_link);
        ida_free(&ata_ida, ap->print_id);
@@ -96,7 +96,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        kfree(ap);
  }
  EXPORT_SYMBOL_GPL(ata_port_free);
-@@ -5966,7 +5989,23 @@ int ata_host_register(struct ata_host *h
+@@ -5956,7 +5979,23 @@ int ata_host_register(struct ata_host *h
                WARN_ON(1);
                return -EINVAL;
        }
@@ -132,7 +132,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  /*
   * Define if arch has non-standard setup.  This is a _PCI_ standard
-@@ -935,6 +938,10 @@ struct ata_port {
+@@ -937,6 +940,10 @@ struct ata_port {
  #ifdef CONFIG_ATA_ACPI
        struct ata_acpi_gtm     __acpi_init_gtm; /* use ata_acpi_init_gtm() */
  #endif
index e4a46f03238df2edbd0031bcebb6d9792e6e4d77..d27425592c451e54741ae2312cb403e0504cb88a 100644 (file)
@@ -126,7 +126,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
                        if (mtk_is_netsys_v1(eth))
                                val |= MTK_QTX_SCH_LEAKY_BUCKET_EN;
                        mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs);
-@@ -5883,6 +5919,36 @@ static const struct mtk_soc_data mt7986_
+@@ -5892,6 +5928,36 @@ static const struct mtk_soc_data mt7986_
        },
  };
  
@@ -163,7 +163,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
  static const struct mtk_soc_data mt7988_data = {
        .reg_map = &mt7988_reg_map,
        .ana_rgc3 = 0x128,
-@@ -5944,6 +6010,7 @@ const struct of_device_id of_mtk_match[]
+@@ -5953,6 +6019,7 @@ const struct of_device_id of_mtk_match[]
        { .compatible = "mediatek,mt7629-eth", .data = &mt7629_data },
        { .compatible = "mediatek,mt7981-eth", .data = &mt7981_data },
        { .compatible = "mediatek,mt7986-eth", .data = &mt7986_data },
index 3510ee529e4b6147cba9348564b3fd6d58598383..cef30ef64ea6a00a740e516e8661b6f59e8fd5f0 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4452,27 +4452,40 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -4461,27 +4461,40 @@ static int mtk_hw_init(struct mtk_eth *e
                mtk_w32(eth, PSE_DUMMY_WORK_GDM(1) | PSE_DUMMY_WORK_GDM(2) |
                        PSE_DUMMY_WORK_GDM(3) | DUMMY_PAGE_THR, PSE_DUMY_REQ);
  
diff --git a/target/linux/microchipsw/patches-6.12/0098-v7.0-net-sparx5-lan969x-fix-DWRR-cost-max-to-match-hardwa.patch b/target/linux/microchipsw/patches-6.12/0098-v7.0-net-sparx5-lan969x-fix-DWRR-cost-max-to-match-hardwa.patch
deleted file mode 100644 (file)
index 27c4a31..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From 6c28aa8dfdf24f554d4c5d4ff7d723a95360d94a Mon Sep 17 00:00:00 2001
-From: Daniel Machon <daniel.machon@microchip.com>
-Date: Tue, 10 Feb 2026 14:44:01 +0100
-Subject: [PATCH] net: sparx5/lan969x: fix DWRR cost max to match hardware
- register width
-
-DWRR (Deficit Weighted Round Robin) scheduling distributes bandwidth
-across traffic classes based on per-queue cost values, where lower cost
-means higher bandwidth share.
-
-The SPX5_DWRR_COST_MAX constant is 63 (6 bits) but the hardware
-register field HSCH_DWRR_ENTRY_DWRR_COST is GENMASK(24, 20), only
-5 bits wide (max 31). This causes sparx5_weight_to_hw_cost() to
-compute cost values that silently overflow via FIELD_PREP, resulting
-in incorrect scheduling weights.
-
-Set SPX5_DWRR_COST_MAX to 31 to match the hardware register width.
-
-Fixes: 211225428d65 ("net: microchip: sparx5: add support for offloading ets qdisc")
-Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
-Reviewed-by: Simon Horman <horms@kernel.org>
-Link: https://patch.msgid.link/20260210-sparx5-fix-dwrr-cost-max-v1-1-58fbdbc25652@microchip.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/microchip/sparx5/sparx5_qos.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
-+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
-@@ -35,7 +35,7 @@
- #define SPX5_SE_BURST_UNIT 4096
- /* Dwrr */
--#define SPX5_DWRR_COST_MAX 63
-+#define SPX5_DWRR_COST_MAX 31
- struct sparx5_shaper {
-       u32 mode;
index 61491c57a2e0da8006bebff8a40fcc4d45a7b6b7..b114c906d4eec56728c7f97bafc819e87360b3e0 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
 
 --- a/drivers/irqchip/irq-sifive-plic.c
 +++ b/drivers/irqchip/irq-sifive-plic.c
-@@ -204,6 +204,9 @@ static struct irq_chip plic_edge_chip =
+@@ -209,6 +209,9 @@ static struct irq_chip plic_edge_chip =
  #endif
        .irq_set_type   = plic_irq_set_type,
        .flags          = IRQCHIP_SKIP_SET_WAKE |
@@ -27,7 +27,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
                          IRQCHIP_AFFINITY_PRE_STARTUP,
  };
  
-@@ -219,6 +222,9 @@ static struct irq_chip plic_chip = {
+@@ -224,6 +227,9 @@ static struct irq_chip plic_chip = {
  #endif
        .irq_set_type   = plic_irq_set_type,
        .flags          = IRQCHIP_SKIP_SET_WAKE |