Explorar el Código

kernel: bump 6.6 to 6.6.94

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.94

Removed upstreamed:
	generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch[1]
	generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch[2]
	generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch[3]
	mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch[4]
	mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch[5]

Added new back-port:
	generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch[6]

Manually refresh:
	bcm27xx/patches-6.6/950-0624-drm-vc4-tests-Drop-drm-parameter-for-vc4_find_crtc_f.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=29abb7fc82443bee273ba4623ce319bf7ba1d43d
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=59d5f3134b5c265df233b7f385bbe718191411be
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=2e02edb66427e3b8752e1f3dd3cfc1bef3f2357b
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=39ed85ae485d991ffb24d25629a679c0b22e2d8f
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=8f0f45a312151a52aae920a091ea4b454ac97caf
6. Addresses a build failure for pcc

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

Signed-off-by: John Audia <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/19183
(cherry picked from commit 836a4cc6d3c720d08a4b6f4c39534e6d9de34379)
Signed-off-by: Goetz Goerisch <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/19209
Signed-off-by: Hauke Mehrtens <[email protected]>
John Audia hace 6 meses
padre
commit
2f40059708
Se han modificado 32 ficheros con 99 adiciones y 254 borrados
  1. 2 2
      include/kernel-6.6
  2. 1 1
      target/linux/bcm27xx/patches-6.6/950-0121-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch
  3. 1 1
      target/linux/bcm27xx/patches-6.6/950-0164-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch
  4. 2 2
      target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
  5. 1 1
      target/linux/bcm27xx/patches-6.6/950-0567-drivers-iommu-Add-BCM2712-IOMMU.patch
  6. 10 10
      target/linux/bcm27xx/patches-6.6/950-0624-drm-vc4-tests-Drop-drm-parameter-for-vc4_find_crtc_f.patch
  7. 1 1
      target/linux/bcm27xx/patches-6.6/950-0625-drm-vc4-tests-Return-the-allocated-output.patch
  8. 1 1
      target/linux/bcm27xx/patches-6.6/950-0867-iommu-bcm2712-don-t-allow-building-as-module.patch
  9. 1 1
      target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
  10. 1 1
      target/linux/bcm27xx/patches-6.6/950-1383-firmware-Add-an-RP1-firmware-interface-over-mbox.patch
  11. 42 0
      target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch
  12. 0 32
      target/linux/generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch
  13. 0 32
      target/linux/generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch
  14. 1 1
      target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch
  15. 1 1
      target/linux/generic/backport-6.6/611-03-v6.11-udp-Fall-back-to-software-USO-if-IPv6-extension-head.patch
  16. 2 2
      target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch
  17. 1 1
      target/linux/generic/backport-6.6/714-v6.8-04-net-phy-add-support-for-PHY-package-MMD-read-write.patch
  18. 1 1
      target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch
  19. 3 3
      target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch
  20. 0 31
      target/linux/generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch
  21. 1 1
      target/linux/generic/backport-6.6/771-v6.7-01-net-stmmac-improve-TX-timer-arm-logic.patch
  22. 8 8
      target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
  23. 4 4
      target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch
  24. 2 2
      target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch
  25. 1 1
      target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch
  26. 4 4
      target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch
  27. 3 3
      target/linux/mediatek/patches-6.6/739-net-add-negotiation-of-in-band-capabilities.patch
  28. 0 44
      target/linux/mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch
  29. 0 58
      target/linux/mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch
  30. 1 1
      target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch
  31. 1 1
      target/linux/realtek/patches-6.6/706-include-linux-add-phy-ops-for-rtl838x.patch
  32. 2 2
      target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch

+ 2 - 2
include/kernel-6.6

@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .93
-LINUX_KERNEL_HASH-6.6.93 = 0d79ff359635e9f009f1e330deed5f3aefd8c452b80660bffdc504b877797719
+LINUX_VERSION-6.6 = .94
+LINUX_KERNEL_HASH-6.6.94 = 713981ea26b20b476ba4ce880b76b21294576788d5db1c2188b167bcb06ecc56

+ 1 - 1
target/linux/bcm27xx/patches-6.6/950-0121-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch

@@ -19,7 +19,7 @@ Reduces overhead when using X
  module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644);
  MODULE_PARM_DESC(mousepoll, "Polling interval of mice");
  
-@@ -1112,7 +1112,9 @@ static int usbhid_start(struct hid_devic
+@@ -1115,7 +1115,9 @@ static int usbhid_start(struct hid_devic
  		 */
  		switch (hid->collection->usage) {
  		case HID_GD_MOUSE:

+ 1 - 1
target/linux/bcm27xx/patches-6.6/950-0164-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch

@@ -13,7 +13,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
 
 --- a/drivers/hid/usbhid/hid-core.c
 +++ b/drivers/hid/usbhid/hid-core.c
-@@ -1126,6 +1126,7 @@ static int usbhid_start(struct hid_devic
+@@ -1129,6 +1129,7 @@ static int usbhid_start(struct hid_devic
  				interval = hid_kbpoll_interval;
  			break;
  		}

+ 2 - 2
target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch

@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <[email protected]>
 
 --- a/net/bluetooth/hci_sync.c
 +++ b/net/bluetooth/hci_sync.c
-@@ -4873,6 +4873,7 @@ static const struct {
+@@ -4883,6 +4883,7 @@ static const struct {
   */
  static int hci_dev_setup_sync(struct hci_dev *hdev)
  {
@@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <[email protected]>
  	int ret = 0;
  	bool invalid_bdaddr;
  	size_t i;
-@@ -4901,7 +4902,8 @@ static int hci_dev_setup_sync(struct hci
+@@ -4911,7 +4912,8 @@ static int hci_dev_setup_sync(struct hci
  			 test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
  	if (!ret) {
  		if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&

+ 1 - 1
target/linux/bcm27xx/patches-6.6/950-0567-drivers-iommu-Add-BCM2712-IOMMU.patch

@@ -31,7 +31,7 @@ Signed-off-by: Nick Hollinghurst <[email protected]>
 
 --- a/drivers/iommu/Kconfig
 +++ b/drivers/iommu/Kconfig
-@@ -494,4 +494,11 @@ config SPRD_IOMMU
+@@ -493,4 +493,11 @@ config SPRD_IOMMU
  
  	  Say Y here if you want to use the multimedia devices listed above.
  

+ 10 - 10
target/linux/bcm27xx/patches-6.6/950-0624-drm-vc4-tests-Drop-drm-parameter-for-vc4_find_crtc_f.patch

@@ -32,24 +32,24 @@ Signed-off-by: Maxime Ripard <[email protected]>
  	KUNIT_ASSERT_EQ(test, hweight32(encoder->possible_crtcs), 1);
 --- a/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
 +++ b/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
-@@ -77,7 +77,7 @@ int vc4_mock_atomic_add_output(struct ku
- 	encoder = vc4_find_encoder_by_type(drm, type);
- 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, encoder);
+@@ -78,7 +78,7 @@ int vc4_mock_atomic_add_output(struct ku
+ 	if (!encoder)
+ 		return -ENODEV;
  
 -	crtc = vc4_find_crtc_for_encoder(test, drm, encoder);
 +	crtc = vc4_find_crtc_for_encoder(test, encoder);
- 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc);
+ 	if (!crtc)
+ 		return -ENODEV;
  
- 	output = encoder_to_vc4_dummy_output(encoder);
-@@ -115,7 +115,7 @@ int vc4_mock_atomic_del_output(struct ku
- 	encoder = vc4_find_encoder_by_type(drm, type);
- 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, encoder);
+@@ -122,7 +122,7 @@ int vc4_mock_atomic_del_output(struct ku
+ 	if (!encoder)
+ 		return -ENODEV;
  
 -	crtc = vc4_find_crtc_for_encoder(test, drm, encoder);
 +	crtc = vc4_find_crtc_for_encoder(test, encoder);
- 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc);
+ 	if (!crtc)
+ 		return -ENODEV;
  
- 	crtc_state = drm_atomic_get_crtc_state(state, crtc);
 --- a/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
 +++ b/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
 @@ -131,7 +131,7 @@ get_vc4_crtc_state_for_encoder(struct ku

+ 1 - 1
target/linux/bcm27xx/patches-6.6/950-0625-drm-vc4-tests-Return-the-allocated-output.patch

@@ -49,7 +49,7 @@ Signed-off-by: Maxime Ripard <[email protected]>
  {
  	struct drm_device *drm = state->dev;
  	struct drm_connector_state *conn_state;
-@@ -96,7 +97,7 @@ int vc4_mock_atomic_add_output(struct ku
+@@ -102,7 +103,7 @@ int vc4_mock_atomic_add_output(struct ku
  
  	crtc_state->active = true;
  

+ 1 - 1
target/linux/bcm27xx/patches-6.6/950-0867-iommu-bcm2712-don-t-allow-building-as-module.patch

@@ -17,7 +17,7 @@ Signed-off-by: Ratchanan Srirattanamet <[email protected]>
 
 --- a/drivers/iommu/Kconfig
 +++ b/drivers/iommu/Kconfig
-@@ -495,7 +495,7 @@ config SPRD_IOMMU
+@@ -494,7 +494,7 @@ config SPRD_IOMMU
  	  Say Y here if you want to use the multimedia devices listed above.
  
  config BCM2712_IOMMU

+ 1 - 1
target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch

@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <[email protected]>
 
 --- a/net/bluetooth/hci_sync.c
 +++ b/net/bluetooth/hci_sync.c
-@@ -4873,7 +4873,8 @@ static const struct {
+@@ -4883,7 +4883,8 @@ static const struct {
   */
  static int hci_dev_setup_sync(struct hci_dev *hdev)
  {

+ 1 - 1
target/linux/bcm27xx/patches-6.6/950-1383-firmware-Add-an-RP1-firmware-interface-over-mbox.patch

@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <[email protected]>
 
 --- a/drivers/firmware/Kconfig
 +++ b/drivers/firmware/Kconfig
-@@ -153,6 +153,15 @@ config RASPBERRYPI_FIRMWARE
+@@ -152,6 +152,15 @@ config RASPBERRYPI_FIRMWARE
  	  This option enables support for communicating with the firmware on the
  	  Raspberry Pi.
  

+ 42 - 0
target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch

@@ -0,0 +1,42 @@
+From 93bd4a80efeb521314485a06d8c21157240497bb Mon Sep 17 00:00:00 2001
+From: Madhavan Srinivasan <[email protected]>
+Date: Sun, 11 May 2025 09:41:11 +0530
+Subject: powerpc/kernel: Fix ppc_save_regs inclusion in build
+
+Recent patch fixed an old commit
+'fc2a5a6161a2 ("powerpc/64s: ppc_save_regs is now needed for all 64s builds")'
+which is to include building of ppc_save_reg.c only when XMON
+and KEXEC_CORE and PPC_BOOK3S are enabled. This was valid, since
+ppc_save_regs was called only in replay_system_reset() of old
+irq.c which was under BOOK3S.
+
+But there has been multiple refactoring of irq.c and have
+added call to ppc_save_regs() from __replay_soft_interrupts
+-> replay_soft_interrupts which is part of irq_64.c included
+under CONFIG_PPC64. And since ppc_save_regs is called in
+CRASH_DUMP path as part of crash_setup_regs in kexec.h,
+CONFIG_PPC32 also needs it.
+
+So with this recent patch which enabled the building of
+ppc_save_regs.c caused a build break when none of these
+(XMON, KEXEC_CORE, BOOK3S) where enabled as part of config.
+Patch to enable building of ppc_save_regs.c by defaults.
+
+Signed-off-by: Madhavan Srinivasan <[email protected]>
+Link: https://patch.msgid.link/[email protected]
+---
+ arch/powerpc/kernel/Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/arch/powerpc/kernel/Makefile
++++ b/arch/powerpc/kernel/Makefile
+@@ -165,9 +165,7 @@ endif
+ 
+ obj64-$(CONFIG_PPC_TRANSACTIONAL_MEM)	+= tm.o
+ 
+-ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC_CORE)$(CONFIG_PPC_BOOK3S),)
+ obj-y				+= ppc_save_regs.o
+-endif
+ 
+ obj-$(CONFIG_EPAPR_PARAVIRT)	+= epapr_paravirt.o epapr_hcalls.o
+ obj-$(CONFIG_KVM_GUEST)		+= kvm.o kvm_emul.o

+ 0 - 32
target/linux/generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch

@@ -1,32 +0,0 @@
-From 5ad20e3d8cfe3b2e42bbddc7e0ebaa74479bb589 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <[email protected]>
-Date: Thu, 29 May 2025 15:09:14 +0200
-Subject: [PATCH] spi: bcm63xx-spi: fix shared reset
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Some bmips SoCs (bcm6362, bcm63268) share the same SPI reset for both SPI
-and HSSPI controllers, so reset shouldn't be exclusive.
-
-Fixes: 38807adeaf1e ("spi: bcm63xx-spi: add reset support")
-Reported-by: Jonas Gorski <[email protected]>
-Signed-off-by: Álvaro Fernández Rojas <[email protected]>
-Reviewed-by: Florian Fainelli <[email protected]>
-Link: https://patch.msgid.link/[email protected]
-Signed-off-by: Mark Brown <[email protected]>
----
- drivers/spi/spi-bcm63xx.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -523,7 +523,7 @@ static int bcm63xx_spi_probe(struct plat
- 		return PTR_ERR(clk);
- 	}
- 
--	reset = devm_reset_control_get_optional_exclusive(dev, NULL);
-+	reset = devm_reset_control_get_optional_shared(dev, NULL);
- 	if (IS_ERR(reset))
- 		return PTR_ERR(reset);
- 

+ 0 - 32
target/linux/generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch

@@ -1,32 +0,0 @@
-From 3d6d84c8f2f66d3fd6a43a1e2ce8e6b54c573960 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <[email protected]>
-Date: Thu, 29 May 2025 15:09:15 +0200
-Subject: [PATCH] spi: bcm63xx-hsspi: fix shared reset
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Some bmips SoCs (bcm6362, bcm63268) share the same SPI reset for both SPI
-and HSSPI controllers, so reset shouldn't be exclusive.
-
-Fixes: 0eeadddbf09a ("spi: bcm63xx-hsspi: add reset support")
-Reported-by: Jonas Gorski <[email protected]>
-Signed-off-by: Álvaro Fernández Rojas <[email protected]>
-Reviewed-by: Florian Fainelli <[email protected]>
-Link: https://patch.msgid.link/[email protected]
-Signed-off-by: Mark Brown <[email protected]>
----
- drivers/spi/spi-bcm63xx-hsspi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/spi/spi-bcm63xx-hsspi.c
-+++ b/drivers/spi/spi-bcm63xx-hsspi.c
-@@ -745,7 +745,7 @@ static int bcm63xx_hsspi_probe(struct pl
- 	if (IS_ERR(clk))
- 		return PTR_ERR(clk);
- 
--	reset = devm_reset_control_get_optional_exclusive(dev, NULL);
-+	reset = devm_reset_control_get_optional_shared(dev, NULL);
- 	if (IS_ERR(reset))
- 		return PTR_ERR(reset);
- 

+ 1 - 1
target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch

@@ -65,7 +65,7 @@ Signed-off-by: Jakub Kicinski <[email protected]>
  		}
 --- a/net/ipv4/udp_offload.c
 +++ b/net/ipv4/udp_offload.c
-@@ -443,6 +443,14 @@ struct sk_buff *__udp_gso_segment(struct
+@@ -448,6 +448,14 @@ struct sk_buff *__udp_gso_segment(struct
  	else
  		uh->check = gso_make_checksum(seg, ~check) ? : CSUM_MANGLED_0;
  

+ 1 - 1
target/linux/generic/backport-6.6/611-03-v6.11-udp-Fall-back-to-software-USO-if-IPv6-extension-head.patch

@@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <[email protected]>
 
 --- a/net/ipv4/udp_offload.c
 +++ b/net/ipv4/udp_offload.c
-@@ -342,6 +342,12 @@ struct sk_buff *__udp_gso_segment(struct
+@@ -343,6 +343,12 @@ struct sk_buff *__udp_gso_segment(struct
  		     !(skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST)))
  		return ERR_PTR(-EINVAL);
  

+ 2 - 2
target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch

@@ -242,7 +242,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	refcount_t refcnt;
  	unsigned long flags;
  	size_t priv_size;
-@@ -1969,10 +1970,10 @@ int phy_ethtool_get_link_ksettings(struc
+@@ -1966,10 +1967,10 @@ int phy_ethtool_get_link_ksettings(struc
  int phy_ethtool_set_link_ksettings(struct net_device *ndev,
  				   const struct ethtool_link_ksettings *cmd);
  int phy_ethtool_nway_reset(struct net_device *ndev);
@@ -255,7 +255,7 @@ Signed-off-by: David S. Miller <[email protected]>
  
  int __init mdio_bus_init(void);
  void mdio_bus_exit(void);
-@@ -1995,46 +1996,65 @@ int __phy_hwtstamp_set(struct phy_device
+@@ -1992,46 +1993,65 @@ int __phy_hwtstamp_set(struct phy_device
  		       struct kernel_hwtstamp_config *config,
  		       struct netlink_ext_ack *extack);
  

+ 1 - 1
target/linux/generic/backport-6.6/714-v6.8-04-net-phy-add-support-for-PHY-package-MMD-read-write.patch

@@ -171,7 +171,7 @@ Signed-off-by: David S. Miller <[email protected]>
   * @regnum: register number to modify
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -2057,6 +2057,22 @@ static inline int __phy_package_write(st
+@@ -2054,6 +2054,22 @@ static inline int __phy_package_write(st
  	return __mdiobus_write(phydev->mdio.bus, addr, regnum, val);
  }
  

+ 1 - 1
target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch

@@ -170,7 +170,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	refcount_t refcnt;
  	unsigned long flags;
  	size_t priv_size;
-@@ -1971,9 +1974,12 @@ int phy_ethtool_set_link_ksettings(struc
+@@ -1968,9 +1971,12 @@ int phy_ethtool_set_link_ksettings(struc
  				   const struct ethtool_link_ksettings *cmd);
  int phy_ethtool_nway_reset(struct net_device *ndev);
  int phy_package_join(struct phy_device *phydev, int base_addr, size_t priv_size);

+ 3 - 3
target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch

@@ -41,7 +41,7 @@ Signed-off-by: David S. Miller <[email protected]>
  
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -2615,12 +2615,15 @@ EXPORT_SYMBOL(genphy_read_status);
+@@ -2617,12 +2617,15 @@ EXPORT_SYMBOL(genphy_read_status);
  /**
   * genphy_c37_read_status - check the link status and update current link state
   * @phydev: target phy_device struct
@@ -58,7 +58,7 @@ Signed-off-by: David S. Miller <[email protected]>
  {
  	int lpa, err, old_link = phydev->link;
  
-@@ -2630,9 +2633,13 @@ int genphy_c37_read_status(struct phy_de
+@@ -2632,9 +2635,13 @@ int genphy_c37_read_status(struct phy_de
  		return err;
  
  	/* why bother the PHY if nothing can have changed */
@@ -89,7 +89,7 @@ Signed-off-by: David S. Miller <[email protected]>
  }
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -1849,7 +1849,7 @@ int genphy_write_mmd_unsupported(struct
+@@ -1846,7 +1846,7 @@ int genphy_write_mmd_unsupported(struct
  
  /* Clause 37 */
  int genphy_c37_config_aneg(struct phy_device *phydev);

+ 0 - 31
target/linux/generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch

@@ -1,31 +0,0 @@
-From efdddc4484859082da6c7877ed144c8121c8ea55 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <[email protected]>
-Date: Thu, 29 May 2025 14:44:06 +0200
-Subject: [PATCH] net: dsa: tag_brcm: legacy: fix pskb_may_pull length
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-BRCM_LEG_PORT_ID was incorrectly used for pskb_may_pull length.
-The correct check is BRCM_LEG_TAG_LEN + VLAN_HLEN, or 10 bytes.
-
-Fixes: 964dbf186eaa ("net: dsa: tag_brcm: add support for legacy tags")
-Signed-off-by: Álvaro Fernández Rojas <[email protected]>
-Reviewed-by: Florian Fainelli <[email protected]>
-Link: https://patch.msgid.link/[email protected]
-Signed-off-by: Jakub Kicinski <[email protected]>
----
- net/dsa/tag_brcm.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/net/dsa/tag_brcm.c
-+++ b/net/dsa/tag_brcm.c
-@@ -257,7 +257,7 @@ static struct sk_buff *brcm_leg_tag_rcv(
- 	int source_port;
- 	u8 *brcm_tag;
- 
--	if (unlikely(!pskb_may_pull(skb, BRCM_LEG_PORT_ID)))
-+	if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN + VLAN_HLEN)))
- 		return NULL;
- 
- 	brcm_tag = dsa_etype_header_pos_rx(skb);

+ 1 - 1
target/linux/generic/backport-6.6/771-v6.7-01-net-stmmac-improve-TX-timer-arm-logic.patch

@@ -46,7 +46,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -2988,13 +2988,25 @@ static void stmmac_tx_timer_arm(struct s
+@@ -2993,13 +2993,25 @@ static void stmmac_tx_timer_arm(struct s
  {
  	struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[queue];
  	u32 tx_coal_timer = priv->tx_coal_timer[queue];

+ 8 - 8
target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch

@@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -2536,9 +2536,13 @@ static void stmmac_bump_dma_threshold(st
+@@ -2541,9 +2541,13 @@ static void stmmac_bump_dma_threshold(st
   * @priv: driver private structure
   * @budget: napi budget limiting this functions packet handling
   * @queue: TX queue index
@@ -33,7 +33,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
  {
  	struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[queue];
  	struct stmmac_txq_stats *txq_stats = &priv->xstats.txq_stats[queue];
-@@ -2698,7 +2702,7 @@ static int stmmac_tx_clean(struct stmmac
+@@ -2703,7 +2707,7 @@ static int stmmac_tx_clean(struct stmmac
  
  	/* We still have pending packets, let's call for a new scheduling */
  	if (tx_q->dirty_tx != tx_q->cur_tx)
@@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
  
  	u64_stats_update_begin(&txq_stats->napi_syncp);
  	u64_stats_add(&txq_stats->napi.tx_packets, tx_packets);
-@@ -5604,6 +5608,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5609,6 +5613,7 @@ static int stmmac_napi_poll_tx(struct na
  		container_of(napi, struct stmmac_channel, tx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
  	struct stmmac_txq_stats *txq_stats;
@@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
  	u32 chan = ch->index;
  	int work_done;
  
-@@ -5612,7 +5617,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5617,7 +5622,7 @@ static int stmmac_napi_poll_tx(struct na
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
  	work_done = min(work_done, budget);
  
  	if (work_done < budget && napi_complete_done(napi, work_done)) {
-@@ -5623,6 +5628,10 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5628,6 +5633,10 @@ static int stmmac_napi_poll_tx(struct na
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
@@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
  	return work_done;
  }
  
-@@ -5631,6 +5640,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5636,6 +5645,7 @@ static int stmmac_napi_poll_rxtx(struct
  	struct stmmac_channel *ch =
  		container_of(napi, struct stmmac_channel, rxtx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
@@ -78,7 +78,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
  	int rx_done, tx_done, rxtx_done;
  	struct stmmac_rxq_stats *rxq_stats;
  	struct stmmac_txq_stats *txq_stats;
-@@ -5646,7 +5656,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5651,7 +5661,7 @@ static int stmmac_napi_poll_rxtx(struct
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
  	tx_done = min(tx_done, budget);
  
  	rx_done = stmmac_rx_zc(priv, budget, chan);
-@@ -5671,6 +5681,10 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5676,6 +5686,10 @@ static int stmmac_napi_poll_rxtx(struct
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  

+ 4 - 4
target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch

@@ -28,7 +28,7 @@ Signed-off-by: Jakub Kicinski <[email protected]>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -3202,6 +3202,7 @@ static int of_phy_led(struct phy_device
+@@ -3204,6 +3204,7 @@ static int of_phy_led(struct phy_device
  	struct device *dev = &phydev->mdio.dev;
  	struct led_init_data init_data = {};
  	struct led_classdev *cdev;
@@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <[email protected]>
  	struct phy_led *phyled;
  	u32 index;
  	int err;
-@@ -3219,6 +3220,21 @@ static int of_phy_led(struct phy_device
+@@ -3221,6 +3222,21 @@ static int of_phy_led(struct phy_device
  	if (index > U8_MAX)
  		return -EINVAL;
  
@@ -60,7 +60,7 @@ Signed-off-by: Jakub Kicinski <[email protected]>
  		cdev->brightness_set_blocking = phy_led_set_brightness;
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -870,6 +870,15 @@ struct phy_led {
+@@ -867,6 +867,15 @@ struct phy_led {
  
  #define to_phy_led(d) container_of(d, struct phy_led, led_cdev)
  
@@ -76,7 +76,7 @@ Signed-off-by: Jakub Kicinski <[email protected]>
  /**
   * struct phy_driver - Driver structure for a particular PHY type
   *
-@@ -1146,6 +1155,19 @@ struct phy_driver {
+@@ -1143,6 +1152,19 @@ struct phy_driver {
  	int (*led_hw_control_get)(struct phy_device *dev, u8 index,
  				  unsigned long *rules);
  

+ 2 - 2
target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch

@@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -3220,11 +3220,17 @@ static int of_phy_led(struct phy_device
+@@ -3222,11 +3222,17 @@ static int of_phy_led(struct phy_device
  	if (index > U8_MAX)
  		return -EINVAL;
  
@@ -39,7 +39,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
  		if (!phydev->drv->led_polarity_set)
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -872,8 +872,9 @@ struct phy_led {
+@@ -869,8 +869,9 @@ struct phy_led {
  
  /* Modes for PHY LED configuration */
  enum phy_led_modes {

+ 1 - 1
target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch

@@ -379,7 +379,7 @@ Signe-off-by: Felix Fietkau <[email protected]>
  	skb_shinfo(skb)->gso_type |= SKB_GSO_TCPV4;
 --- a/net/ipv4/udp_offload.c
 +++ b/net/ipv4/udp_offload.c
-@@ -533,33 +533,6 @@ out:
+@@ -538,33 +538,6 @@ out:
  	return segs;
  }
  

+ 4 - 4
target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch

@@ -11,9 +11,9 @@ Signed-off-by: Gabor Juhos <[email protected]>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1910,6 +1910,9 @@ void phy_detach(struct phy_device *phyde
- 	if (phydev->devlink)
- 		device_link_del(phydev->devlink);
+@@ -1912,6 +1912,9 @@ void phy_detach(struct phy_device *phyde
+ 		phydev->devlink = NULL;
+ 	}
  
 +	if (phydev->drv && phydev->drv->detach)
 +		phydev->drv->detach(phydev);
@@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  			sysfs_remove_link(&dev->dev.kobj, "phydev");
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -980,6 +980,12 @@ struct phy_driver {
+@@ -977,6 +977,12 @@ struct phy_driver {
  	/** @handle_interrupt: Override default interrupt handling */
  	irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
  

+ 3 - 3
target/linux/mediatek/patches-6.6/739-net-add-negotiation-of-in-band-capabilities.patch

@@ -826,7 +826,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
   *
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -800,6 +800,24 @@ struct phy_tdr_config {
+@@ -797,6 +797,24 @@ struct phy_tdr_config {
  #define PHY_PAIR_ALL -1
  
  /**
@@ -851,7 +851,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
   * struct phy_plca_cfg - Configuration of the PLCA (Physical Layer Collision
   * Avoidance) Reconciliation Sublayer.
   *
-@@ -939,6 +957,19 @@ struct phy_driver {
+@@ -936,6 +954,19 @@ struct phy_driver {
  	int (*get_features)(struct phy_device *phydev);
  
  	/**
@@ -871,7 +871,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	 * @get_rate_matching: Get the supported type of rate matching for a
  	 * particular phy interface. This is used by phy consumers to determine
  	 * whether to advertise lower-speed modes for that interface. It is
-@@ -1774,6 +1805,9 @@ void phy_stop(struct phy_device *phydev)
+@@ -1771,6 +1802,9 @@ void phy_stop(struct phy_device *phydev)
  int phy_config_aneg(struct phy_device *phydev);
  int phy_start_aneg(struct phy_device *phydev);
  int phy_aneg_done(struct phy_device *phydev);

+ 0 - 44
target/linux/mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch

@@ -1,44 +0,0 @@
-From 947c93eb29c2a581c0b0b6d5f21af3c2b7ff6d25 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <[email protected]>
-Date: Wed, 14 May 2025 21:18:32 +0200
-Subject: [PATCH 1/7] pinctrl: armada-37xx: use correct OUTPUT_VAL register for
- GPIOs > 31
-
-The controller has two consecutive OUTPUT_VAL registers and both
-holds output value for 32 GPIOs. Due to a missing adjustment, the
-current code always uses the first register while setting the
-output value whereas it should use the second one for GPIOs > 31.
-
-Add the missing armada_37xx_update_reg() call to adjust the register
-according to the 'offset' parameter of the function to fix the issue.
-
-Cc: [email protected]
-Fixes: 6702abb3bf23 ("pinctrl: armada-37xx: Fix direction_output() callback behavior")
-Signed-off-by: Imre Kaloz <[email protected]>
-Reviewed-by: Andrew Lunn <[email protected]>
-Signed-off-by: Gabor Juhos <[email protected]>
-Link: https://lore.kernel.org/[email protected]
-Signed-off-by: Linus Walleij <[email protected]>
----
- drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
-+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
-@@ -417,6 +417,7 @@ static int armada_37xx_gpio_direction_ou
- 					     unsigned int offset, int value)
- {
- 	struct armada_37xx_pinctrl *info = gpiochip_get_data(chip);
-+	unsigned int val_offset = offset;
- 	unsigned int reg = OUTPUT_EN;
- 	unsigned int mask, val, ret;
- 
-@@ -429,6 +430,8 @@ static int armada_37xx_gpio_direction_ou
- 		return ret;
- 
- 	reg = OUTPUT_VAL;
-+	armada_37xx_update_reg(&reg, &val_offset);
-+
- 	val = value ? mask : 0;
- 	regmap_update_bits(info->regmap, reg, mask, val);
- 

+ 0 - 58
target/linux/mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch

@@ -1,58 +0,0 @@
-From e6ebd4942981f8ad37189bbb36a3c8495e21ef4c Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <[email protected]>
-Date: Wed, 14 May 2025 21:18:33 +0200
-Subject: [PATCH 2/7] pinctrl: armada-37xx: set GPIO output value before
- setting direction
-
-Changing the direction before updating the output value in the
-OUTPUT_VAL register may result in a glitch on the output line
-if the previous value in the OUTPUT_VAL register is different
-from the one we want to set.
-
-In order to avoid that, update the output value before changing
-the direction.
-
-Cc: [email protected]
-Fixes: 6702abb3bf23 ("pinctrl: armada-37xx: Fix direction_output() callback behavior")
-Signed-off-by: Imre Kaloz <[email protected]>
-Reviewed-by: Andrew Lunn <[email protected]>
-Signed-off-by: Gabor Juhos <[email protected]>
-Link: https://lore.kernel.org/[email protected]
-Signed-off-by: Linus Walleij <[email protected]>
----
- drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
-
---- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
-+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
-@@ -417,23 +417,22 @@ static int armada_37xx_gpio_direction_ou
- 					     unsigned int offset, int value)
- {
- 	struct armada_37xx_pinctrl *info = gpiochip_get_data(chip);
--	unsigned int val_offset = offset;
--	unsigned int reg = OUTPUT_EN;
-+	unsigned int en_offset = offset;
-+	unsigned int reg = OUTPUT_VAL;
- 	unsigned int mask, val, ret;
- 
- 	armada_37xx_update_reg(&reg, &offset);
- 	mask = BIT(offset);
-+	val = value ? mask : 0;
- 
--	ret = regmap_update_bits(info->regmap, reg, mask, mask);
--
-+	ret = regmap_update_bits(info->regmap, reg, mask, val);
- 	if (ret)
- 		return ret;
- 
--	reg = OUTPUT_VAL;
--	armada_37xx_update_reg(&reg, &val_offset);
-+	reg = OUTPUT_EN;
-+	armada_37xx_update_reg(&reg, &en_offset);
- 
--	val = value ? mask : 0;
--	regmap_update_bits(info->regmap, reg, mask, val);
-+	regmap_update_bits(info->regmap, reg, mask, mask);
- 
- 	return 0;
- }

+ 1 - 1
target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch

@@ -47,7 +47,7 @@ Signed-off-by: Vinod Koul <[email protected]>
  static const struct qmp_phy_cfg ipq8074_usb3phy_cfg = {
  	.lanes			= 1,
  
-@@ -2239,7 +2259,7 @@ err_node_put:
+@@ -2243,7 +2263,7 @@ err_node_put:
  static const struct of_device_id qmp_usb_of_match_table[] = {
  	{
  		.compatible = "qcom,ipq6018-qmp-usb3-phy",

+ 1 - 1
target/linux/realtek/patches-6.6/706-include-linux-add-phy-ops-for-rtl838x.patch

@@ -21,7 +21,7 @@ Submitted-by: John Crispin <[email protected]>
 
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -1181,6 +1181,10 @@ struct phy_driver {
+@@ -1178,6 +1178,10 @@ struct phy_driver {
  	 */
  	int (*led_polarity_set)(struct phy_device *dev, int index,
  				unsigned long modes);

+ 2 - 2
target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch

@@ -10,7 +10,7 @@ Signed-off-by: Matteo Croce <[email protected]>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -1434,7 +1434,7 @@ static int stmmac_init_rx_buffers(struct
+@@ -1439,7 +1439,7 @@ static int stmmac_init_rx_buffers(struct
  {
  	struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue];
  	struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i];
@@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce <[email protected]>
  
  	if (priv->dma_cap.host_dma_width <= 32)
  		gfp |= GFP_DMA32;
-@@ -4687,7 +4687,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4692,7 +4692,7 @@ static inline void stmmac_rx_refill(stru
  	struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int entry = rx_q->dirty_rx;