diff --git a/include/kernel-5.4 b/include/kernel-5.4 index c9833ef60..8c2bf3c5a 100644 --- a/include/kernel-5.4 +++ b/include/kernel-5.4 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.4 = .175 -LINUX_KERNEL_HASH-5.4.175 = ac901bdffb1488d6c730ca7ab42322163dd331b240e2f06ad83d199e251a4840 +LINUX_VERSION-5.4 = .185 +LINUX_KERNEL_HASH-5.4.185 = d15fe9da679bfb624f35f127a17559f6d037ad37a313cf5fd22ce155401f3787 diff --git a/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch index 26c4a7b21..3828ae078 100644 --- a/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch @@ -292,7 +292,7 @@ #endif /* _LINUX_TYPES_H */ --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c -@@ -1441,8 +1441,8 @@ struct sk_buff *inet_gro_receive(struct +@@ -1444,8 +1444,8 @@ struct sk_buff *inet_gro_receive(struct if (unlikely(ip_fast_csum((u8 *)iph, 5))) goto out_unlock; @@ -534,7 +534,7 @@ goto next_ht; --- a/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c -@@ -240,7 +240,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * +@@ -242,7 +242,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * continue; iph2 = (struct ipv6hdr *)(p->data + off); diff --git a/target/linux/bcm27xx/patches-5.4/950-0026-i2c-bcm2835-Add-debug-support.patch b/target/linux/bcm27xx/patches-5.4/950-0026-i2c-bcm2835-Add-debug-support.patch index 5208e09b4..2d6d4f9aa 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0026-i2c-bcm2835-Add-debug-support.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0026-i2c-bcm2835-Add-debug-support.patch @@ -37,7 +37,7 @@ Signed-off-by: Noralf Trønnes --- a/drivers/i2c/busses/i2c-bcm2835.c +++ b/drivers/i2c/busses/i2c-bcm2835.c -@@ -51,6 +51,18 @@ +@@ -56,6 +56,18 @@ #define BCM2835_I2C_CDIV_MIN 0x0002 #define BCM2835_I2C_CDIV_MAX 0xFFFE @@ -56,7 +56,7 @@ Signed-off-by: Noralf Trønnes struct bcm2835_i2c_dev { struct device *dev; void __iomem *regs; -@@ -63,8 +75,78 @@ struct bcm2835_i2c_dev { +@@ -68,8 +80,78 @@ struct bcm2835_i2c_dev { u32 msg_err; u8 *msg_buf; size_t msg_buf_remaining; @@ -135,7 +135,7 @@ Signed-off-by: Noralf Trønnes static inline void bcm2835_i2c_writel(struct bcm2835_i2c_dev *i2c_dev, u32 reg, u32 val) { -@@ -252,6 +334,7 @@ static void bcm2835_i2c_start_transfer(s +@@ -257,6 +339,7 @@ static void bcm2835_i2c_start_transfer(s bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_A, msg->addr); bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len); bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, c); @@ -143,7 +143,7 @@ Signed-off-by: Noralf Trønnes } static void bcm2835_i2c_finish_transfer(struct bcm2835_i2c_dev *i2c_dev) -@@ -278,6 +361,7 @@ static irqreturn_t bcm2835_i2c_isr(int t +@@ -283,6 +366,7 @@ static irqreturn_t bcm2835_i2c_isr(int t u32 val, err; val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S); @@ -151,7 +151,7 @@ Signed-off-by: Noralf Trønnes err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR); if (err) { -@@ -344,6 +428,13 @@ static int bcm2835_i2c_xfer(struct i2c_a +@@ -349,6 +433,13 @@ static int bcm2835_i2c_xfer(struct i2c_a unsigned long time_left; int i; @@ -165,7 +165,7 @@ Signed-off-by: Noralf Trønnes for (i = 0; i < (num - 1); i++) if (msgs[i].flags & I2C_M_RD) { dev_warn_once(i2c_dev->dev, -@@ -362,6 +453,10 @@ static int bcm2835_i2c_xfer(struct i2c_a +@@ -367,6 +458,10 @@ static int bcm2835_i2c_xfer(struct i2c_a bcm2835_i2c_finish_transfer(i2c_dev); @@ -176,7 +176,7 @@ Signed-off-by: Noralf Trønnes if (!time_left) { bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, BCM2835_I2C_C_CLEAR); -@@ -372,7 +467,9 @@ static int bcm2835_i2c_xfer(struct i2c_a +@@ -377,7 +472,9 @@ static int bcm2835_i2c_xfer(struct i2c_a if (!i2c_dev->msg_err) return num; diff --git a/target/linux/bcm27xx/patches-5.4/950-0035-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch b/target/linux/bcm27xx/patches-5.4/950-0035-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch index e42fa9c9b..80fc58757 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0035-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0035-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch @@ -11,7 +11,7 @@ Signed-off-by: Noralf Tronnes --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -350,7 +350,7 @@ static const struct gpio_chip bcm2835_gp +@@ -359,7 +359,7 @@ static const struct gpio_chip bcm2835_gp .get = bcm2835_gpio_get, .set = bcm2835_gpio_set, .set_config = gpiochip_generic_config, diff --git a/target/linux/bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch b/target/linux/bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch index d4818b223..d3ae747a7 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch @@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c -@@ -5721,6 +5721,9 @@ int __init cgroup_init_early(void) +@@ -5749,6 +5749,9 @@ int __init cgroup_init_early(void) return 0; } @@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell /** * cgroup_init - cgroup initialization * -@@ -5759,6 +5762,12 @@ int __init cgroup_init(void) +@@ -5787,6 +5790,12 @@ int __init cgroup_init(void) mutex_unlock(&cgroup_mutex); @@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell for_each_subsys(ss, ssid) { if (ss->early_init) { struct cgroup_subsys_state *css = -@@ -6168,6 +6177,10 @@ static int __init cgroup_disable(char *s +@@ -6196,6 +6205,10 @@ static int __init cgroup_disable(char *s strcmp(token, ss->legacy_name)) continue; @@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell static_branch_disable(cgroup_subsys_enabled_key[i]); pr_info("Disabling %s control group subsystem\n", ss->name); -@@ -6177,6 +6190,31 @@ static int __init cgroup_disable(char *s +@@ -6205,6 +6218,31 @@ static int __init cgroup_disable(char *s } __setup("cgroup_disable=", cgroup_disable); diff --git a/target/linux/bcm27xx/patches-5.4/950-0218-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-5.4/950-0218-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch index 9e886ee2d..7efa6d533 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0218-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0218-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch @@ -27,7 +27,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c -@@ -1941,6 +1941,16 @@ reset: +@@ -1962,6 +1962,16 @@ reset: return ret; } diff --git a/target/linux/bcm27xx/patches-5.4/950-0219-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-5.4/950-0219-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index 101662752..d69d14d91 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0219-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0219-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1469,6 +1469,103 @@ command_cleanup: +@@ -1475,6 +1475,103 @@ command_cleanup: } /* @@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -5358,6 +5455,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5376,6 +5473,7 @@ static const struct hc_driver xhci_hc_dr .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, diff --git a/target/linux/bcm27xx/patches-5.4/950-0265-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch b/target/linux/bcm27xx/patches-5.4/950-0265-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch index a3bc6c91b..d9542d1d5 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0265-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0265-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch @@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell --- a/drivers/i2c/busses/i2c-bcm2835.c +++ b/drivers/i2c/busses/i2c-bcm2835.c -@@ -188,6 +188,7 @@ static int clk_bcm2835_i2c_set_rate(stru +@@ -193,6 +193,7 @@ static int clk_bcm2835_i2c_set_rate(stru { struct clk_bcm2835_i2c *div = to_clk_bcm2835_i2c(hw); u32 redl, fedl; @@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell u32 divider = clk_bcm2835_i2c_calc_divider(rate, parent_rate); if (divider == -EINVAL) -@@ -211,6 +212,17 @@ static int clk_bcm2835_i2c_set_rate(stru +@@ -216,6 +217,17 @@ static int clk_bcm2835_i2c_set_rate(stru bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DEL, (fedl << BCM2835_I2C_FEDL_SHIFT) | (redl << BCM2835_I2C_REDL_SHIFT)); diff --git a/target/linux/bcm27xx/patches-5.4/950-0280-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-5.4/950-0280-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index c5e7d5e84..fb3efaa6c 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0280-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0280-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1261,6 +1264,9 @@ +@@ -1263,6 +1266,9 @@ #define USB_VENDOR_ID_XAT 0x2505 #define USB_DEVICE_ID_XAT_CSR 0x0220 @@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL }, -@@ -192,6 +193,7 @@ static const struct hid_device_id hid_qu +@@ -194,6 +195,7 @@ static const struct hid_device_id hid_qu { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT }, diff --git a/target/linux/bcm27xx/patches-5.4/950-0361-pinctrl-bcm2835-Remove-gpiochip-on-error.patch b/target/linux/bcm27xx/patches-5.4/950-0361-pinctrl-bcm2835-Remove-gpiochip-on-error.patch index 31a1a24ca..a772bf453 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0361-pinctrl-bcm2835-Remove-gpiochip-on-error.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0361-pinctrl-bcm2835-Remove-gpiochip-on-error.patch @@ -14,12 +14,12 @@ Signed-off-by: Phil Elwell --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -1135,7 +1135,7 @@ static int bcm2835_pinctrl_probe(struct - raw_spin_lock_init(&pc->irq_lock[i]); - } +@@ -1315,7 +1315,7 @@ static int bcm2835_pinctrl_probe(struct + girq->default_type = IRQ_TYPE_NONE; + girq->handler = handle_level_irq; - err = gpiochip_add_data(&pc->gpio_chip, pc); + err = devm_gpiochip_add_data(dev, &pc->gpio_chip, pc); if (err) { dev_err(dev, "could not add GPIO chip\n"); - return err; + goto out_remove; diff --git a/target/linux/bcm27xx/patches-5.4/950-0960-staging-fbtft-Add-support-for-display-variants.patch b/target/linux/bcm27xx/patches-5.4/950-0960-staging-fbtft-Add-support-for-display-variants.patch index 7206bad51..88a3c6be9 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0960-staging-fbtft-Add-support-for-display-variants.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0960-staging-fbtft-Add-support-for-display-variants.patch @@ -190,7 +190,7 @@ Signed-off-by: Phil Elwell {}, \ }; \ \ -@@ -344,6 +355,11 @@ static void __exit fbtft_driver_module_e +@@ -347,6 +358,11 @@ static void __exit fbtft_driver_module_e module_init(fbtft_driver_module_init); \ module_exit(fbtft_driver_module_exit); diff --git a/target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch b/target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch index f1862943f..5704d05aa 100644 --- a/target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch +++ b/target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch @@ -17,8 +17,8 @@ Signed-off-by: David S. Miller --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c -@@ -36,6 +36,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff * - struct ethhdr *eth; +@@ -35,6 +35,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff * + const unsigned char *dest; u16 vid = 0; + memset(skb->cb, 0, sizeof(struct br_input_skb_cb)); diff --git a/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch b/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch index 24b76cdca..e7f4016a1 100644 --- a/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch +++ b/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch @@ -66,7 +66,7 @@ Signed-off-by: David S. Miller --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5475,8 +5475,7 @@ static inline void skb_gro_reset_offset( +@@ -5435,8 +5435,7 @@ static inline void skb_gro_reset_offset( NAPI_GRO_CB(skb)->frag0 = NULL; NAPI_GRO_CB(skb)->frag0_len = 0; diff --git a/target/linux/generic/backport-5.4/716-v5.5-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch b/target/linux/generic/backport-5.4/716-v5.5-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch index 92fe22487..554ba9068 100644 --- a/target/linux/generic/backport-5.4/716-v5.5-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch +++ b/target/linux/generic/backport-5.4/716-v5.5-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch @@ -16,7 +16,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c -@@ -565,26 +565,17 @@ static const struct sfp_upstream_ops sfp +@@ -565,31 +565,17 @@ static const struct sfp_upstream_ops sfp static int phylink_register_sfp(struct phylink *pl, struct fwnode_handle *fwnode) { @@ -42,6 +42,11 @@ Signed-off-by: Russell King return ret; } +- if (!fwnode_device_is_available(ref.fwnode)) { +- fwnode_handle_put(ref.fwnode); +- return 0; +- } +- - pl->sfp_bus = sfp_register_upstream(ref.fwnode, pl, &sfp_phylink_ops); - if (!pl->sfp_bus) - return -ENOMEM; diff --git a/target/linux/generic/hack-5.4/204-module_strip.patch b/target/linux/generic/hack-5.4/204-module_strip.patch index d6e25f319..4ac6118e7 100644 --- a/target/linux/generic/hack-5.4/204-module_strip.patch +++ b/target/linux/generic/hack-5.4/204-module_strip.patch @@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau --- a/init/Kconfig +++ b/init/Kconfig -@@ -2198,6 +2198,13 @@ config TRIM_UNUSED_KSYMS +@@ -2208,6 +2208,13 @@ config TRIM_UNUSED_KSYMS If unsure, or if you need to build out-of-tree modules, say N. diff --git a/target/linux/generic/hack-5.4/220-gc_sections.patch b/target/linux/generic/hack-5.4/220-gc_sections.patch index 22276d439..f01bc05cd 100644 --- a/target/linux/generic/hack-5.4/220-gc_sections.patch +++ b/target/linux/generic/hack-5.4/220-gc_sections.patch @@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig -@@ -111,6 +111,7 @@ config ARM +@@ -112,6 +112,7 @@ config ARM select HAVE_UID16 select HAVE_VIRT_CPU_ACCOUNTING_GEN select IRQ_FORCED_THREADING @@ -31,7 +31,7 @@ Signed-off-by: Gabor Juhos select OF_EARLY_FLATTREE if OF --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile -@@ -106,6 +106,7 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y) +@@ -108,6 +108,7 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y) ORIG_CFLAGS := $(KBUILD_CFLAGS) KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) endif @@ -72,7 +72,7 @@ Signed-off-by: Gabor Juhos --- a/arch/arm/kernel/vmlinux.lds.h +++ b/arch/arm/kernel/vmlinux.lds.h -@@ -22,13 +22,13 @@ +@@ -22,7 +22,7 @@ #define ARM_MMU_DISCARD(x) #else #define ARM_MMU_KEEP(x) @@ -80,6 +80,8 @@ Signed-off-by: Gabor Juhos +#define ARM_MMU_DISCARD(x) KEEP(x) #endif + /* +@@ -41,7 +41,7 @@ #define PROC_INFO \ . = ALIGN(4); \ __proc_info_begin = .; \ @@ -88,7 +90,7 @@ Signed-off-by: Gabor Juhos __proc_info_end = .; #define HYPERVISOR_TEXT \ -@@ -39,11 +39,11 @@ +@@ -52,11 +52,11 @@ #define IDMAP_TEXT \ ALIGN_FUNCTION(); \ __idmap_text_start = .; \ @@ -102,7 +104,7 @@ Signed-off-by: Gabor Juhos __hyp_idmap_text_end = .; #define ARM_DISCARD \ -@@ -86,12 +86,12 @@ +@@ -99,12 +99,12 @@ . = ALIGN(8); \ .ARM.unwind_idx : { \ __start_unwind_idx = .; \ @@ -117,20 +119,29 @@ Signed-off-by: Gabor Juhos __stop_unwind_tab = .; \ } -@@ -102,14 +102,14 @@ - #define ARM_VECTORS \ - __vectors_start = .; \ - .vectors 0xffff0000 : AT(__vectors_start) { \ -- *(.vectors) \ -+ KEEP(*(.vectors)) \ +@@ -116,13 +116,13 @@ + __vectors_lma = .; \ + OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \ + .vectors { \ +- *(.vectors) \ ++ KEEP(*(.vectors)) \ + } \ + .vectors.bhb.loop8 { \ +- *(.vectors.bhb.loop8) \ ++ KEEP(*(.vectors.bhb.loop8)) \ + } \ + .vectors.bhb.bpiall { \ +- *(.vectors.bhb.bpiall) \ ++ KEEP(*(.vectors.bhb.bpiall)) \ + } \ } \ - . = __vectors_start + SIZEOF(.vectors); \ - __vectors_end = .; \ + ARM_LMA(__vectors, .vectors); \ +@@ -134,7 +134,7 @@ \ - __stubs_start = .; \ - .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { \ + __stubs_lma = .; \ + .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) { \ - *(.stubs) \ + KEEP(*(.stubs)) \ } \ - . = __stubs_start + SIZEOF(.stubs); \ - __stubs_end = .; \ + ARM_LMA(__stubs, .stubs); \ + . = __stubs_lma + SIZEOF(.stubs); \ diff --git a/target/linux/generic/hack-5.4/902-debloat_proc.patch b/target/linux/generic/hack-5.4/902-debloat_proc.patch index 198b03768..c680e7bc4 100644 --- a/target/linux/generic/hack-5.4/902-debloat_proc.patch +++ b/target/linux/generic/hack-5.4/902-debloat_proc.patch @@ -286,7 +286,7 @@ Signed-off-by: Felix Fietkau goto err; --- a/net/core/net-procfs.c +++ b/net/core/net-procfs.c -@@ -279,10 +279,12 @@ static int __net_init dev_proc_net_init( +@@ -309,10 +309,12 @@ static int __net_init dev_proc_net_init( if (!proc_create_net("dev", 0444, net->proc_net, &dev_seq_ops, sizeof(struct seq_net_private))) goto out; @@ -301,7 +301,7 @@ Signed-off-by: Felix Fietkau sizeof(struct seq_net_private))) goto out_softnet; -@@ -292,9 +294,11 @@ static int __net_init dev_proc_net_init( +@@ -322,9 +324,11 @@ static int __net_init dev_proc_net_init( out: return rc; out_ptype: @@ -315,7 +315,7 @@ Signed-off-by: Felix Fietkau out_dev: remove_proc_entry("dev", net->proc_net); goto out; -@@ -304,8 +308,10 @@ static void __net_exit dev_proc_net_exit +@@ -334,8 +338,10 @@ static void __net_exit dev_proc_net_exit { wext_proc_exit(net); diff --git a/target/linux/generic/pending-5.4/103-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch b/target/linux/generic/pending-5.4/103-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch index 85cd22305..2960c2498 100644 --- a/target/linux/generic/pending-5.4/103-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch +++ b/target/linux/generic/pending-5.4/103-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch @@ -25,7 +25,7 @@ Signed-off-by: Jason A. Donenfeld --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2043,7 +2043,8 @@ config CPU_MIPS32 +@@ -2041,7 +2041,8 @@ config CPU_MIPS32 config CPU_MIPS64 bool diff --git a/target/linux/generic/pending-5.4/300-mips_expose_boot_raw.patch b/target/linux/generic/pending-5.4/300-mips_expose_boot_raw.patch index e16e34f1f..b8a9018b0 100644 --- a/target/linux/generic/pending-5.4/300-mips_expose_boot_raw.patch +++ b/target/linux/generic/pending-5.4/300-mips_expose_boot_raw.patch @@ -9,7 +9,7 @@ Acked-by: Rob Landley --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1074,9 +1074,6 @@ config FW_ARC +@@ -1072,9 +1072,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -19,7 +19,7 @@ Acked-by: Rob Landley config CEVT_BCM1480 bool -@@ -3050,6 +3047,18 @@ choice +@@ -3048,6 +3045,18 @@ choice bool "Extend builtin kernel arguments with bootloader arguments" endchoice diff --git a/target/linux/generic/pending-5.4/630-packet_socket_type.patch b/target/linux/generic/pending-5.4/630-packet_socket_type.patch index d9bfda130..df1de5a6a 100644 --- a/target/linux/generic/pending-5.4/630-packet_socket_type.patch +++ b/target/linux/generic/pending-5.4/630-packet_socket_type.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1797,6 +1797,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1801,6 +1801,7 @@ static int packet_rcv_spkt(struct sk_buf { struct sock *sk; struct sockaddr_pkt *spkt; @@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau /* * When we registered the protocol we saved the socket in the data -@@ -1804,6 +1805,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1808,6 +1809,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau /* * Yank back the headers [hope the device set this -@@ -1816,7 +1818,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1820,7 +1822,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -2054,12 +2056,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -2058,12 +2060,12 @@ static int packet_rcv(struct sk_buff *sk unsigned int snaplen, res; bool is_drop_n_account = false; @@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2185,12 +2187,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2189,12 +2191,12 @@ static int tpacket_rcv(struct sk_buff *s BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3289,6 +3291,7 @@ static int packet_create(struct net *net +@@ -3293,6 +3295,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3924,6 +3927,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3930,6 +3933,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3980,6 +3993,13 @@ static int packet_getsockopt(struct sock +@@ -3986,6 +3999,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch b/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch index 02600ebed..ab9424833 100644 --- a/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch +++ b/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch @@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso +MODULE_ALIAS("nf-flow-table-hw"); --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -5743,6 +5743,13 @@ static int nf_tables_flowtable_parse_hoo +@@ -5748,6 +5748,13 @@ static int nf_tables_flowtable_parse_hoo if (err < 0) return err; @@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL); if (!ops) return -ENOMEM; -@@ -5873,10 +5880,19 @@ static int nf_tables_newflowtable(struct +@@ -5878,10 +5885,19 @@ static int nf_tables_newflowtable(struct } flowtable->data.type = type; @@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK], flowtable); if (err < 0) -@@ -6002,7 +6018,8 @@ static int nf_tables_fill_flowtable_info +@@ -6007,7 +6023,8 @@ static int nf_tables_fill_flowtable_info nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) || nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) || nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle), diff --git a/target/linux/generic/pending-5.4/643-net-bridge-support-hardware-flow-table-offload.patch b/target/linux/generic/pending-5.4/643-net-bridge-support-hardware-flow-table-offload.patch index fcfac748c..d47482dc6 100644 --- a/target/linux/generic/pending-5.4/643-net-bridge-support-hardware-flow-table-offload.patch +++ b/target/linux/generic/pending-5.4/643-net-bridge-support-hardware-flow-table-offload.patch @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau #include #include "br_private.h" -@@ -384,6 +388,28 @@ static const struct ethtool_ops br_ethto +@@ -382,6 +386,28 @@ static const struct ethtool_ops br_ethto .get_link = ethtool_op_get_link, }; @@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau static const struct net_device_ops br_netdev_ops = { .ndo_open = br_dev_open, .ndo_stop = br_dev_stop, -@@ -412,6 +438,9 @@ static const struct net_device_ops br_ne +@@ -410,6 +436,9 @@ static const struct net_device_ops br_ne .ndo_bridge_setlink = br_setlink, .ndo_bridge_dellink = br_dellink, .ndo_features_check = passthru_features_check, diff --git a/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 9795a99bb..242764534 100644 --- a/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -1927,6 +1927,8 @@ struct net_device { +@@ -1931,6 +1931,8 @@ struct net_device { struct netdev_hw_addr_list mc; struct netdev_hw_addr_list dev_addrs; @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5541,6 +5541,9 @@ static enum gro_result dev_gro_receive(s +@@ -5501,6 +5501,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -7484,6 +7487,48 @@ static void __netdev_adjacent_dev_unlink +@@ -7303,6 +7306,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -7534,6 +7579,7 @@ static int __netdev_upper_dev_link(struc +@@ -7353,6 +7398,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -7627,6 +7673,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -7446,6 +7492,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -8357,6 +8404,7 @@ int dev_set_mac_address(struct net_devic +@@ -8176,6 +8223,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch index 0e97f2140..94eb518a5 100644 --- a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch +++ b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau static int netif_rx_internal(struct sk_buff *skb); static int call_netdevice_notifiers_info(unsigned long val, -@@ -5940,6 +5941,11 @@ void __napi_schedule(struct napi_struct +@@ -5943,6 +5944,11 @@ void __napi_schedule(struct napi_struct { unsigned long flags; @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); -@@ -5991,6 +5997,10 @@ EXPORT_SYMBOL(napi_schedule_prep); +@@ -5994,6 +6000,10 @@ EXPORT_SYMBOL(napi_schedule_prep); */ void __napi_schedule_irqoff(struct napi_struct *n) { @@ -118,7 +118,7 @@ Signed-off-by: Felix Fietkau if (!IS_ENABLED(CONFIG_PREEMPT_RT)) ____napi_schedule(this_cpu_ptr(&softnet_data), n); else -@@ -6255,9 +6265,89 @@ static void init_gro_hash(struct napi_st +@@ -6258,9 +6268,89 @@ static void init_gro_hash(struct napi_st napi->gro_bitmask = 0; } @@ -208,7 +208,7 @@ Signed-off-by: Felix Fietkau INIT_LIST_HEAD(&napi->poll_list); hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED); napi->timer.function = napi_watchdog; -@@ -6274,6 +6364,7 @@ void netif_napi_add(struct net_device *d +@@ -6277,6 +6367,7 @@ void netif_napi_add(struct net_device *d #ifdef CONFIG_NETPOLL napi->poll_owner = -1; #endif @@ -216,7 +216,7 @@ Signed-off-by: Felix Fietkau set_bit(NAPI_STATE_SCHED, &napi->state); set_bit(NAPI_STATE_NPSVC, &napi->state); list_add_rcu(&napi->dev_list, &dev->napi_list); -@@ -6314,6 +6405,7 @@ static void flush_gro_hash(struct napi_s +@@ -6317,6 +6408,7 @@ static void flush_gro_hash(struct napi_s void netif_napi_del(struct napi_struct *napi) { might_sleep(); @@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau if (napi_hash_del(napi)) synchronize_net(); list_del_init(&napi->dev_list); -@@ -6326,50 +6418,18 @@ EXPORT_SYMBOL(netif_napi_del); +@@ -6329,50 +6421,18 @@ EXPORT_SYMBOL(netif_napi_del); static int napi_poll(struct napi_struct *n, struct list_head *repoll) { @@ -279,7 +279,7 @@ Signed-off-by: Felix Fietkau /* Some drivers may have called napi_schedule * prior to exhausting their budget. -@@ -10349,6 +10409,10 @@ static int __init net_dev_init(void) +@@ -10352,6 +10412,10 @@ static int __init net_dev_init(void) sd->backlog.weight = weight_p; } diff --git a/target/linux/generic/pending-5.4/746-net-phylink-re-split-__phylink_connect_phy.patch b/target/linux/generic/pending-5.4/746-net-phylink-re-split-__phylink_connect_phy.patch index d547a18d6..b0b63761a 100644 --- a/target/linux/generic/pending-5.4/746-net-phylink-re-split-__phylink_connect_phy.patch +++ b/target/linux/generic/pending-5.4/746-net-phylink-re-split-__phylink_connect_phy.patch @@ -47,7 +47,7 @@ Signed-off-by: Russell King } /** -@@ -806,13 +796,23 @@ static int __phylink_connect_phy(struct +@@ -803,13 +796,23 @@ static int __phylink_connect_phy(struct */ int phylink_connect_phy(struct phylink *pl, struct phy_device *phy) { diff --git a/target/linux/generic/pending-5.4/750-net-phylink-delay-MAC-configuration-for-copper-SFP-m.patch b/target/linux/generic/pending-5.4/750-net-phylink-delay-MAC-configuration-for-copper-SFP-m.patch index 667170a39..9073e598a 100644 --- a/target/linux/generic/pending-5.4/750-net-phylink-delay-MAC-configuration-for-copper-SFP-m.patch +++ b/target/linux/generic/pending-5.4/750-net-phylink-delay-MAC-configuration-for-copper-SFP-m.patch @@ -55,7 +55,7 @@ Signed-off-by: David S. Miller if (changed && !test_bit(PHYLINK_DISABLE_STOPPED, &pl->phylink_disable_state)) -@@ -1775,15 +1778,20 @@ static int phylink_sfp_module_insert(voi +@@ -1770,15 +1778,20 @@ static int phylink_sfp_module_insert(voi const struct sfp_eeprom_id *id) { struct phylink *pl = upstream; diff --git a/target/linux/generic/pending-5.4/834-ledtrig-libata.patch b/target/linux/generic/pending-5.4/834-ledtrig-libata.patch index 2c876ae55..2fbbb5461 100644 --- a/target/linux/generic/pending-5.4/834-ledtrig-libata.patch +++ b/target/linux/generic/pending-5.4/834-ledtrig-libata.patch @@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle /** * ata_build_rw_tf - Build ATA taskfile for given read/write request * @tf: Target ATA taskfile -@@ -5151,6 +5164,9 @@ struct ata_queued_cmd *ata_qc_new_init(s +@@ -5152,6 +5165,9 @@ struct ata_queued_cmd *ata_qc_new_init(s if (tag < 0) return NULL; } @@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle qc = __ata_qc_from_tag(ap, tag); qc->tag = qc->hw_tag = tag; -@@ -6087,6 +6103,9 @@ struct ata_port *ata_port_alloc(struct a +@@ -6088,6 +6104,9 @@ struct ata_port *ata_port_alloc(struct a ap->stats.unhandled_irq = 1; ap->stats.idle_irq = 1; #endif @@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle ata_sff_port_init(ap); return ap; -@@ -6122,6 +6141,12 @@ static void ata_host_release(struct kref +@@ -6123,6 +6142,12 @@ static void ata_host_release(struct kref kfree(ap->pmp_link); kfree(ap->slave_link); @@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle kfree(ap); host->ports[i] = NULL; } -@@ -6585,7 +6610,23 @@ int ata_host_register(struct ata_host *h +@@ -6586,7 +6611,23 @@ int ata_host_register(struct ata_host *h host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->local_port_no = i + 1; } diff --git a/target/linux/generic/pending-5.4/920-mangle_bootargs.patch b/target/linux/generic/pending-5.4/920-mangle_bootargs.patch index 83db92609..09782e935 100644 --- a/target/linux/generic/pending-5.4/920-mangle_bootargs.patch +++ b/target/linux/generic/pending-5.4/920-mangle_bootargs.patch @@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz --- a/init/Kconfig +++ b/init/Kconfig -@@ -1665,6 +1665,15 @@ config EMBEDDED +@@ -1675,6 +1675,15 @@ config EMBEDDED an embedded system so certain expert options are available for configuration. diff --git a/target/linux/ipq806x/patches-5.4/099-1-mtd-nand-raw-qcom_nandc-add-boot_layout_mode-support.patch b/target/linux/ipq806x/patches-5.4/099-1-mtd-nand-raw-qcom_nandc-add-boot_layout_mode-support.patch index 6106dfb8d..60b430afc 100644 --- a/target/linux/ipq806x/patches-5.4/099-1-mtd-nand-raw-qcom_nandc-add-boot_layout_mode-support.patch +++ b/target/linux/ipq806x/patches-5.4/099-1-mtd-nand-raw-qcom_nandc-add-boot_layout_mode-support.patch @@ -16,7 +16,7 @@ Signed-off-by: Ansuel Smith --- a/drivers/mtd/nand/raw/qcom_nandc.c +++ b/drivers/mtd/nand/raw/qcom_nandc.c -@@ -159,6 +159,11 @@ +@@ -158,6 +158,11 @@ /* NAND_CTRL bits */ #define BAM_MODE_EN BIT(0) @@ -28,7 +28,7 @@ Signed-off-by: Ansuel Smith /* * the NAND controller performs reads/writes with ECC in 516 byte chunks. * the driver calls the chunks 'step' or 'codeword' interchangeably -@@ -430,6 +435,13 @@ struct qcom_nand_controller { +@@ -429,6 +434,13 @@ struct qcom_nand_controller { * @cfg0, cfg1, cfg0_raw..: NANDc register configurations needed for * ecc/non-ecc mode for the current nand flash * device @@ -42,7 +42,7 @@ Signed-off-by: Ansuel Smith */ struct qcom_nand_host { struct nand_chip chip; -@@ -452,6 +464,9 @@ struct qcom_nand_host { +@@ -451,6 +463,9 @@ struct qcom_nand_host { u32 ecc_bch_cfg; u32 clrflashstatus; u32 clrreadstatus; @@ -52,7 +52,7 @@ Signed-off-by: Ansuel Smith }; /* -@@ -460,12 +475,14 @@ struct qcom_nand_host { +@@ -459,12 +474,14 @@ struct qcom_nand_host { * @ecc_modes - ecc mode for NAND * @is_bam - whether NAND controller is using BAM * @is_qpic - whether NAND CTRL is part of qpic IP @@ -67,7 +67,7 @@ Signed-off-by: Ansuel Smith u32 dev_cmd_reg_start; }; -@@ -1604,7 +1621,7 @@ qcom_nandc_read_cw_raw(struct mtd_info * +@@ -1603,7 +1620,7 @@ qcom_nandc_read_cw_raw(struct mtd_info * data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); oob_size1 = host->bbm_size; @@ -76,7 +76,7 @@ Signed-off-by: Ansuel Smith data_size2 = ecc->size - data_size1 - ((ecc->steps - 1) * 4); oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw + -@@ -1685,7 +1702,7 @@ check_for_erased_page(struct qcom_nand_h +@@ -1684,7 +1701,7 @@ check_for_erased_page(struct qcom_nand_h } for_each_set_bit(cw, &uncorrectable_cws, ecc->steps) { @@ -85,7 +85,7 @@ Signed-off-by: Ansuel Smith data_size = ecc->size - ((ecc->steps - 1) * 4); oob_size = (ecc->steps * 4) + host->ecc_bytes_hw; } else { -@@ -1844,7 +1861,7 @@ static int read_page_ecc(struct qcom_nan +@@ -1843,7 +1860,7 @@ static int read_page_ecc(struct qcom_nan for (i = 0; i < ecc->steps; i++) { int data_size, oob_size; @@ -94,7 +94,7 @@ Signed-off-by: Ansuel Smith data_size = ecc->size - ((ecc->steps - 1) << 2); oob_size = (ecc->steps << 2) + host->ecc_bytes_hw + host->spare_bytes; -@@ -1941,6 +1958,30 @@ static int copy_last_cw(struct qcom_nand +@@ -1940,6 +1957,30 @@ static int copy_last_cw(struct qcom_nand return ret; } @@ -125,7 +125,7 @@ Signed-off-by: Ansuel Smith /* implements ecc->read_page() */ static int qcom_nandc_read_page(struct nand_chip *chip, uint8_t *buf, int oob_required, int page) -@@ -1949,6 +1990,9 @@ static int qcom_nandc_read_page(struct n +@@ -1948,6 +1989,9 @@ static int qcom_nandc_read_page(struct n struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip); u8 *data_buf, *oob_buf = NULL; @@ -135,7 +135,7 @@ Signed-off-by: Ansuel Smith nand_read_page_op(chip, page, 0, NULL, 0); data_buf = buf; oob_buf = oob_required ? chip->oob_poi : NULL; -@@ -1968,6 +2012,9 @@ static int qcom_nandc_read_page_raw(stru +@@ -1967,6 +2011,9 @@ static int qcom_nandc_read_page_raw(stru int cw, ret; u8 *data_buf = buf, *oob_buf = chip->oob_poi; @@ -145,7 +145,7 @@ Signed-off-by: Ansuel Smith for (cw = 0; cw < ecc->steps; cw++) { ret = qcom_nandc_read_cw_raw(mtd, chip, data_buf, oob_buf, page, cw); -@@ -1988,6 +2035,9 @@ static int qcom_nandc_read_oob(struct na +@@ -1987,6 +2034,9 @@ static int qcom_nandc_read_oob(struct na struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip); struct nand_ecc_ctrl *ecc = &chip->ecc; @@ -155,7 +155,7 @@ Signed-off-by: Ansuel Smith clear_read_regs(nandc); clear_bam_transaction(nandc); -@@ -2008,6 +2058,9 @@ static int qcom_nandc_write_page(struct +@@ -2007,6 +2057,9 @@ static int qcom_nandc_write_page(struct u8 *data_buf, *oob_buf; int i, ret; @@ -165,7 +165,7 @@ Signed-off-by: Ansuel Smith nand_prog_page_begin_op(chip, page, 0, NULL, 0); clear_read_regs(nandc); -@@ -2023,7 +2076,7 @@ static int qcom_nandc_write_page(struct +@@ -2022,7 +2075,7 @@ static int qcom_nandc_write_page(struct for (i = 0; i < ecc->steps; i++) { int data_size, oob_size; @@ -174,7 +174,7 @@ Signed-off-by: Ansuel Smith data_size = ecc->size - ((ecc->steps - 1) << 2); oob_size = (ecc->steps << 2) + host->ecc_bytes_hw + host->spare_bytes; -@@ -2080,6 +2133,9 @@ static int qcom_nandc_write_page_raw(str +@@ -2079,6 +2132,9 @@ static int qcom_nandc_write_page_raw(str u8 *data_buf, *oob_buf; int i, ret; @@ -184,7 +184,7 @@ Signed-off-by: Ansuel Smith nand_prog_page_begin_op(chip, page, 0, NULL, 0); clear_read_regs(nandc); clear_bam_transaction(nandc); -@@ -2098,7 +2154,7 @@ static int qcom_nandc_write_page_raw(str +@@ -2097,7 +2153,7 @@ static int qcom_nandc_write_page_raw(str data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); oob_size1 = host->bbm_size; @@ -193,7 +193,7 @@ Signed-off-by: Ansuel Smith data_size2 = ecc->size - data_size1 - ((ecc->steps - 1) << 2); oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw + -@@ -2158,6 +2214,9 @@ static int qcom_nandc_write_oob(struct n +@@ -2157,6 +2213,9 @@ static int qcom_nandc_write_oob(struct n int data_size, oob_size; int ret; @@ -203,7 +203,7 @@ Signed-off-by: Ansuel Smith host->use_ecc = true; clear_bam_transaction(nandc); -@@ -2806,6 +2865,7 @@ static int qcom_nand_host_init_and_regis +@@ -2781,6 +2840,7 @@ static int qcom_nand_host_init_and_regis struct nand_chip *chip = &host->chip; struct mtd_info *mtd = nand_to_mtd(chip); struct device *dev = nandc->dev; @@ -211,7 +211,7 @@ Signed-off-by: Ansuel Smith int ret; ret = of_property_read_u32(dn, "reg", &host->cs); -@@ -2866,6 +2926,17 @@ static int qcom_nand_host_init_and_regis +@@ -2841,6 +2901,17 @@ static int qcom_nand_host_init_and_regis if (ret) nand_cleanup(chip); @@ -229,7 +229,7 @@ Signed-off-by: Ansuel Smith return ret; } -@@ -3032,6 +3103,7 @@ static int qcom_nandc_remove(struct plat +@@ -3001,6 +3072,7 @@ static int qcom_nandc_remove(struct plat static const struct qcom_nandc_props ipq806x_nandc_props = { .ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT), .is_bam = false, diff --git a/target/linux/ipq806x/patches-5.4/999-03a-qca-nss-ecm-support.patch b/target/linux/ipq806x/patches-5.4/999-03a-qca-nss-ecm-support.patch index 0d6df44c4..0a0cb22d9 100644 --- a/target/linux/ipq806x/patches-5.4/999-03a-qca-nss-ecm-support.patch +++ b/target/linux/ipq806x/patches-5.4/999-03a-qca-nss-ecm-support.patch @@ -135,7 +135,7 @@ unsigned short gflags; unsigned short padded; -@@ -2526,6 +2541,10 @@ enum netdev_cmd { +@@ -2527,6 +2542,10 @@ enum netdev_cmd { NETDEV_CVLAN_FILTER_DROP_INFO, NETDEV_SVLAN_FILTER_PUSH_INFO, NETDEV_SVLAN_FILTER_DROP_INFO, @@ -514,7 +514,7 @@ if (bond_is_lb(bond)) bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP); } else { -@@ -1379,6 +1396,7 @@ int bond_enslave(struct net_device *bond +@@ -1407,6 +1425,7 @@ int bond_enslave(struct net_device *bond const struct net_device_ops *slave_ops = slave_dev->netdev_ops; struct slave *new_slave = NULL, *prev_slave; struct sockaddr_storage ss; @@ -522,7 +522,7 @@ int link_reporting; int res = 0, i; -@@ -1780,6 +1798,13 @@ int bond_enslave(struct net_device *bond +@@ -1806,6 +1825,13 @@ int bond_enslave(struct net_device *bond if (bond_mode_can_use_xmit_hash(bond)) bond_update_slave_arr(bond, NULL); @@ -536,7 +536,7 @@ slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n", bond_is_active_slave(new_slave) ? "an active" : "a backup", -@@ -1852,6 +1877,14 @@ err_undo_flags: +@@ -1878,6 +1904,14 @@ err_undo_flags: } } @@ -551,7 +551,7 @@ return res; } -@@ -1873,6 +1906,7 @@ static int __bond_release_one(struct net +@@ -1899,6 +1933,7 @@ static int __bond_release_one(struct net struct bonding *bond = netdev_priv(bond_dev); struct slave *slave, *oldcurrent; struct sockaddr_storage ss; @@ -559,7 +559,7 @@ int old_flags = bond_dev->flags; netdev_features_t old_features = bond_dev->features; -@@ -1895,6 +1929,14 @@ static int __bond_release_one(struct net +@@ -1921,6 +1956,14 @@ static int __bond_release_one(struct net bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW); @@ -574,7 +574,7 @@ bond_sysfs_slave_del(slave); /* recompute stats just before removing the slave */ -@@ -2190,6 +2232,10 @@ static void bond_miimon_commit(struct bo +@@ -2217,6 +2260,10 @@ static void bond_miimon_commit(struct bo { struct list_head *iter; struct slave *slave, *primary; @@ -585,7 +585,7 @@ bond_for_each_slave(bond, slave, iter) { switch (slave->link_new_state) { -@@ -2233,6 +2279,12 @@ static void bond_miimon_commit(struct bo +@@ -2260,6 +2307,12 @@ static void bond_miimon_commit(struct bo bond_miimon_link_change(bond, slave, BOND_LINK_UP); @@ -598,7 +598,7 @@ if (!bond->curr_active_slave || slave == primary) goto do_failover; -@@ -2274,6 +2326,15 @@ do_failover: +@@ -2301,6 +2354,15 @@ do_failover: } bond_set_carrier(bond); @@ -614,7 +614,7 @@ } /* bond_mii_monitor -@@ -4327,6 +4389,11 @@ static void bond_destructor(struct net_d +@@ -4383,6 +4445,11 @@ static void bond_destructor(struct net_d struct bonding *bond = netdev_priv(bond_dev); if (bond->wq) destroy_workqueue(bond->wq); @@ -626,7 +626,7 @@ } void bond_setup(struct net_device *bond_dev) -@@ -4872,6 +4939,16 @@ int bond_create(struct net *net, const c +@@ -4932,6 +4999,16 @@ int bond_create(struct net *net, const c bond_work_init_all(bond); rtnl_unlock(); @@ -643,7 +643,7 @@ return 0; } -@@ -4967,6 +5028,203 @@ static void __exit bonding_exit(void) +@@ -5027,6 +5104,203 @@ static void __exit bonding_exit(void) #endif } @@ -1284,7 +1284,7 @@ struct fib_table *tb; --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c -@@ -7173,3 +7173,35 @@ void addrconf_cleanup(void) +@@ -7183,3 +7183,35 @@ void addrconf_cleanup(void) destroy_workqueue(addrconf_wq); } diff --git a/target/linux/ipq806x/patches-5.4/999-04-qca-nss-cfi-support.patch b/target/linux/ipq806x/patches-5.4/999-04-qca-nss-cfi-support.patch index 649621c7e..1a9215f38 100644 --- a/target/linux/ipq806x/patches-5.4/999-04-qca-nss-cfi-support.patch +++ b/target/linux/ipq806x/patches-5.4/999-04-qca-nss-cfi-support.patch @@ -1,5 +1,3 @@ -diff --git a/crypto/authenc.c b/crypto/authenc.c -index 3f0ed9402..17ce66bba 100644 --- a/crypto/authenc.c +++ b/crypto/authenc.c @@ -449,6 +449,8 @@ static int crypto_authenc_create(struct crypto_template *tmpl, @@ -11,8 +9,6 @@ index 3f0ed9402..17ce66bba 100644 inst->alg.base.cra_priority = enc->base.cra_priority * 10 + auth_base->cra_priority; inst->alg.base.cra_blocksize = enc->base.cra_blocksize; -diff --git a/include/linux/crypto.h b/include/linux/crypto.h -index 19ea3a371..1463e824c 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -104,6 +104,11 @@ @@ -27,11 +23,9 @@ index 19ea3a371..1463e824c 100644 /* * Transform masks and values (for crt_flags). */ -diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c -index 5c9677640..23b3a9e91 100644 --- a/net/ipv4/esp4.c +++ b/net/ipv4/esp4.c -@@ -488,6 +488,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb) +@@ -483,6 +483,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb) struct ip_esp_hdr *esph; struct crypto_aead *aead; struct esp_info esp; @@ -39,7 +33,7 @@ index 5c9677640..23b3a9e91 100644 esp.inplace = true; -@@ -499,6 +500,11 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb) +@@ -494,6 +495,11 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb) aead = x->data; alen = crypto_aead_authsize(aead); @@ -51,7 +45,7 @@ index 5c9677640..23b3a9e91 100644 esp.tfclen = 0; if (x->tfcpad) { struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb); -@@ -708,6 +714,7 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb) +@@ -703,6 +709,7 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb) u8 *iv; struct scatterlist *sg; int err = -EINVAL; @@ -59,7 +53,7 @@ index 5c9677640..23b3a9e91 100644 if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen)) goto out; -@@ -715,6 +722,12 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb) +@@ -710,6 +717,12 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb) if (elen <= 0) goto out; @@ -72,8 +66,6 @@ index 5c9677640..23b3a9e91 100644 assoclen = sizeof(struct ip_esp_hdr); seqhilen = 0; -diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c -index a3b403ba8..019bea284 100644 --- a/net/ipv6/esp6.c +++ b/net/ipv6/esp6.c @@ -429,6 +429,7 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb) diff --git a/target/linux/ipq806x/patches-5.4/999-08-qca-mcs-support.patch b/target/linux/ipq806x/patches-5.4/999-08-qca-mcs-support.patch index e9f98b17c..0d4d22019 100644 --- a/target/linux/ipq806x/patches-5.4/999-08-qca-mcs-support.patch +++ b/target/linux/ipq806x/patches-5.4/999-08-qca-mcs-support.patch @@ -88,7 +88,7 @@ MODULE_LICENSE("GPL"); --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c -@@ -85,6 +85,12 @@ netdev_tx_t br_dev_xmit(struct sk_buff * +@@ -87,6 +87,12 @@ netdev_tx_t br_dev_xmit(struct sk_buff * if (is_broadcast_ether_addr(dest)) { br_flood(br, skb, BR_PKT_BROADCAST, false, true); } else if (is_multicast_ether_addr(dest)) { diff --git a/target/linux/layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch b/target/linux/layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch index c09efca57..e2da01fb0 100644 --- a/target/linux/layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch +++ b/target/linux/layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch @@ -63,7 +63,7 @@ Signed-off-by: Roy Pledge * address space as memory. Needed when the kernel wants to execute --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c -@@ -314,6 +314,13 @@ static struct mem_type mem_types[] __ro_ +@@ -316,6 +316,13 @@ static struct mem_type mem_types[] __ro_ .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE, .domain = DOMAIN_KERNEL, }, @@ -77,7 +77,7 @@ Signed-off-by: Roy Pledge [MT_ROM] = { .prot_sect = PMD_TYPE_SECT, .domain = DOMAIN_KERNEL, -@@ -650,6 +657,7 @@ static void __init build_mem_type_table( +@@ -652,6 +659,7 @@ static void __init build_mem_type_table( } kern_pgprot |= PTE_EXT_AF; vecs_pgprot |= PTE_EXT_AF; @@ -85,7 +85,7 @@ Signed-off-by: Roy Pledge /* * Set PXN for user mappings -@@ -678,6 +686,7 @@ static void __init build_mem_type_table( +@@ -680,6 +688,7 @@ static void __init build_mem_type_table( mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot; mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd; mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot; diff --git a/target/linux/layerscape/patches-5.4/701-net-0380-net-phylink-add-support-for-polling-MAC-PCS.patch b/target/linux/layerscape/patches-5.4/701-net-0380-net-phylink-add-support-for-polling-MAC-PCS.patch index f9b97b3f4..938533da4 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0380-net-phylink-add-support-for-polling-MAC-PCS.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0380-net-phylink-add-support-for-polling-MAC-PCS.patch @@ -47,7 +47,7 @@ during v5.5-rc1. --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c -@@ -1008,7 +1008,8 @@ void phylink_start(struct phylink *pl) +@@ -1013,7 +1013,8 @@ void phylink_start(struct phylink *pl) if (irq <= 0) mod_timer(&pl->link_poll, jiffies + HZ); } diff --git a/target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch b/target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch index 9e020c3c6..d26148356 100644 --- a/target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch +++ b/target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch @@ -439,7 +439,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5. IRQF_SHARED, dev_name(dev), pdev); --- a/sound/soc/xilinx/xlnx_formatter_pcm.c +++ b/sound/soc/xilinx/xlnx_formatter_pcm.c -@@ -613,6 +613,7 @@ static int xlnx_formatter_pcm_probe(stru +@@ -634,6 +634,7 @@ static int xlnx_formatter_pcm_probe(stru aud_drv_data->mm2s_irq = platform_get_irq_byname(pdev, "irq_mm2s"); if (aud_drv_data->mm2s_irq < 0) { @@ -447,7 +447,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5. ret = aud_drv_data->mm2s_irq; goto clk_err; } -@@ -639,6 +640,7 @@ static int xlnx_formatter_pcm_probe(stru +@@ -660,6 +661,7 @@ static int xlnx_formatter_pcm_probe(stru aud_drv_data->s2mm_irq = platform_get_irq_byname(pdev, "irq_s2mm"); if (aud_drv_data->s2mm_irq < 0) { diff --git a/target/linux/layerscape/patches-5.4/814-qe-0005-QE-remove-PPCisms-for-QE.patch b/target/linux/layerscape/patches-5.4/814-qe-0005-QE-remove-PPCisms-for-QE.patch index 496cd3cac..1d83b124d 100644 --- a/target/linux/layerscape/patches-5.4/814-qe-0005-QE-remove-PPCisms-for-QE.patch +++ b/target/linux/layerscape/patches-5.4/814-qe-0005-QE-remove-PPCisms-for-QE.patch @@ -210,7 +210,7 @@ Signed-off-by: Zhao Qiang #undef DEBUG -@@ -57,16 +55,16 @@ void __par_io_config_pin(struct qe_pio_r +@@ -59,16 +57,16 @@ void __par_io_config_pin(struct qe_pio_r pin_mask1bit = (u32) (1 << (QE_PIO_PINS - (pin + 1))); /* Set open drain, if required */ @@ -232,7 +232,7 @@ Signed-off-by: Zhao Qiang /* get all bits mask for 2 bit per port */ pin_mask2bits = (u32) (0x3 << (QE_PIO_PINS - -@@ -78,34 +76,30 @@ void __par_io_config_pin(struct qe_pio_r +@@ -80,34 +78,30 @@ void __par_io_config_pin(struct qe_pio_r /* clear and set 2 bits mask */ if (pin > (QE_PIO_PINS / 2) - 1) { @@ -277,7 +277,7 @@ Signed-off-by: Zhao Qiang } } EXPORT_SYMBOL(__par_io_config_pin); -@@ -133,12 +127,12 @@ int par_io_data_set(u8 port, u8 pin, u8 +@@ -135,12 +129,12 @@ int par_io_data_set(u8 port, u8 pin, u8 /* calculate pin location */ pin_mask = (u32) (1 << (QE_PIO_PINS - 1 - pin)); diff --git a/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch b/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch index fc4c853cb..37fee125d 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch @@ -54,7 +54,7 @@ Signed-off-by: Peter Chen * All 3.1 IP version constants are greater than the 3.0 IP --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -3655,6 +3655,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) +@@ -3670,6 +3670,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) dwc->gadget.sg_supported = true; dwc->gadget.name = "dwc3-gadget"; dwc->gadget.lpm_capable = true; diff --git a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch index 8361a8771..8a67488dd 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch @@ -20,7 +20,7 @@ Signed-off-by: Peter Chen --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c -@@ -2111,6 +2111,140 @@ int usb_hcd_get_frame_number (struct usb +@@ -2125,6 +2125,140 @@ int usb_hcd_get_frame_number (struct usb } /*-------------------------------------------------------------------------*/ diff --git a/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch b/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch index 4f4381c9a..6b90c6567 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch @@ -174,7 +174,7 @@ Signed-off-by: Peter Chen * bursts that are required to move all packets in this TD. Only SuperSpeed --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -5393,6 +5393,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5403,6 +5403,7 @@ static const struct hc_driver xhci_hc_dr .disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout, .find_raw_port_number = xhci_find_raw_port_number, .clear_tt_buffer_complete = xhci_clear_tt_buffer_complete, diff --git a/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch b/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch index 594756351..bcf1bc0a9 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch @@ -24,7 +24,7 @@ Signed-off-by: Peter Chen --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -5414,6 +5414,8 @@ void xhci_init_driver(struct hc_driver * +@@ -5424,6 +5424,8 @@ void xhci_init_driver(struct hc_driver * drv->check_bandwidth = over->check_bandwidth; if (over->reset_bandwidth) drv->reset_bandwidth = over->reset_bandwidth; diff --git a/target/linux/realtek/patches-5.4/704-drivers-net-phy-eee-support-for-rtl838x.patch b/target/linux/realtek/patches-5.4/704-drivers-net-phy-eee-support-for-rtl838x.patch index 7743147ea..de2867502 100644 --- a/target/linux/realtek/patches-5.4/704-drivers-net-phy-eee-support-for-rtl838x.patch +++ b/target/linux/realtek/patches-5.4/704-drivers-net-phy-eee-support-for-rtl838x.patch @@ -1,6 +1,6 @@ --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c -@@ -1242,6 +1242,11 @@ int phylink_ethtool_ksettings_set(struct +@@ -1247,6 +1247,11 @@ int phylink_ethtool_ksettings_set(struct /* If we have a PHY, configure the phy */ if (pl->phydev) { @@ -12,7 +12,7 @@ ret = phy_ethtool_ksettings_set(pl->phydev, &our_kset); if (ret) return ret; -@@ -1420,8 +1425,11 @@ int phylink_ethtool_get_eee(struct phyli +@@ -1425,8 +1430,11 @@ int phylink_ethtool_get_eee(struct phyli ASSERT_RTNL(); @@ -25,7 +25,7 @@ return ret; } -@@ -1438,9 +1446,11 @@ int phylink_ethtool_set_eee(struct phyli +@@ -1443,9 +1451,11 @@ int phylink_ethtool_set_eee(struct phyli ASSERT_RTNL(); diff --git a/target/linux/rockchip/patches-5.4/601-net-phy-Add-driver-for-Motorcomm-YT8531-PHYs.patch b/target/linux/rockchip/patches-5.4/601-net-phy-Add-driver-for-Motorcomm-YT8531-PHYs.patch index c870eb73c..d90bf963b 100644 --- a/target/linux/rockchip/patches-5.4/601-net-phy-Add-driver-for-Motorcomm-YT8531-PHYs.patch +++ b/target/linux/rockchip/patches-5.4/601-net-phy-Add-driver-for-Motorcomm-YT8531-PHYs.patch @@ -10,8 +10,6 @@ Subject: [PATCH] net: phy: Add driver for Motorcomm YT8531(S) PHYs include/linux/motorcomm_phy.h | 5 + 4 files changed, 350 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c -index 8dc4def..bcd46ca 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -112,6 +112,10 @@ static void stmmac_exit_fs(struct net_device *dev); @@ -117,8 +115,6 @@ index 8dc4def..bcd46ca 100644 ret = register_netdev(ndev); if (ret) { -diff --git a/drivers/net/phy/motorcomm.c b/drivers/net/phy/motorcomm.c -index 17a4f6c..e37dfb9 100644 --- a/drivers/net/phy/motorcomm.c +++ b/drivers/net/phy/motorcomm.c @@ -26,6 +26,13 @@ @@ -337,8 +333,6 @@ index 17a4f6c..e37dfb9 100644 { } }; -diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c -index 950277e..3a35040 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -31,6 +31,7 @@ @@ -450,8 +444,6 @@ index 950277e..3a35040 100644 /* If the phy_id is mostly Fs, there is no device there */ if ((phy_id & 0x1fffffff) == 0x1fffffff) return ERR_PTR(-ENODEV); -diff --git a/include/linux/motorcomm_phy.h b/include/linux/motorcomm_phy.h -index facce6d..23cccca 100644 --- a/include/linux/motorcomm_phy.h +++ b/include/linux/motorcomm_phy.h @@ -14,6 +14,8 @@ diff --git a/target/linux/x86/patches-5.4/500-backport-igc-5.15-driver.patch b/target/linux/x86/patches-5.4/500-backport-igc-5.15-driver.patch index d4075f8d1..704268901 100644 --- a/target/linux/x86/patches-5.4/500-backport-igc-5.15-driver.patch +++ b/target/linux/x86/patches-5.4/500-backport-igc-5.15-driver.patch @@ -8345,16 +8345,6 @@ ret_val = phy->ops.write_reg(hw, (STANDARD_AN_REG_MASK << MMD_DEVADDR_SHIFT) | -@@ -734,8 +746,6 @@ - if (ret_val) - return ret_val; - ret_val = igc_write_phy_reg_mdic(hw, offset, data); -- if (ret_val) -- return ret_val; - hw->phy.ops.release(hw); - } else { - ret_val = igc_write_xmdio_reg(hw, (u16)offset, dev_addr, - --- a/drivers/net/ethernet/intel/igc/igc_ptp.c 1970-01-01 08:00:00.000000000 +0800 +++ b/drivers/net/ethernet/intel/igc/igc_ptp.c 2022-03-10 14:33:17.227212778 +0800 @@ -0,0 +1,620 @@