[openwrt/openwrt] ath79: refresh 6.6 kernel patches

LEDE Commits lede-commits at lists.infradead.org
Thu May 9 14:58:49 PDT 2024


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/872fe7e9f9fbf857963728bd267ef982143cddde

commit 872fe7e9f9fbf857963728bd267ef982143cddde
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Sat Mar 16 08:39:16 2024 +0800

    ath79: refresh 6.6 kernel patches
    
    Some APIs have been changed. Porting them to the new kernel 6.6
    version to fix the compile error.
    
    Removed upstreamed:
            010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch[1]
    
    Manually rebased:
            700-phy-add-ath79-usb-phys.patch
            721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch. ref:[2]
    
    [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=b11ce7e48121a02ceedec9f4dfcab4f2bee8f35f
    [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=002dd3de097c778a74ae9e47e598bea6ad055af0
    
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
---
 ...-gpio-ath79-Convert-to-immutable-irq_chip.patch | 60 -----------------
 .../340-register_gpio_driver_earlier.patch         |  2 +-
 .../370-MIPS-ath79-sanitize-symbols.patch          | 20 +-----
 ...mtd-nor-support-mtd-name-from-device-tree.patch |  4 +-
 .../420-drivers-link-spi-before-mtd.patch          |  2 +-
 .../patches-6.6/430-mtd-ar934x-nand-driver.patch   |  4 +-
 .../patches-6.6/700-phy-add-ath79-usb-phys.patch   | 14 ++--
 .../720-mdio_bitbang_ignore_ta_value.patch         |  8 +--
 ...tbang-prevent-rescheduling-during-command.patch | 75 ++++++++++++++++------
 ...00-leds-add-reset-controller-based-driver.patch |  4 +-
 .../patches-6.6/900-unaligned_access_hacks.patch   | 50 +++++++--------
 .../ath79/patches-6.6/910-mikrotik-rb4xx.patch     | 12 ++--
 .../ath79/patches-6.6/911-mikrotik-rb91x.patch     | 16 ++---
 13 files changed, 112 insertions(+), 159 deletions(-)

diff --git a/target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch b/target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch
deleted file mode 100644
index 942380fc7b..0000000000
--- a/target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b11ce7e48121a02ceedec9f4dfcab4f2bee8f35f Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij at linaro.org>
-Date: Thu, 9 Mar 2023 08:45:54 +0100
-Subject: gpio: ath79: Convert to immutable irq_chip
-
-Convert the driver to immutable irq-chip with a bit of
-intuition.
-
-Cc: Marc Zyngier <maz at kernel.org>
-Acked-by: Marc Zyngier <maz at kernel.org>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski at linaro.org>
----
- drivers/gpio/gpio-ath79.c | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
---- a/drivers/gpio/gpio-ath79.c
-+++ b/drivers/gpio/gpio-ath79.c
-@@ -71,6 +71,7 @@ static void ath79_gpio_irq_unmask(struct
- 	u32 mask = BIT(irqd_to_hwirq(data));
- 	unsigned long flags;
- 
-+	gpiochip_enable_irq(&ctrl->gc, irqd_to_hwirq(data));
- 	raw_spin_lock_irqsave(&ctrl->lock, flags);
- 	ath79_gpio_update_bits(ctrl, AR71XX_GPIO_REG_INT_MASK, mask, mask);
- 	raw_spin_unlock_irqrestore(&ctrl->lock, flags);
-@@ -85,6 +86,7 @@ static void ath79_gpio_irq_mask(struct i
- 	raw_spin_lock_irqsave(&ctrl->lock, flags);
- 	ath79_gpio_update_bits(ctrl, AR71XX_GPIO_REG_INT_MASK, mask, 0);
- 	raw_spin_unlock_irqrestore(&ctrl->lock, flags);
-+	gpiochip_disable_irq(&ctrl->gc, irqd_to_hwirq(data));
- }
- 
- static void ath79_gpio_irq_enable(struct irq_data *data)
-@@ -169,13 +171,15 @@ static int ath79_gpio_irq_set_type(struc
- 	return 0;
- }
- 
--static struct irq_chip ath79_gpio_irqchip = {
-+static const struct irq_chip ath79_gpio_irqchip = {
- 	.name = "gpio-ath79",
- 	.irq_enable = ath79_gpio_irq_enable,
- 	.irq_disable = ath79_gpio_irq_disable,
- 	.irq_mask = ath79_gpio_irq_mask,
- 	.irq_unmask = ath79_gpio_irq_unmask,
- 	.irq_set_type = ath79_gpio_irq_set_type,
-+	.flags = IRQCHIP_IMMUTABLE,
-+	GPIOCHIP_IRQ_RESOURCE_HELPERS,
- };
- 
- static void ath79_gpio_irq_handler(struct irq_desc *desc)
-@@ -274,7 +278,7 @@ static int ath79_gpio_probe(struct platf
- 	/* Optional interrupt setup */
- 	if (!np || of_property_read_bool(np, "interrupt-controller")) {
- 		girq = &ctrl->gc.irq;
--		girq->chip = &ath79_gpio_irqchip;
-+		gpio_irq_chip_set_chip(girq, &ath79_gpio_irqchip);
- 		girq->parent_handler = ath79_gpio_irq_handler;
- 		girq->num_parents = 1;
- 		girq->parents = devm_kcalloc(dev, 1, sizeof(*girq->parents),
diff --git a/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch b/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch
index 48ce7e1d71..32c90ef2fc 100644
--- a/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch
+++ b/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch
@@ -11,7 +11,7 @@ Submitted-by: John Crispin <john at phrozen.org>
 
 --- a/drivers/gpio/gpio-ath79.c
 +++ b/drivers/gpio/gpio-ath79.c
-@@ -301,7 +301,11 @@ static struct platform_driver ath79_gpio
+@@ -302,7 +302,11 @@ static struct platform_driver ath79_gpio
  	.probe = ath79_gpio_probe,
  };
  
diff --git a/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch b/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch
index eac17c2b50..e6aeef5115 100644
--- a/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch
+++ b/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch
@@ -15,7 +15,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -257,6 +257,8 @@ config ATH79
+@@ -255,6 +255,8 @@ config ATH79
  	select SYS_SUPPORTS_BIG_ENDIAN
  	select SYS_SUPPORTS_MIPS16
  	select SYS_SUPPORTS_ZBOOT_UART_PROM
@@ -26,7 +26,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
  	help
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -1,48 +1,14 @@
+@@ -1,32 +1,14 @@
  # SPDX-License-Identifier: GPL-2.0
  if ATH79
  
@@ -59,22 +59,6 @@ Signed-off-by: John Crispin <john at phrozen.org>
  	def_bool n
  
  config PCI_AR724X
--	def_bool n
--
--config ATH79_DEV_GPIO_BUTTONS
--	def_bool n
--
--config ATH79_DEV_LEDS_GPIO
--	def_bool n
--
--config ATH79_DEV_SPI
--	def_bool n
--
--config ATH79_DEV_USB
--	def_bool n
--
--config ATH79_DEV_WMAC
--	depends on (SOC_AR913X || SOC_AR933X || SOC_AR934X || SOC_QCA955X)
 +	bool "PCI support for AR724x type SoCs"
 +	depends on PCI
  	def_bool n
diff --git a/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch
index ebb240d4ae..62d402625d 100644
--- a/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch
+++ b/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch
@@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma at imgtec.com>
 
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -2964,12 +2964,19 @@ static void spi_nor_set_mtd_info(struct
+@@ -3420,12 +3420,19 @@ static void spi_nor_set_mtd_info(struct
  {
  	struct mtd_info *mtd = &nor->mtd;
  	struct device *dev = nor->dev;
@@ -33,7 +33,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma at imgtec.com>
  	mtd->flags = MTD_CAP_NORFLASH;
 --- a/drivers/mtd/mtdcore.c
 +++ b/drivers/mtd/mtdcore.c
-@@ -863,6 +863,17 @@ out_error:
+@@ -870,6 +870,17 @@ out_error:
   */
  static void mtd_set_dev_defaults(struct mtd_info *mtd)
  {
diff --git a/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch b/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch
index 0cd96909eb..2e9d3c3e94 100644
--- a/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch
+++ b/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch
@@ -8,7 +8,7 @@ SVN-Revision: 22863
 
 --- a/drivers/Makefile
 +++ b/drivers/Makefile
-@@ -80,8 +80,8 @@ obj-y				+= scsi/
+@@ -87,8 +87,8 @@ obj-y				+= scsi/
  obj-y				+= nvme/
  obj-$(CONFIG_ATA)		+= ata/
  obj-$(CONFIG_TARGET_CORE)	+= target/
diff --git a/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch b/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch
index 184c39d469..603750cbe9 100644
--- a/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch
+++ b/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch
@@ -9,7 +9,7 @@ SVN-Revision: 33385
 
 --- a/drivers/mtd/nand/raw/Kconfig
 +++ b/drivers/mtd/nand/raw/Kconfig
-@@ -557,4 +557,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
+@@ -543,4 +543,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
  	  load time (assuming you build diskonchip as a module) with the module
  	  parameter "inftl_bbt_write=1".
  
@@ -24,7 +24,7 @@ SVN-Revision: 33385
  endif # MTD_RAW_NAND
 --- a/drivers/mtd/nand/raw/Makefile
 +++ b/drivers/mtd/nand/raw/Makefile
-@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM)	+= inte
+@@ -57,6 +57,7 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM)	+= inte
  obj-$(CONFIG_MTD_NAND_ROCKCHIP)		+= rockchip-nand-controller.o
  obj-$(CONFIG_MTD_NAND_PL35X)		+= pl35x-nand-controller.o
  obj-$(CONFIG_MTD_NAND_RENESAS)		+= renesas-nand-controller.o
diff --git a/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch b/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch
index 21b655a109..0a9de68a39 100644
--- a/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch
+++ b/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch
@@ -15,7 +15,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
 
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
-@@ -24,6 +24,22 @@ config GENERIC_PHY_MIPI_DPHY
+@@ -25,6 +25,22 @@ config GENERIC_PHY_MIPI_DPHY
  	  Provides a number of helpers a core functions for MIPI D-PHY
  	  drivers to us.
  
@@ -154,15 +154,15 @@ Signed-off-by: John Crispin <john at phrozen.org>
 +		return PTR_ERR(priv->phy);
 +	}
 +
-+	priv->gpio = of_get_gpio(pdev->dev.of_node, 0);
-+	if (priv->gpio >= 0) {
++	priv->gpio = of_get_named_gpio(pdev->dev.of_node, "gpios", 0);
++	if (gpio_is_valid(priv->gpio)) {
 +		int ret = devm_gpio_request(&pdev->dev, priv->gpio, dev_name(&pdev->dev));
 +
 +		if (ret) {
 +			dev_err(&pdev->dev, "failed to request gpio\n");
 +			return ret;
 +		}
-+		gpio_export_with_name(priv->gpio, 0, dev_name(&pdev->dev));
++		gpio_export_with_name(gpio_to_desc(priv->gpio), 0, dev_name(&pdev->dev));
 +		gpio_set_value(priv->gpio, 1);
 +	}
 +
@@ -294,15 +294,15 @@ Signed-off-by: John Crispin <john at phrozen.org>
 +		return PTR_ERR(priv->phy);
 +	}
 +
-+	priv->gpio = of_get_gpio(pdev->dev.of_node, 0);
-+	if (priv->gpio >= 0) {
++	priv->gpio = of_get_named_gpio(pdev->dev.of_node, "gpios", 0);
++	if (gpio_is_valid(priv->gpio)) {
 +		int ret = devm_gpio_request(&pdev->dev, priv->gpio, dev_name(&pdev->dev));
 +
 +		if (ret) {
 +			dev_err(&pdev->dev, "failed to request gpio\n");
 +			return ret;
 +		}
-+		gpio_export_with_name(priv->gpio, 0, dev_name(&pdev->dev));
++		gpio_export_with_name(gpio_to_desc(priv->gpio), 0, dev_name(&pdev->dev));
 +		gpio_set_value(priv->gpio, 1);
 +	}
 +
diff --git a/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch b/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch
index 5363bb37b0..ce6b16c34e 100644
--- a/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch
+++ b/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch
@@ -12,17 +12,13 @@ SVN-Revision: 28422
 
 --- a/drivers/net/mdio/mdio-bitbang.c
 +++ b/drivers/net/mdio/mdio-bitbang.c
-@@ -152,7 +152,7 @@ static int mdiobb_cmd_addr(struct mdiobb
- int mdiobb_read(struct mii_bus *bus, int phy, int reg)
+@@ -148,23 +148,11 @@ static void mdiobb_cmd_addr(struct mdiob
+ static int mdiobb_read_common(struct mii_bus *bus, int phy)
  {
  	struct mdiobb_ctrl *ctrl = bus->priv;
 -	int ret, i;
 +	int ret;
  
- 	if (reg & MII_ADDR_C45) {
- 		reg = mdiobb_cmd_addr(ctrl, phy, reg);
-@@ -162,19 +162,7 @@ int mdiobb_read(struct mii_bus *bus, int
- 
  	ctrl->ops->set_mdio_dir(ctrl, 0);
  
 -	/* check the turnaround bit: the PHY should be driving it to zero, if this
diff --git a/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch b/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch
index e37d9a1f63..26c40e132b 100644
--- a/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch
+++ b/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch
@@ -22,40 +22,73 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  #include <linux/delay.h>
  #include <linux/mdio-bitbang.h>
  #include <linux/module.h>
-@@ -153,7 +154,9 @@ int mdiobb_read(struct mii_bus *bus, int
+@@ -161,22 +162,32 @@ static int mdiobb_read_common(struct mii
+ 
+ int mdiobb_read_c22(struct mii_bus *bus, int phy, int reg)
  {
++	int ret;
++	unsigned long flags;
  	struct mdiobb_ctrl *ctrl = bus->priv;
- 	int ret;
+ 
++	local_irq_save(flags);
+ 	mdiobb_cmd(ctrl, ctrl->op_c22_read, phy, reg);
+ 
+-	return mdiobb_read_common(bus, phy);
++	ret = mdiobb_read_common(bus, phy);
++	local_irq_restore(flags);
++	return ret;
+ }
+ EXPORT_SYMBOL(mdiobb_read_c22);
+ 
+ int mdiobb_read_c45(struct mii_bus *bus, int phy, int devad, int reg)
+ {
++	int ret;
 +	unsigned long flags;
+ 	struct mdiobb_ctrl *ctrl = bus->priv;
  
 +	local_irq_save(flags);
- 	if (reg & MII_ADDR_C45) {
- 		reg = mdiobb_cmd_addr(ctrl, phy, reg);
- 		mdiobb_cmd(ctrl, MDIO_C45_READ, phy, reg);
-@@ -166,6 +169,7 @@ int mdiobb_read(struct mii_bus *bus, int
+ 	mdiobb_cmd_addr(ctrl, phy, devad, reg);
+ 	mdiobb_cmd(ctrl, MDIO_C45_READ, phy, devad);
  
- 	ret = mdiobb_get_num(ctrl, 16);
- 	mdiobb_get_bit(ctrl);
+-	return mdiobb_read_common(bus, phy);
++	ret = mdiobb_read_common(bus, phy);
 +	local_irq_restore(flags);
- 	return ret;
++	return ret;
  }
- EXPORT_SYMBOL(mdiobb_read);
-@@ -173,7 +177,9 @@ EXPORT_SYMBOL(mdiobb_read);
- int mdiobb_write(struct mii_bus *bus, int phy, int reg, u16 val)
+ EXPORT_SYMBOL(mdiobb_read_c45);
+ 
+@@ -197,22 +208,32 @@ static int mdiobb_write_common(struct mi
+ 
+ int mdiobb_write_c22(struct mii_bus *bus, int phy, int reg, u16 val)
  {
++	int ret;
++	unsigned long flags;
  	struct mdiobb_ctrl *ctrl = bus->priv;
+ 
++	local_irq_save(flags);
+ 	mdiobb_cmd(ctrl, ctrl->op_c22_write, phy, reg);
+ 
+-	return mdiobb_write_common(bus, val);
++	ret = mdiobb_write_common(bus, val);
++	local_irq_restore(flags);
++	return ret;
+ }
+ EXPORT_SYMBOL(mdiobb_write_c22);
+ 
+ int mdiobb_write_c45(struct mii_bus *bus, int phy, int devad, int reg, u16 val)
+ {
++	int ret;
 +	unsigned long flags;
+ 	struct mdiobb_ctrl *ctrl = bus->priv;
  
 +	local_irq_save(flags);
- 	if (reg & MII_ADDR_C45) {
- 		reg = mdiobb_cmd_addr(ctrl, phy, reg);
- 		mdiobb_cmd(ctrl, MDIO_C45_WRITE, phy, reg);
-@@ -188,6 +194,8 @@ int mdiobb_write(struct mii_bus *bus, in
+ 	mdiobb_cmd_addr(ctrl, phy, devad, reg);
+ 	mdiobb_cmd(ctrl, MDIO_C45_WRITE, phy, devad);
  
- 	ctrl->ops->set_mdio_dir(ctrl, 0);
- 	mdiobb_get_bit(ctrl);
+-	return mdiobb_write_common(bus, val);
++	ret = mdiobb_write_common(bus, val);
 +	local_irq_restore(flags);
-+
- 	return 0;
++	return ret;
  }
- EXPORT_SYMBOL(mdiobb_write);
+ EXPORT_SYMBOL(mdiobb_write_c45);
+ 
diff --git a/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch b/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch
index 0002b9b95b..fa958e767b 100644
--- a/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch
+++ b/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch
@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
 
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -874,6 +874,17 @@ source "drivers/leds/flash/Kconfig"
+@@ -901,6 +901,17 @@ source "drivers/leds/flash/Kconfig"
  comment "RGB LED drivers"
  source "drivers/leds/rgb/Kconfig"
  
@@ -176,7 +176,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
 +MODULE_ALIAS("platform:leds-reset");
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
-@@ -86,6 +86,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA)		+= leds
+@@ -88,6 +88,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA)		+= leds
  obj-$(CONFIG_LEDS_WM831X_STATUS)	+= leds-wm831x-status.o
  obj-$(CONFIG_LEDS_WM8350)		+= leds-wm8350.o
  obj-$(CONFIG_LEDS_WRAP)			+= leds-wrap.o
diff --git a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
index 6c97bc307c..0190da85de 100644
--- a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
@@ -216,7 +216,7 @@ SVN-Revision: 35130
  #define UDP_CORK	1	/* Never send partially complete segments */
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
-@@ -308,8 +308,8 @@ nf_ct_get_tuple(const struct sk_buff *sk
+@@ -298,8 +298,8 @@ nf_ct_get_tuple(const struct sk_buff *sk
  
  	switch (l3num) {
  	case NFPROTO_IPV4:
@@ -259,7 +259,7 @@ SVN-Revision: 35130
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
-@@ -901,10 +902,10 @@ static void tcp_v6_send_response(const s
+@@ -897,10 +898,10 @@ static void tcp_v6_send_response(const s
  	topt = (__be32 *)(t1 + 1);
  
  	if (tsecr) {
@@ -286,7 +286,7 @@ SVN-Revision: 35130
   */
 --- a/net/ipv6/datagram.c
 +++ b/net/ipv6/datagram.c
-@@ -497,7 +497,7 @@ int ipv6_recv_error(struct sock *sk, str
+@@ -499,7 +499,7 @@ int ipv6_recv_error(struct sock *sk, str
  				ipv6_iface_scope_id(&sin->sin6_addr,
  						    IP6CB(skb)->iif);
  		} else {
@@ -295,7 +295,7 @@ SVN-Revision: 35130
  					       &sin->sin6_addr);
  			sin->sin6_scope_id = 0;
  		}
-@@ -851,12 +851,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -853,12 +853,12 @@ int ip6_datagram_send_ctl(struct net *ne
  			}
  
  			if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
@@ -312,7 +312,7 @@ SVN-Revision: 35130
  		case IPV6_2292HOPOPTS:
 --- a/net/ipv6/exthdrs.c
 +++ b/net/ipv6/exthdrs.c
-@@ -1013,7 +1013,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
+@@ -982,7 +982,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
  		goto drop;
  	}
  
@@ -323,7 +323,7 @@ SVN-Revision: 35130
  					 SKB_DROP_REASON_IP_INHDR);
 --- a/include/linux/types.h
 +++ b/include/linux/types.h
-@@ -232,5 +232,11 @@ typedef void (*swap_func_t)(void *a, voi
+@@ -244,5 +244,11 @@ typedef void (*swap_func_t)(void *a, voi
  typedef int (*cmp_r_func_t)(const void *a, const void *b, const void *priv);
  typedef int (*cmp_func_t)(const void *a, const void *b);
  
@@ -337,10 +337,10 @@ SVN-Revision: 35130
  #endif /* _LINUX_TYPES_H */
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
-@@ -1515,8 +1515,8 @@ struct sk_buff *inet_gro_receive(struct
- 	if (unlikely(ip_fast_csum((u8 *)iph, 5)))
+@@ -1506,8 +1506,8 @@ struct sk_buff *inet_gro_receive(struct
  		goto out;
  
+ 	NAPI_GRO_CB(skb)->proto = proto;
 -	id = ntohl(*(__be32 *)&iph->id);
 -	flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF));
 +	id = ntohl(net_hdr_word(&iph->id));
@@ -350,7 +350,7 @@ SVN-Revision: 35130
  	list_for_each_entry(p, head, list) {
 --- a/net/ipv4/tcp_output.c
 +++ b/net/ipv4/tcp_output.c
-@@ -612,48 +612,53 @@ static void tcp_options_write(struct tcp
+@@ -620,48 +620,53 @@ static void tcp_options_write(struct tcp
  	u16 options = opts->options;	/* mungable copy */
  
  	if (unlikely(OPTION_MD5 & options)) {
@@ -427,7 +427,7 @@ SVN-Revision: 35130
  	}
  
  	if (unlikely(opts->num_sack_blocks)) {
-@@ -661,16 +666,17 @@ static void tcp_options_write(struct tcp
+@@ -669,16 +674,17 @@ static void tcp_options_write(struct tcp
  			tp->duplicate_sack : tp->selective_acks;
  		int this_sack;
  
@@ -451,7 +451,7 @@ SVN-Revision: 35130
  		}
  
  		tp->rx_opt.dsack = 0;
-@@ -683,13 +689,14 @@ static void tcp_options_write(struct tcp
+@@ -691,13 +697,14 @@ static void tcp_options_write(struct tcp
  
  		if (foc->exp) {
  			len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
@@ -509,7 +509,7 @@ SVN-Revision: 35130
  #define IGMP_HOST_MEMBERSHIP_REPORT	0x12	/* Ditto */
 --- a/net/core/flow_dissector.c
 +++ b/net/core/flow_dissector.c
-@@ -131,7 +131,7 @@ __be32 __skb_flow_get_ports(const struct
+@@ -132,7 +132,7 @@ __be32 __skb_flow_get_ports(const struct
  		ports = __skb_header_pointer(skb, thoff + poff,
  					     sizeof(_ports), data, hlen, &_ports);
  		if (ports)
@@ -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
-@@ -155,7 +155,7 @@ next_knode:
+@@ -157,7 +157,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;
  			}
-@@ -206,8 +206,8 @@ check_terminal:
+@@ -208,8 +208,8 @@ check_terminal:
  						  &hdata);
  			if (!data)
  				goto out;
@@ -579,7 +579,7 @@ SVN-Revision: 35130
  			goto next_ht;
 --- a/net/ipv6/ip6_offload.c
 +++ b/net/ipv6/ip6_offload.c
-@@ -290,7 +290,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
+@@ -273,7 +273,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
  			continue;
  
  		iph2 = (struct ipv6hdr *)(p->data + off);
@@ -624,7 +624,7 @@ SVN-Revision: 35130
  
  /*
   * Jumbo payload option, as described in RFC 2675 2.
-@@ -615,8 +615,8 @@ static inline void __ipv6_addr_set_half(
+@@ -649,8 +649,8 @@ static inline void __ipv6_addr_set_half(
  	}
  #endif
  #endif
@@ -635,7 +635,7 @@ SVN-Revision: 35130
  }
  
  static inline void ipv6_addr_set(struct in6_addr *addr,
-@@ -675,6 +675,8 @@ static inline bool ipv6_prefix_equal(con
+@@ -709,6 +709,8 @@ static inline bool ipv6_prefix_equal(con
  	const __be32 *a1 = addr1->s6_addr32;
  	const __be32 *a2 = addr2->s6_addr32;
  	unsigned int pdw, pbi;
@@ -644,7 +644,7 @@ SVN-Revision: 35130
  
  	/* check complete u32 in prefix */
  	pdw = prefixlen >> 5;
-@@ -683,7 +685,9 @@ static inline bool ipv6_prefix_equal(con
+@@ -717,7 +719,9 @@ static inline bool ipv6_prefix_equal(con
  
  	/* check incomplete u32 in prefix */
  	pbi = prefixlen & 0x1f;
@@ -655,7 +655,7 @@ SVN-Revision: 35130
  		return false;
  
  	return true;
-@@ -805,13 +809,13 @@ static inline void ipv6_addr_set_v4mappe
+@@ -839,13 +843,13 @@ static inline void ipv6_addr_set_v4mappe
   */
  static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
  {
@@ -671,7 +671,7 @@ SVN-Revision: 35130
  		if (xb)
  			return i * 32 + 31 - __fls(ntohl(xb));
  	}
-@@ -1005,17 +1009,18 @@ static inline u32 ip6_multipath_hash_fie
+@@ -1040,17 +1044,18 @@ static inline u32 ip6_multipath_hash_fie
  static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
  				__be32 flowlabel)
  {
@@ -716,7 +716,7 @@ SVN-Revision: 35130
  #define IP_TOS		1
 --- a/net/ipv6/ip6_fib.c
 +++ b/net/ipv6/ip6_fib.c
-@@ -142,7 +142,7 @@ static __be32 addr_bit_set(const void *t
+@@ -141,7 +141,7 @@ static __be32 addr_bit_set(const void *t
  	 * See include/asm-generic/bitops/le.h.
  	 */
  	return (__force __be32)(1 << ((~fn_bit ^ BITOP_BE32_SWIZZLE) & 0x1f)) &
@@ -751,7 +751,7 @@ SVN-Revision: 35130
  EXPORT_SYMBOL(xfrm_parse_spi);
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -4183,14 +4183,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -4188,14 +4188,16 @@ static bool tcp_parse_aligned_timestamp(
  {
  	const __be32 *ptr = (const __be32 *)(th + 1);
  
@@ -858,7 +858,7 @@ SVN-Revision: 35130
  
 --- a/net/ipv4/tcp_offload.c
 +++ b/net/ipv4/tcp_offload.c
-@@ -62,7 +62,7 @@ static struct sk_buff *__tcpv4_gso_segme
+@@ -63,7 +63,7 @@ static struct sk_buff *__tcpv4_gso_segme
  	th2 = tcp_hdr(seg->next);
  	iph2 = ip_hdr(seg->next);
  
@@ -867,7 +867,7 @@ SVN-Revision: 35130
  	    iph->daddr == iph2->daddr && iph->saddr == iph2->saddr)
  		return segs;
  
-@@ -254,7 +254,7 @@ struct sk_buff *tcp_gro_lookup(struct li
+@@ -255,7 +255,7 @@ struct sk_buff *tcp_gro_lookup(struct li
  			continue;
  
  		th2 = tcp_hdr(p);
@@ -876,7 +876,7 @@ SVN-Revision: 35130
  			NAPI_GRO_CB(p)->same_flow = 0;
  			continue;
  		}
-@@ -320,8 +320,8 @@ struct sk_buff *tcp_gro_receive(struct l
+@@ -321,8 +321,8 @@ struct sk_buff *tcp_gro_receive(struct l
  		  ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH));
  	flush |= (__force int)(th->ack_seq ^ th2->ack_seq);
  	for (i = sizeof(*th); i < thlen; i += 4)
diff --git a/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch b/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch
index 536d7abf6b..980f29eef1 100644
--- a/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch
+++ b/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch
@@ -45,7 +45,7 @@ Submitted-by: Christopher Hill <ch6574 at gmail.com>
 
 --- a/drivers/mfd/Kconfig
 +++ b/drivers/mfd/Kconfig
-@@ -2209,6 +2209,14 @@ config RAVE_SP_CORE
+@@ -2261,6 +2261,14 @@ config RAVE_SP_CORE
  	  Select this to get support for the Supervisory Processor
  	  device found on several devices in RAVE line of hardware.
  
@@ -69,10 +69,10 @@ Submitted-by: Christopher Hill <ch6574 at gmail.com>
 +obj-$(CONFIG_MFD_RB4XX_CPLD)	+= rb4xx-cpld.o
  obj-$(CONFIG_SGI_MFD_IOC3)	+= ioc3.o
  obj-$(CONFIG_MFD_SIMPLE_MFD_I2C)	+= simple-mfd-i2c.o
- obj-$(CONFIG_MFD_INTEL_M10_BMC)   += intel-m10-bmc.o
+ obj-$(CONFIG_MFD_SMPRO)		+= smpro-core.o
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -1594,6 +1594,12 @@ config GPIO_SODAVILLE
+@@ -1696,6 +1696,12 @@ config GPIO_SODAVILLE
  	help
  	  Say Y here to support Intel Sodaville GPIO.
  
@@ -87,7 +87,7 @@ Submitted-by: Christopher Hill <ch6574 at gmail.com>
  menu "SPI GPIO expanders"
 --- a/drivers/gpio/Makefile
 +++ b/drivers/gpio/Makefile
-@@ -123,6 +123,7 @@ obj-$(CONFIG_GPIO_PL061)		+= gpio-pl061.
+@@ -131,6 +131,7 @@ obj-$(CONFIG_GPIO_PL061)		+= gpio-pl061.
  obj-$(CONFIG_GPIO_PMIC_EIC_SPRD)	+= gpio-pmic-eic-sprd.o
  obj-$(CONFIG_GPIO_PXA)			+= gpio-pxa.o
  obj-$(CONFIG_GPIO_RASPBERRYPI_EXP)	+= gpio-raspberrypi-exp.o
@@ -97,7 +97,7 @@ Submitted-by: Christopher Hill <ch6574 at gmail.com>
  obj-$(CONFIG_GPIO_RDA)			+= gpio-rda.o
 --- a/drivers/mtd/nand/raw/Kconfig
 +++ b/drivers/mtd/nand/raw/Kconfig
-@@ -565,4 +565,11 @@ config MTD_NAND_AR934X
+@@ -551,4 +551,11 @@ config MTD_NAND_AR934X
  	  Enables support for NAND controller on Qualcomm Atheros SoCs.
  	  This controller is found on AR934x and QCA955x SoCs.
  
@@ -111,7 +111,7 @@ Submitted-by: Christopher Hill <ch6574 at gmail.com>
  endif # MTD_RAW_NAND
 --- a/drivers/mtd/nand/raw/Makefile
 +++ b/drivers/mtd/nand/raw/Makefile
-@@ -60,6 +60,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP)		+= rock
+@@ -58,6 +58,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP)		+= rock
  obj-$(CONFIG_MTD_NAND_PL35X)		+= pl35x-nand-controller.o
  obj-$(CONFIG_MTD_NAND_RENESAS)		+= renesas-nand-controller.o
  obj-$(CONFIG_MTD_NAND_AR934X)		+= ar934x_nand.o
diff --git a/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch b/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch
index 677428fa65..e610a4ff14 100644
--- a/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch
+++ b/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch
@@ -29,7 +29,7 @@ Tested-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
 
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -368,6 +368,12 @@ config GPIO_IXP4XX
+@@ -371,6 +371,12 @@ config GPIO_IXP4XX
  
  	  If unsure, say N.
  
@@ -42,7 +42,7 @@ Tested-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
  config GPIO_LOGICVC
  	tristate "Xylon LogiCVC GPIO support"
  	depends on MFD_SYSCON && OF
-@@ -544,6 +550,10 @@ config GPIO_ROCKCHIP
+@@ -553,6 +559,10 @@ config GPIO_ROCKCHIP
  	help
  	  Say yes here to support GPIO on Rockchip SoCs.
  
@@ -55,15 +55,15 @@ Tested-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
  	depends on MFD_SYSCON
 --- a/drivers/gpio/Makefile
 +++ b/drivers/gpio/Makefile
-@@ -76,6 +76,7 @@ obj-$(CONFIG_GPIO_IT87)			+= gpio-it87.o
- obj-$(CONFIG_GPIO_IXP4XX)		+= gpio-ixp4xx.o
+@@ -81,6 +81,7 @@ obj-$(CONFIG_GPIO_IXP4XX)		+= gpio-ixp4x
  obj-$(CONFIG_GPIO_JANZ_TTL)		+= gpio-janz-ttl.o
  obj-$(CONFIG_GPIO_KEMPLD)		+= gpio-kempld.o
+ obj-$(CONFIG_GPIO_LATCH)		+= gpio-latch.o
 +obj-$(CONFIG_GPIO_LATCH_MIKROTIK)	+= gpio-latch-mikrotik.o
+ obj-$(CONFIG_GPIO_LJCA) 		+= gpio-ljca.o
  obj-$(CONFIG_GPIO_LOGICVC)		+= gpio-logicvc.o
  obj-$(CONFIG_GPIO_LOONGSON1)		+= gpio-loongson1.o
- obj-$(CONFIG_GPIO_LOONGSON)		+= gpio-loongson.o
-@@ -124,6 +125,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD)	+= gpio
+@@ -132,6 +133,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD)	+= gpio
  obj-$(CONFIG_GPIO_PXA)			+= gpio-pxa.o
  obj-$(CONFIG_GPIO_RASPBERRYPI_EXP)	+= gpio-raspberrypi-exp.o
  obj-$(CONFIG_GPIO_RB4XX)		+= gpio-rb4xx.o
@@ -73,7 +73,7 @@ Tested-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
  obj-$(CONFIG_GPIO_RDA)			+= gpio-rda.o
 --- a/drivers/mtd/nand/raw/Kconfig
 +++ b/drivers/mtd/nand/raw/Kconfig
-@@ -572,4 +572,10 @@ config MTD_NAND_RB4XX
+@@ -558,4 +558,10 @@ config MTD_NAND_RB4XX
  	  Enables support for the NAND flash chip on Mikrotik Routerboard
  	  RB4xx series.
  
@@ -86,7 +86,7 @@ Tested-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
  endif # MTD_RAW_NAND
 --- a/drivers/mtd/nand/raw/Makefile
 +++ b/drivers/mtd/nand/raw/Makefile
-@@ -61,6 +61,7 @@ obj-$(CONFIG_MTD_NAND_PL35X)		+= pl35x-n
+@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_PL35X)		+= pl35x-n
  obj-$(CONFIG_MTD_NAND_RENESAS)		+= renesas-nand-controller.o
  obj-$(CONFIG_MTD_NAND_AR934X)		+= ar934x_nand.o
  obj-$(CONFIG_MTD_NAND_RB4XX)		+= nand_rb4xx.o




More information about the lede-commits mailing list