From fc101d4c5f61ebdbbbc385f57bd9021d611b3070 Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Wed, 30 Sep 2020 21:08:22 +0800 Subject: [PATCH] kernel: bump 4.19 to 4.19.148 Remove upstreamed: - generic/pending: 607-tcp_bbr-adapt-cwnd-based-on-ack-aggregation-estimation.patch Resolve conflicted: - generic/backport: 011-kbuild-export-SUBARCH.patch Refreshed all patches. Signed-off-by: CN_SZTL --- include/kernel-version.mk | 4 +- ...ngine-dw-dmac-add-protection-control.patch | 2 +- .../950-0039-Add-dwc_otg-driver.patch | 2 +- ...ce-quirks-for-Freeway-Airmouse-T3-an.patch | 4 +- ...low-limiting-ports-for-ehci-platform.patch | 2 +- .../011-kbuild-export-SUBARCH.patch | 10 +- ...-helper-for-MACs-which-support-asym-.patch | 2 +- ...-helper-for-set_pauseparam-for-Asym-.patch | 2 +- ...-net-phy-add-core-phylib-sfp-support.patch | 2 +- .../hack-4.19/207-disable-modorder.patch | 4 +- .../generic/hack-4.19/220-gc_sections.patch | 2 +- .../301-mips_image_cmdline_hack.patch | 2 +- .../702-phy_add_aneg_done_function.patch | 2 +- .../pending-4.19/110-ehci_hcd_ignore_oc.patch | 6 +- .../pending-4.19/201-extra_optimization.patch | 2 +- .../300-mips_expose_boot_raw.patch | 4 +- .../pending-4.19/304-mips_disable_fpu.patch | 2 +- ...ove-no-op-dma_map_ops-where-possible.patch | 10 +- .../601-add-kernel-imq-support.patch | 2 +- ...-based-on-ack-aggregation-estimation.patch | 405 ------------------ ...msm-use-sdhci_set_clock-instead-of-s.patch | 2 +- .../701-dts-ipq4019-add-mdio-node.patch | 2 +- ...702-dts-ipq4019-add-PHY-switch-nodes.patch | 2 +- ...ts-ipq4019-add-ethernet-essedma-node.patch | 2 +- .../lantiq/patches-4.19/0152-lantiq-VPE.patch | 2 +- 25 files changed, 38 insertions(+), 443 deletions(-) delete mode 100644 target/linux/generic/pending-4.19/607-tcp_bbr-adapt-cwnd-based-on-ack-aggregation-estimation.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index ae9decb7ba..07c12340be 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -8,11 +8,11 @@ endif LINUX_VERSION-4.9 = .237 LINUX_VERSION-4.14 = .199 -LINUX_VERSION-4.19 = .145 +LINUX_VERSION-4.19 = .148 LINUX_KERNEL_HASH-4.9.237 = 81ec5792c0ccdc244faff9dbb3d9c97857d9df4cb1f0c1c3db6bc4031faf861f LINUX_KERNEL_HASH-4.14.199 = 02f3432a262b3804745501f8c3c51d735133af48a39909df8b031d0b9653d4f9 -LINUX_KERNEL_HASH-4.19.145 = 17bc834ff8f15aee45b7ca7c8b9d43b6b03111a43eb7de75c808a04f4b3ff6b7 +LINUX_KERNEL_HASH-4.19.148 = 3308c74a93ce6d4e495fde35d1351061240a895f76a288248c343713bd63555b remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/target/linux/apm821xx/patches-4.19/010-dt-bindings-dmaengine-dw-dmac-add-protection-control.patch b/target/linux/apm821xx/patches-4.19/010-dt-bindings-dmaengine-dw-dmac-add-protection-control.patch index 572b8b6522..99c027204c 100644 --- a/target/linux/apm821xx/patches-4.19/010-dt-bindings-dmaengine-dw-dmac-add-protection-control.patch +++ b/target/linux/apm821xx/patches-4.19/010-dt-bindings-dmaengine-dw-dmac-add-protection-control.patch @@ -42,7 +42,7 @@ Signed-off-by: Vinod Koul --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -14075,9 +14075,11 @@ SYNOPSYS DESIGNWARE DMAC DRIVER +@@ -14084,9 +14084,11 @@ SYNOPSYS DESIGNWARE DMAC DRIVER M: Viresh Kumar R: Andy Shevchenko S: Maintained diff --git a/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch b/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch index e123f8b83d..092522a971 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch @@ -928,7 +928,7 @@ Fixes https://github.com/raspberrypi/linux/issues/2408 USB_PORT_FEAT_C_OVER_CURRENT); --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c -@@ -2000,6 +2000,85 @@ free_interfaces: +@@ -1993,6 +1993,85 @@ free_interfaces: if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) cp->string = usb_cache_string(dev, cp->desc.iConfiguration); diff --git a/target/linux/bcm27xx/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index 4a2213afda..e73f91ef36 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0636-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 -@@ -1209,6 +1212,9 @@ +@@ -1211,6 +1214,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 }, -@@ -178,6 +179,7 @@ static const struct hid_device_id hid_qu +@@ -180,6 +181,7 @@ static const struct hid_device_id hid_qu { HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET), HID_QUIRK_MULTI_INPUT }, { 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 }, diff --git a/target/linux/brcm63xx/patches-4.19/206-USB-EHCI-allow-limiting-ports-for-ehci-platform.patch b/target/linux/brcm63xx/patches-4.19/206-USB-EHCI-allow-limiting-ports-for-ehci-platform.patch index fcb016ecf9..9159b14d3c 100644 --- a/target/linux/brcm63xx/patches-4.19/206-USB-EHCI-allow-limiting-ports-for-ehci-platform.patch +++ b/target/linux/brcm63xx/patches-4.19/206-USB-EHCI-allow-limiting-ports-for-ehci-platform.patch @@ -21,7 +21,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c -@@ -665,6 +665,10 @@ int ehci_setup(struct usb_hcd *hcd) +@@ -666,6 +666,10 @@ int ehci_setup(struct usb_hcd *hcd) /* cache this readonly data; minimize chip reads */ ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params); diff --git a/target/linux/generic/backport-4.19/011-kbuild-export-SUBARCH.patch b/target/linux/generic/backport-4.19/011-kbuild-export-SUBARCH.patch index a42c720446..032c434e77 100644 --- a/target/linux/generic/backport-4.19/011-kbuild-export-SUBARCH.patch +++ b/target/linux/generic/backport-4.19/011-kbuild-export-SUBARCH.patch @@ -10,14 +10,14 @@ Signed-off-by: Felix Fietkau --- a/Makefile +++ b/Makefile -@@ -432,8 +432,8 @@ KBUILD_LDFLAGS := +@@ -450,8 +450,8 @@ KBUILD_LDFLAGS := GCC_PLUGINS_CFLAGS := CLANG_FLAGS := --export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC --export CPP AR NM STRIP OBJCOPY OBJDUMP KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS -+export ARCH SRCARCH SUBARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD -+export CC CPP AR NM STRIP OBJCOPY OBJDUMP KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS +-export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC +-export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE READELF KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS ++export ARCH SRCARCH SUBARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC ++export CC CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE READELF KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE export HOSTCXX KBUILD_HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS diff --git a/target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch b/target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch index 2f32c59ad2..f11e4ac571 100644 --- a/target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch +++ b/target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1783,6 +1783,19 @@ int phy_set_max_speed(struct phy_device +@@ -1784,6 +1784,19 @@ int phy_set_max_speed(struct phy_device } EXPORT_SYMBOL(phy_set_max_speed); diff --git a/target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch b/target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch index 99aba28818..280d7d635e 100644 --- a/target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch +++ b/target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1796,6 +1796,36 @@ void phy_support_asym_pause(struct phy_d +@@ -1797,6 +1797,36 @@ void phy_support_asym_pause(struct phy_d } EXPORT_SYMBOL(phy_support_asym_pause); diff --git a/target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch b/target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch index 1ffc545ad1..090576c7f2 100644 --- a/target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch +++ b/target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch @@ -130,7 +130,7 @@ Signed-off-by: Russell King /* Some Ethernet drivers try to connect to a PHY device before * calling register_netdevice() -> netdev_register_kobject() and * does the dev->dev.kobj initialization. Here we only check for -@@ -1956,6 +2019,9 @@ static int phy_remove(struct device *dev +@@ -1957,6 +2020,9 @@ static int phy_remove(struct device *dev phydev->state = PHY_DOWN; mutex_unlock(&phydev->lock); diff --git a/target/linux/generic/hack-4.19/207-disable-modorder.patch b/target/linux/generic/hack-4.19/207-disable-modorder.patch index cf38cd3245..b655660732 100644 --- a/target/linux/generic/hack-4.19/207-disable-modorder.patch +++ b/target/linux/generic/hack-4.19/207-disable-modorder.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau --- a/Makefile +++ b/Makefile -@@ -1240,7 +1240,6 @@ endif +@@ -1260,7 +1260,6 @@ endif PHONY += modules modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau @$(kecho) ' Building modules, stage 2.'; $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost -@@ -1269,7 +1268,6 @@ _modinst_: +@@ -1289,7 +1288,6 @@ _modinst_: rm -f $(MODLIB)/build ; \ ln -s $(CURDIR) $(MODLIB)/build ; \ fi diff --git a/target/linux/generic/hack-4.19/220-gc_sections.patch b/target/linux/generic/hack-4.19/220-gc_sections.patch index 36deac48b7..f5d5962207 100644 --- a/target/linux/generic/hack-4.19/220-gc_sections.patch +++ b/target/linux/generic/hack-4.19/220-gc_sections.patch @@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos # Read KERNELRELEASE from include/config/kernel.release (if it exists) KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION) -@@ -772,11 +777,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH +@@ -792,11 +797,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) endif diff --git a/target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch b/target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch index da7d1fdbe0..09cc4d461a 100644 --- a/target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch +++ b/target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1144,6 +1144,10 @@ config SYNC_R4K +@@ -1145,6 +1145,10 @@ config SYNC_R4K config MIPS_MACHINE def_bool n diff --git a/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch b/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch index 6d6b86ef64..26e6471ea7 100644 --- a/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch +++ b/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch @@ -15,7 +15,7 @@ --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1583,6 +1583,9 @@ int genphy_update_link(struct phy_device +@@ -1584,6 +1584,9 @@ int genphy_update_link(struct phy_device { int status; diff --git a/target/linux/generic/pending-4.19/110-ehci_hcd_ignore_oc.patch b/target/linux/generic/pending-4.19/110-ehci_hcd_ignore_oc.patch index db7b7ff177..b58d2b7383 100644 --- a/target/linux/generic/pending-4.19/110-ehci_hcd_ignore_oc.patch +++ b/target/linux/generic/pending-4.19/110-ehci_hcd_ignore_oc.patch @@ -17,7 +17,7 @@ Signed-off-by: Florian Fainelli --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c -@@ -638,7 +638,7 @@ static int ehci_run (struct usb_hcd *hcd +@@ -639,7 +639,7 @@ static int ehci_run (struct usb_hcd *hcd "USB %x.%x started, EHCI %x.%02x%s\n", ((ehci->sbrn & 0xf0)>>4), (ehci->sbrn & 0x0f), temp >> 8, temp & 0xff, @@ -28,7 +28,7 @@ Signed-off-by: Florian Fainelli &ehci->regs->intr_enable); /* Turn On Interrupts */ --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c -@@ -641,7 +641,7 @@ ehci_hub_status_data (struct usb_hcd *hc +@@ -640,7 +640,7 @@ ehci_hub_status_data (struct usb_hcd *hc * always set, seem to clear PORT_OCC and PORT_CSC when writing to * PORT_POWER; that's surprising, but maybe within-spec. */ @@ -37,7 +37,7 @@ Signed-off-by: Florian Fainelli mask = PORT_CSC | PORT_PEC | PORT_OCC; else mask = PORT_CSC | PORT_PEC; -@@ -1011,7 +1011,7 @@ int ehci_hub_control( +@@ -1010,7 +1010,7 @@ int ehci_hub_control( if (temp & PORT_PEC) status |= USB_PORT_STAT_C_ENABLE << 16; diff --git a/target/linux/generic/pending-4.19/201-extra_optimization.patch b/target/linux/generic/pending-4.19/201-extra_optimization.patch index e056598047..d618408462 100644 --- a/target/linux/generic/pending-4.19/201-extra_optimization.patch +++ b/target/linux/generic/pending-4.19/201-extra_optimization.patch @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau --- a/Makefile +++ b/Makefile -@@ -653,9 +653,9 @@ KBUILD_CFLAGS += $(call cc-disable-warni +@@ -673,9 +673,9 @@ KBUILD_CFLAGS += $(call cc-disable-warni KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE diff --git a/target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch b/target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch index e19cec1400..b43d26bbf5 100644 --- a/target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch +++ b/target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch @@ -9,7 +9,7 @@ Acked-by: Rob Landley --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1063,9 +1063,6 @@ config FW_ARC +@@ -1064,9 +1064,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -19,7 +19,7 @@ Acked-by: Rob Landley config CEVT_BCM1480 bool -@@ -2969,6 +2966,18 @@ choice +@@ -2970,6 +2967,18 @@ choice bool "Extend builtin kernel arguments with bootloader arguments" endchoice diff --git a/target/linux/generic/pending-4.19/304-mips_disable_fpu.patch b/target/linux/generic/pending-4.19/304-mips_disable_fpu.patch index 26bc5e80cd..1a8602e315 100644 --- a/target/linux/generic/pending-4.19/304-mips_disable_fpu.patch +++ b/target/linux/generic/pending-4.19/304-mips_disable_fpu.patch @@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2893,6 +2893,20 @@ config MIPS_O32_FP64_SUPPORT +@@ -2894,6 +2894,20 @@ config MIPS_O32_FP64_SUPPORT If unsure, say N. diff --git a/target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch b/target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch index 07a6da453f..fad54dab98 100644 --- a/target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch +++ b/target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch @@ -19,7 +19,7 @@ Signed-off-by: Hauke Mehrtens --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1117,7 +1117,6 @@ config DMA_PERDEV_COHERENT +@@ -1118,7 +1118,6 @@ config DMA_PERDEV_COHERENT config DMA_NONCOHERENT bool select ARCH_HAS_SYNC_DMA_FOR_DEVICE @@ -27,7 +27,7 @@ Signed-off-by: Hauke Mehrtens select NEED_DMA_MAP_STATE select DMA_NONCOHERENT_MMAP select DMA_NONCOHERENT_CACHE_SYNC -@@ -1898,9 +1897,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 +@@ -1899,9 +1898,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 config SYS_HAS_CPU_MIPS32_R5 bool @@ -39,7 +39,7 @@ Signed-off-by: Hauke Mehrtens config SYS_HAS_CPU_MIPS64_R1 bool -@@ -1910,6 +1911,7 @@ config SYS_HAS_CPU_MIPS64_R2 +@@ -1911,6 +1912,7 @@ config SYS_HAS_CPU_MIPS64_R2 config SYS_HAS_CPU_MIPS64_R6 bool @@ -47,7 +47,7 @@ Signed-off-by: Hauke Mehrtens config SYS_HAS_CPU_R3000 bool -@@ -1946,6 +1948,7 @@ config SYS_HAS_CPU_R8000 +@@ -1947,6 +1949,7 @@ config SYS_HAS_CPU_R8000 config SYS_HAS_CPU_R10000 bool @@ -55,7 +55,7 @@ Signed-off-by: Hauke Mehrtens config SYS_HAS_CPU_RM7000 bool -@@ -1974,6 +1977,7 @@ config SYS_HAS_CPU_BMIPS4380 +@@ -1975,6 +1978,7 @@ config SYS_HAS_CPU_BMIPS4380 config SYS_HAS_CPU_BMIPS5000 bool select SYS_HAS_CPU_BMIPS diff --git a/target/linux/generic/pending-4.19/601-add-kernel-imq-support.patch b/target/linux/generic/pending-4.19/601-add-kernel-imq-support.patch index 6ba37b6042..568328d6fd 100644 --- a/target/linux/generic/pending-4.19/601-add-kernel-imq-support.patch +++ b/target/linux/generic/pending-4.19/601-add-kernel-imq-support.patch @@ -1264,7 +1264,7 @@ extern struct kmem_cache *skbuff_head_cache; void kfree_skb_partial(struct sk_buff *skb, bool head_stolen); -@@ -3922,8 +3941,12 @@ static inline void __nf_copy(struct sk_b +@@ -3923,8 +3942,12 @@ static inline void __nf_copy(struct sk_b dst->_nfct = src->_nfct; nf_conntrack_get(skb_nfct(src)); #endif diff --git a/target/linux/generic/pending-4.19/607-tcp_bbr-adapt-cwnd-based-on-ack-aggregation-estimation.patch b/target/linux/generic/pending-4.19/607-tcp_bbr-adapt-cwnd-based-on-ack-aggregation-estimation.patch deleted file mode 100644 index 141118de3c..0000000000 --- a/target/linux/generic/pending-4.19/607-tcp_bbr-adapt-cwnd-based-on-ack-aggregation-estimation.patch +++ /dev/null @@ -1,405 +0,0 @@ -From 232aa8ec3ed979d4716891540c03a806ecab0c37 Mon Sep 17 00:00:00 2001 -From: Priyaranjan Jha -Date: Wed, 23 Jan 2019 12:04:53 -0800 -Subject: tcp_bbr: refactor bbr_target_cwnd() for general inflight provisioning - -Because bbr_target_cwnd() is really a general-purpose BBR helper for -computing some volume of inflight data as a function of the estimated -BDP, refactor it into following helper functions: -- bbr_bdp() -- bbr_quantization_budget() -- bbr_inflight() - -Signed-off-by: Priyaranjan Jha -Signed-off-by: Neal Cardwell -Signed-off-by: Yuchung Cheng -Signed-off-by: David S. Miller ---- ---- a/include/net/inet_connection_sock.h -+++ b/include/net/inet_connection_sock.h -@@ -139,8 +139,8 @@ struct inet_connection_sock { - } icsk_mtup; - u32 icsk_user_timeout; - -- u64 icsk_ca_priv[88 / sizeof(u64)]; --#define ICSK_CA_PRIV_SIZE (11 * sizeof(u64)) -+ u64 icsk_ca_priv[104 / sizeof(u64)]; -+#define ICSK_CA_PRIV_SIZE (13 * sizeof(u64)) - }; - - #define ICSK_TIME_RETRANS 1 /* Retransmit timer */ ---- a/net/ipv4/tcp_bbr.c -+++ b/net/ipv4/tcp_bbr.c -@@ -115,6 +115,14 @@ struct bbr { - unused_b:5; - u32 prior_cwnd; /* prior cwnd upon entering loss recovery */ - u32 full_bw; /* recent bw, to estimate if pipe is full */ -+ -+ /* For tracking ACK aggregation: */ -+ u64 ack_epoch_mstamp; /* start of ACK sampling epoch */ -+ u16 extra_acked[2]; /* max excess data ACKed in epoch */ -+ u32 ack_epoch_acked:20, /* packets (S)ACKed in sampling epoch */ -+ extra_acked_win_rtts:5, /* age of extra_acked, in round trips */ -+ extra_acked_win_idx:1, /* current index in extra_acked array */ -+ unused_c:6; - }; - - #define CYCLE_LEN 8 /* number of phases in a pacing gain cycle */ -@@ -174,6 +182,15 @@ static const u32 bbr_lt_bw_diff = 4000 / - /* If we estimate we're policed, use lt_bw for this many round trips: */ - static const u32 bbr_lt_bw_max_rtts = 48; - -+/* Gain factor for adding extra_acked to target cwnd: */ -+static const int bbr_extra_acked_gain = BBR_UNIT; -+/* Window length of extra_acked window. */ -+static const u32 bbr_extra_acked_win_rtts = 5; -+/* Max allowed val for ack_epoch_acked, after which sampling epoch is reset */ -+static const u32 bbr_ack_epoch_acked_reset_thresh = 1U << 20; -+/* Time period for clamping cwnd increment due to ack aggregation */ -+static const u32 bbr_extra_acked_max_us = 100 * 1000; -+ - static void bbr_check_probe_rtt_done(struct sock *sk); - - /* Do we estimate that STARTUP filled the pipe? */ -@@ -200,6 +217,16 @@ static u32 bbr_bw(const struct sock *sk) - return bbr->lt_use_bw ? bbr->lt_bw : bbr_max_bw(sk); - } - -+/* Return maximum extra acked in past k-2k round trips, -+ * where k = bbr_extra_acked_win_rtts. -+ */ -+static u16 bbr_extra_acked(const struct sock *sk) -+{ -+ struct bbr *bbr = inet_csk_ca(sk); -+ -+ return max(bbr->extra_acked[0], bbr->extra_acked[1]); -+} -+ - /* Return rate in bytes per second, optionally with a gain. - * The order here is chosen carefully to avoid overflow of u64. This should - * work for input rates of up to 2.9Tbit/sec and gain of 2.89x. -@@ -305,6 +332,8 @@ static void bbr_cwnd_event(struct sock * - - if (event == CA_EVENT_TX_START && tp->app_limited) { - bbr->idle_restart = 1; -+ bbr->ack_epoch_mstamp = tp->tcp_mstamp; -+ bbr->ack_epoch_acked = 0; - /* Avoid pointless buffer overflows: pace at est. bw if we don't - * need more speed (we're restarting from idle and app-limited). - */ -@@ -315,30 +344,19 @@ static void bbr_cwnd_event(struct sock * - } - } - --/* Find target cwnd. Right-size the cwnd based on min RTT and the -- * estimated bottleneck bandwidth: -+/* Calculate bdp based on min RTT and the estimated bottleneck bandwidth: - * -- * cwnd = bw * min_rtt * gain = BDP * gain -+ * bdp = bw * min_rtt * gain - * - * The key factor, gain, controls the amount of queue. While a small gain - * builds a smaller queue, it becomes more vulnerable to noise in RTT - * measurements (e.g., delayed ACKs or other ACK compression effects). This - * noise may cause BBR to under-estimate the rate. -- * -- * To achieve full performance in high-speed paths, we budget enough cwnd to -- * fit full-sized skbs in-flight on both end hosts to fully utilize the path: -- * - one skb in sending host Qdisc, -- * - one skb in sending host TSO/GSO engine -- * - one skb being received by receiver host LRO/GRO/delayed-ACK engine -- * Don't worry, at low rates (bbr_min_tso_rate) this won't bloat cwnd because -- * in such cases tso_segs_goal is 1. The minimum cwnd is 4 packets, -- * which allows 2 outstanding 2-packet sequences, to try to keep pipe -- * full even with ACK-every-other-packet delayed ACKs. - */ --static u32 bbr_target_cwnd(struct sock *sk, u32 bw, int gain) -+static u32 bbr_bdp(struct sock *sk, u32 bw, int gain) - { - struct bbr *bbr = inet_csk_ca(sk); -- u32 cwnd; -+ u32 bdp; - u64 w; - - /* If we've never had a valid RTT sample, cap cwnd at the initial -@@ -353,7 +371,24 @@ static u32 bbr_target_cwnd(struct sock * - w = (u64)bw * bbr->min_rtt_us; - - /* Apply a gain to the given value, then remove the BW_SCALE shift. */ -- cwnd = (((w * gain) >> BBR_SCALE) + BW_UNIT - 1) / BW_UNIT; -+ bdp = (((w * gain) >> BBR_SCALE) + BW_UNIT - 1) / BW_UNIT; -+ -+ return bdp; -+} -+ -+/* To achieve full performance in high-speed paths, we budget enough cwnd to -+ * fit full-sized skbs in-flight on both end hosts to fully utilize the path: -+ * - one skb in sending host Qdisc, -+ * - one skb in sending host TSO/GSO engine -+ * - one skb being received by receiver host LRO/GRO/delayed-ACK engine -+ * Don't worry, at low rates (bbr_min_tso_rate) this won't bloat cwnd because -+ * in such cases tso_segs_goal is 1. The minimum cwnd is 4 packets, -+ * which allows 2 outstanding 2-packet sequences, to try to keep pipe -+ * full even with ACK-every-other-packet delayed ACKs. -+ */ -+static u32 bbr_quantization_budget(struct sock *sk, u32 cwnd) -+{ -+ struct bbr *bbr = inet_csk_ca(sk); - - /* Allow enough full-sized skbs in flight to utilize end systems. */ - cwnd += 3 * bbr_tso_segs_goal(sk); -@@ -362,12 +397,39 @@ static u32 bbr_target_cwnd(struct sock * - cwnd = (cwnd + 1) & ~1U; - - /* Ensure gain cycling gets inflight above BDP even for small BDPs. */ -- if (bbr->mode == BBR_PROBE_BW && gain > BBR_UNIT) -+ if (bbr->mode == BBR_PROBE_BW && bbr->cycle_idx == 0) - cwnd += 2; - - return cwnd; - } - -+/* Find inflight based on min RTT and the estimated bottleneck bandwidth. */ -+static u32 bbr_inflight(struct sock *sk, u32 bw, int gain) -+{ -+ u32 inflight; -+ -+ inflight = bbr_bdp(sk, bw, gain); -+ inflight = bbr_quantization_budget(sk, inflight); -+ -+ return inflight; -+} -+ -+/* Find the cwnd increment based on estimate of ack aggregation */ -+static u32 bbr_ack_aggregation_cwnd(struct sock *sk) -+{ -+ u32 max_aggr_cwnd, aggr_cwnd = 0; -+ -+ if (bbr_extra_acked_gain && bbr_full_bw_reached(sk)) { -+ max_aggr_cwnd = ((u64)bbr_bw(sk) * bbr_extra_acked_max_us) -+ / BW_UNIT; -+ aggr_cwnd = (bbr_extra_acked_gain * bbr_extra_acked(sk)) -+ >> BBR_SCALE; -+ aggr_cwnd = min(aggr_cwnd, max_aggr_cwnd); -+ } -+ -+ return aggr_cwnd; -+} -+ - /* An optimization in BBR to reduce losses: On the first round of recovery, we - * follow the packet conservation principle: send P packets per P packets acked. - * After that, we slow-start and send at most 2*P packets per P packets acked. -@@ -428,8 +490,15 @@ static void bbr_set_cwnd(struct sock *sk - if (bbr_set_cwnd_to_recover_or_restore(sk, rs, acked, &cwnd)) - goto done; - -+ target_cwnd = bbr_bdp(sk, bw, gain); -+ -+ /* Increment the cwnd to account for excess ACKed data that seems -+ * due to aggregation (of data and/or ACKs) visible in the ACK stream. -+ */ -+ target_cwnd += bbr_ack_aggregation_cwnd(sk); -+ target_cwnd = bbr_quantization_budget(sk, target_cwnd); -+ - /* If we're below target cwnd, slow start cwnd toward target cwnd. */ -- target_cwnd = bbr_target_cwnd(sk, bw, gain); - if (bbr_full_bw_reached(sk)) /* only cut cwnd if we filled the pipe */ - cwnd = min(cwnd + acked, target_cwnd); - else if (cwnd < target_cwnd || tp->delivered < TCP_INIT_CWND) -@@ -470,14 +539,14 @@ static bool bbr_is_next_cycle_phase(stru - if (bbr->pacing_gain > BBR_UNIT) - return is_full_length && - (rs->losses || /* perhaps pacing_gain*BDP won't fit */ -- inflight >= bbr_target_cwnd(sk, bw, bbr->pacing_gain)); -+ inflight >= bbr_inflight(sk, bw, bbr->pacing_gain)); - - /* A pacing_gain < 1.0 tries to drain extra queue we added if bw - * probing didn't find more bw. If inflight falls to match BDP then we - * estimate queue is drained; persisting would underutilize the pipe. - */ - return is_full_length || -- inflight <= bbr_target_cwnd(sk, bw, BBR_UNIT); -+ inflight <= bbr_inflight(sk, bw, BBR_UNIT); - } - - static void bbr_advance_cycle_phase(struct sock *sk) -@@ -487,8 +556,6 @@ static void bbr_advance_cycle_phase(stru - - bbr->cycle_idx = (bbr->cycle_idx + 1) & (CYCLE_LEN - 1); - bbr->cycle_mstamp = tp->delivered_mstamp; -- bbr->pacing_gain = bbr->lt_use_bw ? BBR_UNIT : -- bbr_pacing_gain[bbr->cycle_idx]; - } - - /* Gain cycling: cycle pacing gain to converge to fair share of available bw. */ -@@ -506,8 +573,6 @@ static void bbr_reset_startup_mode(struc - struct bbr *bbr = inet_csk_ca(sk); - - bbr->mode = BBR_STARTUP; -- bbr->pacing_gain = bbr_high_gain; -- bbr->cwnd_gain = bbr_high_gain; - } - - static void bbr_reset_probe_bw_mode(struct sock *sk) -@@ -515,8 +580,6 @@ static void bbr_reset_probe_bw_mode(stru - struct bbr *bbr = inet_csk_ca(sk); - - bbr->mode = BBR_PROBE_BW; -- bbr->pacing_gain = BBR_UNIT; -- bbr->cwnd_gain = bbr_cwnd_gain; - bbr->cycle_idx = CYCLE_LEN - 1 - prandom_u32_max(bbr_cycle_rand); - bbr_advance_cycle_phase(sk); /* flip to next phase of gain cycle */ - } -@@ -699,6 +762,67 @@ static void bbr_update_bw(struct sock *s - } - } - -+/* Estimates the windowed max degree of ack aggregation. -+ * This is used to provision extra in-flight data to keep sending during -+ * inter-ACK silences. -+ * -+ * Degree of ack aggregation is estimated as extra data acked beyond expected. -+ * -+ * max_extra_acked = "maximum recent excess data ACKed beyond max_bw * interval" -+ * cwnd += max_extra_acked -+ * -+ * Max extra_acked is clamped by cwnd and bw * bbr_extra_acked_max_us (100 ms). -+ * Max filter is an approximate sliding window of 5-10 (packet timed) round -+ * trips. -+ */ -+static void bbr_update_ack_aggregation(struct sock *sk, -+ const struct rate_sample *rs) -+{ -+ u32 epoch_us, expected_acked, extra_acked; -+ struct bbr *bbr = inet_csk_ca(sk); -+ struct tcp_sock *tp = tcp_sk(sk); -+ -+ if (!bbr_extra_acked_gain || rs->acked_sacked <= 0 || -+ rs->delivered < 0 || rs->interval_us <= 0) -+ return; -+ -+ if (bbr->round_start) { -+ bbr->extra_acked_win_rtts = min(0x1F, -+ bbr->extra_acked_win_rtts + 1); -+ if (bbr->extra_acked_win_rtts >= bbr_extra_acked_win_rtts) { -+ bbr->extra_acked_win_rtts = 0; -+ bbr->extra_acked_win_idx = bbr->extra_acked_win_idx ? -+ 0 : 1; -+ bbr->extra_acked[bbr->extra_acked_win_idx] = 0; -+ } -+ } -+ -+ /* Compute how many packets we expected to be delivered over epoch. */ -+ epoch_us = tcp_stamp_us_delta(tp->delivered_mstamp, -+ bbr->ack_epoch_mstamp); -+ expected_acked = ((u64)bbr_bw(sk) * epoch_us) / BW_UNIT; -+ -+ /* Reset the aggregation epoch if ACK rate is below expected rate or -+ * significantly large no. of ack received since epoch (potentially -+ * quite old epoch). -+ */ -+ if (bbr->ack_epoch_acked <= expected_acked || -+ (bbr->ack_epoch_acked + rs->acked_sacked >= -+ bbr_ack_epoch_acked_reset_thresh)) { -+ bbr->ack_epoch_acked = 0; -+ bbr->ack_epoch_mstamp = tp->delivered_mstamp; -+ expected_acked = 0; -+ } -+ -+ /* Compute excess data delivered, beyond what was expected. */ -+ bbr->ack_epoch_acked = min_t(u32, 0xFFFFF, -+ bbr->ack_epoch_acked + rs->acked_sacked); -+ extra_acked = bbr->ack_epoch_acked - expected_acked; -+ extra_acked = min(extra_acked, tp->snd_cwnd); -+ if (extra_acked > bbr->extra_acked[bbr->extra_acked_win_idx]) -+ bbr->extra_acked[bbr->extra_acked_win_idx] = extra_acked; -+} -+ - /* Estimate when the pipe is full, using the change in delivery rate: BBR - * estimates that STARTUP filled the pipe if the estimated bw hasn't changed by - * at least bbr_full_bw_thresh (25%) after bbr_full_bw_cnt (3) non-app-limited -@@ -733,14 +857,12 @@ static void bbr_check_drain(struct sock - - if (bbr->mode == BBR_STARTUP && bbr_full_bw_reached(sk)) { - bbr->mode = BBR_DRAIN; /* drain queue we created */ -- bbr->pacing_gain = bbr_drain_gain; /* pace slow to drain */ -- bbr->cwnd_gain = bbr_high_gain; /* maintain cwnd */ - tcp_sk(sk)->snd_ssthresh = -- bbr_target_cwnd(sk, bbr_max_bw(sk), BBR_UNIT); -+ bbr_inflight(sk, bbr_max_bw(sk), BBR_UNIT); - } /* fall through to check if in-flight is already small: */ - if (bbr->mode == BBR_DRAIN && - tcp_packets_in_flight(tcp_sk(sk)) <= -- bbr_target_cwnd(sk, bbr_max_bw(sk), BBR_UNIT)) -+ bbr_inflight(sk, bbr_max_bw(sk), BBR_UNIT)) - bbr_reset_probe_bw_mode(sk); /* we estimate queue is drained */ - } - -@@ -796,8 +918,6 @@ static void bbr_update_min_rtt(struct so - if (bbr_probe_rtt_mode_ms > 0 && filter_expired && - !bbr->idle_restart && bbr->mode != BBR_PROBE_RTT) { - bbr->mode = BBR_PROBE_RTT; /* dip, drain queue */ -- bbr->pacing_gain = BBR_UNIT; -- bbr->cwnd_gain = BBR_UNIT; - bbr_save_cwnd(sk); /* note cwnd so we can restore it */ - bbr->probe_rtt_done_stamp = 0; - } -@@ -825,13 +945,44 @@ static void bbr_update_min_rtt(struct so - bbr->idle_restart = 0; - } - -+static void bbr_update_gains(struct sock *sk) -+{ -+ struct bbr *bbr = inet_csk_ca(sk); -+ -+ switch (bbr->mode) { -+ case BBR_STARTUP: -+ bbr->pacing_gain = bbr_high_gain; -+ bbr->cwnd_gain = bbr_high_gain; -+ break; -+ case BBR_DRAIN: -+ bbr->pacing_gain = bbr_drain_gain; /* slow, to drain */ -+ bbr->cwnd_gain = bbr_high_gain; /* keep cwnd */ -+ break; -+ case BBR_PROBE_BW: -+ bbr->pacing_gain = (bbr->lt_use_bw ? -+ BBR_UNIT : -+ bbr_pacing_gain[bbr->cycle_idx]); -+ bbr->cwnd_gain = bbr_cwnd_gain; -+ break; -+ case BBR_PROBE_RTT: -+ bbr->pacing_gain = BBR_UNIT; -+ bbr->cwnd_gain = BBR_UNIT; -+ break; -+ default: -+ WARN_ONCE(1, "BBR bad mode: %u\n", bbr->mode); -+ break; -+ } -+} -+ - static void bbr_update_model(struct sock *sk, const struct rate_sample *rs) - { - bbr_update_bw(sk, rs); -+ bbr_update_ack_aggregation(sk, rs); - bbr_update_cycle_phase(sk, rs); - bbr_check_full_bw_reached(sk, rs); - bbr_check_drain(sk, rs); - bbr_update_min_rtt(sk, rs); -+ bbr_update_gains(sk); - } - - static void bbr_main(struct sock *sk, const struct rate_sample *rs) -@@ -878,6 +1029,13 @@ static void bbr_init(struct sock *sk) - bbr_reset_lt_bw_sampling(sk); - bbr_reset_startup_mode(sk); - -+ bbr->ack_epoch_mstamp = tp->tcp_mstamp; -+ bbr->ack_epoch_acked = 0; -+ bbr->extra_acked_win_rtts = 0; -+ bbr->extra_acked_win_idx = 0; -+ bbr->extra_acked[0] = 0; -+ bbr->extra_acked[1] = 0; -+ - cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED); - } - diff --git a/target/linux/ipq40xx/patches-4.19/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch b/target/linux/ipq40xx/patches-4.19/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch index 3ec6f4a0e8..9726198bc3 100644 --- a/target/linux/ipq40xx/patches-4.19/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch +++ b/target/linux/ipq40xx/patches-4.19/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch @@ -14,7 +14,7 @@ Signed-off-by: Robert Marko --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c -@@ -1694,7 +1694,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat +@@ -1710,7 +1710,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat static const struct sdhci_ops sdhci_msm_ops = { .reset = sdhci_reset, diff --git a/target/linux/ipq40xx/patches-4.19/701-dts-ipq4019-add-mdio-node.patch b/target/linux/ipq40xx/patches-4.19/701-dts-ipq4019-add-mdio-node.patch index 316e60f221..7117a4bdfe 100644 --- a/target/linux/ipq40xx/patches-4.19/701-dts-ipq4019-add-mdio-node.patch +++ b/target/linux/ipq40xx/patches-4.19/701-dts-ipq4019-add-mdio-node.patch @@ -15,7 +15,7 @@ so the info might change. --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -571,6 +571,34 @@ +@@ -593,6 +593,34 @@ status = "disabled"; }; diff --git a/target/linux/ipq40xx/patches-4.19/702-dts-ipq4019-add-PHY-switch-nodes.patch b/target/linux/ipq40xx/patches-4.19/702-dts-ipq4019-add-PHY-switch-nodes.patch index df95699294..4ef8044893 100644 --- a/target/linux/ipq40xx/patches-4.19/702-dts-ipq4019-add-PHY-switch-nodes.patch +++ b/target/linux/ipq40xx/patches-4.19/702-dts-ipq4019-add-PHY-switch-nodes.patch @@ -14,7 +14,7 @@ Signed-off-by: Christian Lamparter --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -599,6 +599,29 @@ +@@ -621,6 +621,29 @@ }; }; diff --git a/target/linux/ipq40xx/patches-4.19/711-dts-ipq4019-add-ethernet-essedma-node.patch b/target/linux/ipq40xx/patches-4.19/711-dts-ipq4019-add-ethernet-essedma-node.patch index 8f7627b048..9f9cb5287c 100644 --- a/target/linux/ipq40xx/patches-4.19/711-dts-ipq4019-add-ethernet-essedma-node.patch +++ b/target/linux/ipq40xx/patches-4.19/711-dts-ipq4019-add-ethernet-essedma-node.patch @@ -25,7 +25,7 @@ Signed-off-by: Christian Lamparter }; cpus { -@@ -622,6 +624,64 @@ +@@ -644,6 +646,64 @@ status = "disabled"; }; diff --git a/target/linux/lantiq/patches-4.19/0152-lantiq-VPE.patch b/target/linux/lantiq/patches-4.19/0152-lantiq-VPE.patch index 9e39427c6a..20c9013529 100644 --- a/target/linux/lantiq/patches-4.19/0152-lantiq-VPE.patch +++ b/target/linux/lantiq/patches-4.19/0152-lantiq-VPE.patch @@ -1,6 +1,6 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2318,6 +2318,12 @@ config MIPS_VPE_LOADER +@@ -2319,6 +2319,12 @@ config MIPS_VPE_LOADER Includes a loader for loading an elf relocatable object onto another VPE and running it.