Message ID | 1526400646-9202-1-git-send-email-koen.vandeputte@ncentric.com |
---|---|
State | Superseded |
Headers | show |
Series | [LEDE-DEV,1/2] kernel: bump 4.9 to 4.9.99 | expand |
Citeren Koen Vandeputte <koen.vandeputte@ncentric.com>: > Refreshed all patches > > Compile-tested on: ar71xx > Runtime-tested on: ar71xx > > Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Tested-by: Arjen de Korte <build+openwrt@de-korte.org> Target: ar71xx (Netgear WNDR4300) > --- > > Refreshed on the latest master state (commit: "mt76: update to the > latest version") > > include/kernel-version.mk | 4 +- > .../ar7/patches-4.9/300-add-ac49x-platform.patch | 4 +- > .../403-mtd_fix_cfi_cmdset_0002_status_check.patch | 14 +- > .../411-mtd-cfi_cmdset_0002-force-word-write.patch | 6 +- > .../ar71xx/patches-4.9/500-MIPS-fw-myloader.patch | 2 +- > .../ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch | 2 +- > ...4-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch | 31 +- > ...105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch | 17 +- > .../linux/ath25/patches-4.9/107-ar5312_gpio.patch | 2 +- > .../patches-4.9/950-0031-Add-dwc_otg-driver.patch | 2 +- > ...fill-user-BO-creation-requests-from-the-k.patch | 2 +- > ...-OOPSes-from-trying-to-cache-a-partially-.patch | 2 +- > ...01-MIPS-BCM63XX-add-clkdev-lookup-support.patch | 2 +- > ...match_table-parsing-for-partition-parsers.patch | 6 +- > .../322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch | 2 +- > .../linux/generic/hack-4.9/220-gc_sections.patch | 2 +- > .../hack-4.9/301-mips_image_cmdline_hack.patch | 2 +- > ...net-usb-add-lte-modem-wistron-neweb-d18q1.patch | 2 +- > ...t-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch | 2 +- > .../pending-4.9/300-mips_expose_boot_raw.patch | 4 +- > .../generic/pending-4.9/304-mips_disable_fpu.patch | 2 +- > ...m-remove-no-op-dma_map_ops-where-possible.patch | 12 +- > ..._cmdset_0002-add-buffer-write-cmd-timeout.patch | 2 +- > .../pending-4.9/630-packet_socket_type.patch | 16 +- > ...jecting-with-source-address-failed-policy.patch | 16 +- > .../pending-4.9/890-uart_optional_sysrq.patch | 4 +- > .../patches-4.9/090-increase_entropy_pools.patch | 2 +- > .../linux/lantiq/patches-4.9/0152-lantiq-VPE.patch | 2 +- > .../patches-4.9/817-usb-support-layerscape.patch | 18 +- > .../102-powerpc-add-cmdline-override.patch | 2 +- > .../sunxi/patches-4.9/0052-stmmac-form-4-12.patch | 344 > +++++++++++---------- > .../linux/uml/patches-4.9/101-mconsole-exec.patch | 2 +- > 32 files changed, 266 insertions(+), 266 deletions(-) > > diff --git a/include/kernel-version.mk b/include/kernel-version.mk > index cf84e31f7b0f..e49b66dcf21f 100644 > --- a/include/kernel-version.mk > +++ b/include/kernel-version.mk > @@ -4,12 +4,12 @@ LINUX_RELEASE?=1 > > LINUX_VERSION-3.18 = .71 > LINUX_VERSION-4.4 = .121 > -LINUX_VERSION-4.9 = .96 > +LINUX_VERSION-4.9 = .99 > LINUX_VERSION-4.14 = .37 > > LINUX_KERNEL_HASH-3.18.71 = > 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240 > LINUX_KERNEL_HASH-4.4.121 = > 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729 > -LINUX_KERNEL_HASH-4.9.96 = > 826f596eb5197f8b17304649c2990dd7b766f5c79076cae79f4261c40cea877f > +LINUX_KERNEL_HASH-4.9.99 = > 3dc3eb8c918bca444c8e6c061d534b1a8a5ac60a5b5d7065141f7b8e204213df > LINUX_KERNEL_HASH-4.14.37 = > 8197e7ed3620713e412905430a7bf93e2048384042ffba189a66f0eeb6908e92 > > remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) > diff --git > a/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch > b/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch > index 67ed3e494a0d..639f09709ba8 100644 > --- a/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch > +++ b/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch > @@ -37,7 +37,7 @@ > #define AR7_IRQ_UART0 15 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -160,7 +160,7 @@ config AR7 > +@@ -161,7 +161,7 @@ config AR7 > select HAVE_CLK > help > Support for the Texas Instruments AR7 System-on-a-Chip > @@ -46,7 +46,7 @@ > > config ATH25 > bool "Atheros AR231x/AR531x SoC support" > -@@ -1004,6 +1004,7 @@ config MIPS_PARAVIRT > +@@ -1005,6 +1005,7 @@ config MIPS_PARAVIRT > endchoice > > source "arch/mips/alchemy/Kconfig" > diff --git > a/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch > b/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch > index 415d835ee348..3a7fe99e6524 100644 > --- > a/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch > +++ > b/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch > @@ -1,6 +1,6 @@ > --- a/drivers/mtd/chips/cfi_cmdset_0002.c > +++ b/drivers/mtd/chips/cfi_cmdset_0002.c > -@@ -1630,8 +1630,8 @@ static int __xipram do_write_oneword(str > +@@ -1631,8 +1631,8 @@ static int __xipram do_write_oneword(str > break; > } > > @@ -11,7 +11,7 @@ > > /* Latency issues. Drop the lock, wait a while and retry */ > UDELAY(map, chip, adr, 1); > -@@ -1647,6 +1647,8 @@ static int __xipram do_write_oneword(str > +@@ -1648,6 +1648,8 @@ static int __xipram do_write_oneword(str > > ret = -EIO; > } > @@ -20,7 +20,7 @@ > xip_enable(map, chip, adr); > op_done: > if (mode == FL_OTP_WRITE) > -@@ -2225,7 +2227,6 @@ static int cfi_amdstd_panic_write(struct > +@@ -2226,7 +2228,6 @@ static int cfi_amdstd_panic_write(struct > return 0; > } > > @@ -28,7 +28,7 @@ > /* > * Handle devices with one erase region, that only implement > * the chip erase command. > -@@ -2289,8 +2290,8 @@ static int __xipram do_erase_chip(struct > +@@ -2291,8 +2292,8 @@ static int __xipram do_erase_chip(struct > chip->erase_suspended = 0; > } > > @@ -39,7 +39,7 @@ > > if (time_after(jiffies, timeo)) { > printk(KERN_WARNING "MTD %s(): software timeout\n", > -@@ -2310,6 +2311,7 @@ static int __xipram do_erase_chip(struct > +@@ -2312,6 +2313,7 @@ static int __xipram do_erase_chip(struct > ret = -EIO; > } > > @@ -47,7 +47,7 @@ > chip->state = FL_READY; > xip_enable(map, chip, adr); > DISABLE_VPP(map); > -@@ -2378,9 +2380,9 @@ static int __xipram do_erase_oneblock(st > +@@ -2381,9 +2383,9 @@ static int __xipram do_erase_oneblock(st > chip->erase_suspended = 0; > } > > @@ -59,7 +59,7 @@ > } > > if (time_after(jiffies, timeo)) { > -@@ -2402,6 +2404,7 @@ static int __xipram do_erase_oneblock(st > +@@ -2405,6 +2407,7 @@ static int __xipram do_erase_oneblock(st > ret = -EIO; > } > > diff --git > a/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch > b/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch > index 7f5b2f55acd1..25a73dcdff59 100644 > --- > a/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch > +++ > b/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch > @@ -35,7 +35,7 @@ > > /* Atmel chips don't use the same PRI format as AMD chips */ > static void fixup_convert_atmel_pri(struct mtd_info *mtd) > -@@ -1789,6 +1793,7 @@ static int cfi_amdstd_write_words(struct > +@@ -1790,6 +1794,7 @@ static int cfi_amdstd_write_words(struct > /* > * FIXME: interleaved mode not tested, and probably not supported! > */ > @@ -43,7 +43,7 @@ > static int __xipram do_write_buffer(struct map_info *map, struct > flchip *chip, > unsigned long adr, const u_char *buf, > int len) > -@@ -1917,7 +1922,6 @@ static int __xipram do_write_buffer(stru > +@@ -1918,7 +1923,6 @@ static int __xipram do_write_buffer(stru > return ret; > } > > @@ -51,7 +51,7 @@ > static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t > to, size_t len, > size_t *retlen, const u_char *buf) > { > -@@ -1992,6 +1996,7 @@ static int cfi_amdstd_write_buffers(stru > +@@ -1993,6 +1997,7 @@ static int cfi_amdstd_write_buffers(stru > > return 0; > } > diff --git > a/target/linux/ar71xx/patches-4.9/500-MIPS-fw-myloader.patch > b/target/linux/ar71xx/patches-4.9/500-MIPS-fw-myloader.patch > index d6a9276c3251..301422a7d8a1 100644 > --- a/target/linux/ar71xx/patches-4.9/500-MIPS-fw-myloader.patch > +++ b/target/linux/ar71xx/patches-4.9/500-MIPS-fw-myloader.patch > @@ -10,7 +10,7 @@ > > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -1149,6 +1149,9 @@ config MIPS_MSC > +@@ -1150,6 +1150,9 @@ config MIPS_MSC > config MIPS_NILE4 > bool > > diff --git > a/target/linux/ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch > b/target/linux/ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch > index c0b5459e4578..89dd32a7c10c 100644 > --- a/target/linux/ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch > +++ b/target/linux/ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch > @@ -1,6 +1,6 @@ > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -195,7 +195,6 @@ config ATH79 > +@@ -196,7 +196,6 @@ config ATH79 > select SYS_SUPPORTS_BIG_ENDIAN > select SYS_SUPPORTS_MIPS16 > select SYS_SUPPORTS_ZBOOT_UART_PROM > diff --git > a/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch > b/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch > index 1a3945eb4a39..20c69f39ed1e 100644 > --- > a/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch > +++ > b/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch > @@ -1,5 +1,3 @@ > -diff --git > a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt > b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt > -index 61ac757..9820227 100644 > --- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt > +++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt > @@ -35,7 +35,12 @@ right representation of the pin. > @@ -13,24 +11,19 @@ index 61ac757..9820227 100644 > +ATMEL_PIO_DRVSTR_LO, ATMEL_PIO_DRVSTR_ME, ATMEL_PIO_DRVSTR_HI. The current > +depends on VDDIOP. You can find the details in the DC Characteristics table > +from the datasheet. > - > + > Example: > - > -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > -index 1218005..c88e426 100644 > + > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -49,6 +49,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \ > - wb45n.dtb > + wb45n.dtb > dtb-$(CONFIG_SOC_SAM_V7) += \ > - at91-kizbox2.dtb \ > + at91-kizbox2.dtb \ > + at91-sama5d27_som1_ek.dtb \ > - at91-sama5d2_xplained.dtb \ > - at91-sama5d3_xplained.dtb \ > - sama5d31ek.dtb \ > -diff --git a/arch/arm/boot/dts/at91-sama5d27_som1.dtsi > b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi > -new file mode 100644 > -index 0000000..7d7575f > + at91-sama5d2_xplained.dtb \ > + at91-sama5d3_xplained.dtb \ > + sama5d31ek.dtb \ > --- /dev/null > +++ b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi > @@ -0,0 +1,175 @@ > @@ -209,9 +202,6 @@ index 0000000..7d7575f > + }; > + }; > +}; > -diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts > b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts > -new file mode 100644 > -index 0000000..fd12b68 > --- /dev/null > +++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts > @@ -0,0 +1,53 @@ > @@ -268,9 +258,6 @@ index 0000000..fd12b68 > + model = "Atmel SAMA5D27 SOM1 EK"; > + compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", > "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; > +}; > -diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi > b/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi > -new file mode 100644 > -index 0000000..7201a8e > --- /dev/null > +++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi > @@ -0,0 +1,619 @@ > @@ -893,14 +880,12 @@ index 0000000..7201a8e > + }; > + }; > +}; > -diff --git a/include/dt-bindings/pinctrl/at91.h > b/include/dt-bindings/pinctrl/at91.h > -index bbca3d0..88eb7d0 100644 > --- a/include/dt-bindings/pinctrl/at91.h > +++ b/include/dt-bindings/pinctrl/at91.h > @@ -37,4 +37,8 @@ > #define AT91_PERIPH_C 3 > #define AT91_PERIPH_D 4 > - > + > +#define ATMEL_PIO_DRVSTR_LO 1 > +#define ATMEL_PIO_DRVSTR_ME 2 > +#define ATMEL_PIO_DRVSTR_HI 3 > diff --git > a/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch > b/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch > index 3da9955ee7d6..e33840cfd8b2 100644 > --- > a/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch > +++ > b/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch > @@ -1,18 +1,13 @@ > -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > -index c88e426..cb47e80 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -49,6 +49,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \ > - wb45n.dtb > + wb45n.dtb > dtb-$(CONFIG_SOC_SAM_V7) += \ > - at91-kizbox2.dtb \ > + at91-kizbox2.dtb \ > + at91-sama5d2_ptc_ek.dtb \ > - at91-sama5d27_som1_ek.dtb \ > - at91-sama5d2_xplained.dtb \ > - at91-sama5d3_xplained.dtb \ > -diff --git a/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts > b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts > -new file mode 100644 > -index 0000000..257eaac > + at91-sama5d27_som1_ek.dtb \ > + at91-sama5d2_xplained.dtb \ > + at91-sama5d3_xplained.dtb \ > --- /dev/null > +++ b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts > @@ -0,0 +1,422 @@ > @@ -438,5 +433,3 @@ index 0000000..257eaac > + }; > + }; > +}; > --- > -2.7.4 > diff --git a/target/linux/ath25/patches-4.9/107-ar5312_gpio.patch > b/target/linux/ath25/patches-4.9/107-ar5312_gpio.patch > index ac729ee48e0b..f42108702d56 100644 > --- a/target/linux/ath25/patches-4.9/107-ar5312_gpio.patch > +++ b/target/linux/ath25/patches-4.9/107-ar5312_gpio.patch > @@ -202,7 +202,7 @@ > +subsys_initcall(ar5312_gpio_init); > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -167,6 +167,7 @@ config ATH25 > +@@ -168,6 +168,7 @@ config ATH25 > select CEVT_R4K > select CSRC_R4K > select DMA_NONCOHERENT > diff --git > a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch > b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch > index 3006fefc2056..34e776466809 100644 > --- a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch > +++ b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch > @@ -696,7 +696,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org> > } > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > -@@ -5054,7 +5054,7 @@ static void port_event(struct usb_hub *h > +@@ -5062,7 +5062,7 @@ static void port_event(struct usb_hub *h > if (portchange & USB_PORT_STAT_C_OVERCURRENT) { > u16 status = 0, unused; > > diff --git > a/target/linux/brcm2708/patches-4.9/950-0180-drm-vc4-Fulfill-user-BO-creation-requests-from-the-k.patch > b/target/linux/brcm2708/patches-4.9/950-0180-drm-vc4-Fulfill-user-BO-creation-requests-from-the-k.patch > index c0967b463932..71118e26cc8c 100644 > --- > a/target/linux/brcm2708/patches-4.9/950-0180-drm-vc4-Fulfill-user-BO-creation-requests-from-the-k.patch > +++ > b/target/linux/brcm2708/patches-4.9/950-0180-drm-vc4-Fulfill-user-BO-creation-requests-from-the-k.patch > @@ -22,7 +22,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net> > > --- a/drivers/gpu/drm/vc4/vc4_bo.c > +++ b/drivers/gpu/drm/vc4/vc4_bo.c > -@@ -208,21 +208,22 @@ struct drm_gem_object *vc4_create_object > +@@ -209,21 +209,22 @@ struct drm_gem_object *vc4_create_object > } > > struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, > diff --git > a/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch > b/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch > index 3fed370bee5c..52d0de3914e4 100644 > --- > a/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch > +++ > b/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch > @@ -17,7 +17,7 @@ Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.") > > --- a/drivers/gpu/drm/vc4/vc4_bo.c > +++ b/drivers/gpu/drm/vc4/vc4_bo.c > -@@ -322,6 +322,14 @@ void vc4_free_object(struct drm_gem_obje > +@@ -323,6 +323,14 @@ void vc4_free_object(struct drm_gem_obje > goto out; > } > > diff --git > a/target/linux/brcm63xx/patches-4.9/001-4.15-01-MIPS-BCM63XX-add-clkdev-lookup-support.patch > b/target/linux/brcm63xx/patches-4.9/001-4.15-01-MIPS-BCM63XX-add-clkdev-lookup-support.patch > index 59e9933e5ff0..c193c72ab3e2 100644 > --- > a/target/linux/brcm63xx/patches-4.9/001-4.15-01-MIPS-BCM63XX-add-clkdev-lookup-support.patch > +++ > b/target/linux/brcm63xx/patches-4.9/001-4.15-01-MIPS-BCM63XX-add-clkdev-lookup-support.patch > @@ -16,7 +16,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> > > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -271,6 +271,7 @@ config BCM63XX > +@@ -272,6 +272,7 @@ config BCM63XX > select GPIOLIB > select HAVE_CLK > select MIPS_L1_CACHE_SHIFT_4 > diff --git > a/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch > b/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch > index 6a93398c725d..5ae903b9373c 100644 > --- > a/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch > +++ > b/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch > @@ -42,7 +42,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> > > --- a/drivers/mtd/mtdpart.c > +++ b/drivers/mtd/mtdpart.c > -@@ -953,8 +953,7 @@ int add_mtd_partitions(struct mtd_info * > +@@ -940,8 +940,7 @@ int add_mtd_partitions(struct mtd_info * > add_mtd_device(&slave->mtd); > mtd_partition_split(master, slave); > mtd_add_partition_attrs(slave); > @@ -52,7 +52,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> > > cur_offset = slave->offset + slave->mtd.size; > } > -@@ -1136,7 +1135,9 @@ static int mtd_part_of_parse(struct mtd_ > +@@ -1123,7 +1122,9 @@ static int mtd_part_of_parse(struct mtd_ > const char *fixed = "fixed-partitions"; > int ret, err = 0; > > @@ -63,7 +63,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> > of_property_for_each_string(np, "compatible", prop, compat) { > parser = mtd_part_get_compatible_parser(compat); > if (!parser) > -@@ -1208,8 +1209,12 @@ int parse_mtd_partitions(struct mtd_info > +@@ -1192,8 +1193,12 @@ int parse_mtd_partitions(struct mtd_info > types = types_of; > } > > diff --git > a/target/linux/brcm63xx/patches-4.9/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch > b/target/linux/brcm63xx/patches-4.9/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch > index 0c4d034c0da8..ee0d4d657ade 100644 > --- > a/target/linux/brcm63xx/patches-4.9/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch > +++ > b/target/linux/brcm63xx/patches-4.9/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch > @@ -14,7 +14,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -264,6 +264,9 @@ config BCM63XX > +@@ -265,6 +265,9 @@ config BCM63XX > select SYNC_R4K > select DMA_NONCOHERENT > select IRQ_MIPS_CPU > diff --git a/target/linux/generic/hack-4.9/220-gc_sections.patch > b/target/linux/generic/hack-4.9/220-gc_sections.patch > index 02e36b664ea3..40e4905db299 100644 > --- a/target/linux/generic/hack-4.9/220-gc_sections.patch > +++ b/target/linux/generic/hack-4.9/220-gc_sections.patch > @@ -261,7 +261,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> > #define TRACE_SYSCALLS() > @@ -172,7 +172,7 @@ > #ifdef CONFIG_SERIAL_EARLYCON > - #define EARLYCON_TABLE() STRUCT_ALIGN(); \ > + #define EARLYCON_TABLE() . = ALIGN(8); \ > VMLINUX_SYMBOL(__earlycon_table) = .; \ > - *(__earlycon_table) \ > + KEEP(*(__earlycon_table)) \ > diff --git > a/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch > b/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch > index 7c3e38efcfa5..96ae77ba09bf 100644 > --- a/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch > +++ b/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch > @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> > > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -1155,6 +1155,10 @@ config SYNC_R4K > +@@ -1156,6 +1156,10 @@ config SYNC_R4K > config MIPS_MACHINE > def_bool n > > diff --git > a/target/linux/generic/pending-4.9/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch > b/target/linux/generic/pending-4.9/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch > index 3ec5d7518ab0..8403382de78b 100644 > --- > a/target/linux/generic/pending-4.9/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch > +++ > b/target/linux/generic/pending-4.9/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch > @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> > > --- a/drivers/net/usb/qmi_wwan.c > +++ b/drivers/net/usb/qmi_wwan.c > -@@ -809,6 +809,9 @@ static const struct usb_device_id produc > +@@ -810,6 +810,9 @@ static const struct usb_device_id produc > {QMI_FIXED_INTF(0x0846, 0x68a2, 8)}, > {QMI_FIXED_INTF(0x12d1, 0x140c, 1)}, /* Huawei E173 */ > {QMI_FIXED_INTF(0x12d1, 0x14ac, 1)}, /* Huawei E1820 */ > diff --git > a/target/linux/generic/pending-4.9/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch > b/target/linux/generic/pending-4.9/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch > index 9d9bb4ce1d53..2a41a6a95fba 100644 > --- > a/target/linux/generic/pending-4.9/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch > +++ > b/target/linux/generic/pending-4.9/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch > @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> > > --- a/drivers/net/usb/qmi_wwan.c > +++ b/drivers/net/usb/qmi_wwan.c > -@@ -888,6 +888,7 @@ static const struct usb_device_id produc > +@@ -889,6 +889,7 @@ static const struct usb_device_id produc > {QMI_FIXED_INTF(0x19d2, 0x2002, 4)}, /* ZTE (Vodafone) K3765-Z */ > {QMI_FIXED_INTF(0x2001, 0x7e19, 4)}, /* D-Link DWM-221 B1 */ > {QMI_FIXED_INTF(0x2001, 0x7e35, 4)}, /* D-Link DWM-222 */ > diff --git > a/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch > b/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch > index cd58eb12e811..d7a3effa4cbb 100644 > --- a/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch > +++ b/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch > @@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net> > --- > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -1064,9 +1064,6 @@ config FW_ARC > +@@ -1065,9 +1065,6 @@ config FW_ARC > config ARCH_MAY_HAVE_PC_FDC > bool > > @@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net> > config CEVT_BCM1480 > bool > > -@@ -2963,6 +2960,18 @@ choice > +@@ -2964,6 +2961,18 @@ choice > bool "Extend builtin kernel arguments with bootloader arguments" > endchoice > > diff --git > a/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch > b/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch > index a2ec0760fe1c..5707f90becd1 100644 > --- a/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch > +++ b/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch > @@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski > > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -2887,6 +2887,20 @@ config MIPS_O32_FP64_SUPPORT > +@@ -2888,6 +2888,20 @@ config MIPS_O32_FP64_SUPPORT > > If unsure, say N. > > diff --git > a/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch > b/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch > index 5b237a6d2391..393046cf263d 100644 > --- > a/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch > +++ > b/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch > @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -213,6 +213,7 @@ config BMIPS_GENERIC > +@@ -214,6 +214,7 @@ config BMIPS_GENERIC > select BRCMSTB_L2_IRQ > select IRQ_MIPS_CPU > select DMA_NONCOHERENT > @@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > select SYS_SUPPORTS_32BIT_KERNEL > select SYS_SUPPORTS_LITTLE_ENDIAN > select SYS_SUPPORTS_BIG_ENDIAN > -@@ -338,6 +339,7 @@ config MACH_JAZZ > +@@ -339,6 +340,7 @@ config MACH_JAZZ > select CSRC_R4K > select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN > select GENERIC_ISA_DMA > @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > select HAVE_PCSPKR_PLATFORM > select IRQ_MIPS_CPU > select I8253 > -@@ -1125,6 +1127,9 @@ config DMA_NONCOHERENT > +@@ -1126,6 +1128,9 @@ config DMA_NONCOHERENT > bool > select NEED_DMA_MAP_STATE > > @@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > config NEED_DMA_MAP_STATE > bool > > -@@ -1649,6 +1654,7 @@ config CPU_R10000 > +@@ -1650,6 +1655,7 @@ config CPU_R10000 > select CPU_SUPPORTS_64BIT_KERNEL > select CPU_SUPPORTS_HIGHMEM > select CPU_SUPPORTS_HUGEPAGES > @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > help > MIPS Technologies R10000-series processors. > > -@@ -1894,9 +1900,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 > +@@ -1895,9 +1901,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 > bool > > config SYS_HAS_CPU_MIPS32_R5 > @@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > bool > > config SYS_HAS_CPU_MIPS64_R1 > -@@ -1906,6 +1914,7 @@ config SYS_HAS_CPU_MIPS64_R2 > +@@ -1907,6 +1915,7 @@ config SYS_HAS_CPU_MIPS64_R2 > bool > > config SYS_HAS_CPU_MIPS64_R6 > diff --git > a/target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch > b/target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch > index c1b0d4f16b89..905675e50c51 100644 > --- > a/target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch > +++ > b/target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch > @@ -7,7 +7,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua> > 1 file changed, 1 insertion(+) > --- a/drivers/mtd/chips/cfi_cmdset_0002.c > +++ b/drivers/mtd/chips/cfi_cmdset_0002.c > -@@ -1828,6 +1828,7 @@ static int __xipram do_write_buffer(stru > +@@ -1829,6 +1829,7 @@ static int __xipram do_write_buffer(stru > > /* Write Buffer Load */ > map_write(map, CMD(0x25), cmd_adr); > diff --git > a/target/linux/generic/pending-4.9/630-packet_socket_type.patch > b/target/linux/generic/pending-4.9/630-packet_socket_type.patch > index 092011d0ec60..08d730ac31ed 100644 > --- a/target/linux/generic/pending-4.9/630-packet_socket_type.patch > +++ b/target/linux/generic/pending-4.9/630-packet_socket_type.patch > @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > #define PACKET_FANOUT_LB 1 > --- a/net/packet/af_packet.c > +++ b/net/packet/af_packet.c > -@@ -1773,6 +1773,7 @@ static int packet_rcv_spkt(struct sk_buf > +@@ -1780,6 +1780,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 <nbd@nbd.name> > > /* > * When we registered the protocol we saved the socket in the data > -@@ -1780,6 +1781,7 @@ static int packet_rcv_spkt(struct sk_buf > +@@ -1787,6 +1788,7 @@ static int packet_rcv_spkt(struct sk_buf > */ > > sk = pt->af_packet_priv; > @@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > > /* > * Yank back the headers [hope the device set this > -@@ -1792,7 +1794,7 @@ static int packet_rcv_spkt(struct sk_buf > +@@ -1799,7 +1801,7 @@ static int packet_rcv_spkt(struct sk_buf > * so that this procedure is noop. > */ > > @@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > goto out; > > if (!net_eq(dev_net(dev), sock_net(sk))) > -@@ -2030,12 +2032,12 @@ static int packet_rcv(struct sk_buff *sk > +@@ -2037,12 +2039,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 <nbd@nbd.name> > if (!net_eq(dev_net(dev), sock_net(sk))) > goto drop; > > -@@ -2161,12 +2163,12 @@ static int tpacket_rcv(struct sk_buff *s > +@@ -2168,12 +2170,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 <nbd@nbd.name> > if (!net_eq(dev_net(dev), sock_net(sk))) > goto drop; > > -@@ -3251,6 +3253,7 @@ static int packet_create(struct net *net > +@@ -3260,6 +3262,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 <nbd@nbd.name> > > if (sock->type == SOCK_PACKET) > po->prot_hook.func = packet_rcv_spkt; > -@@ -3837,6 +3840,16 @@ packet_setsockopt(struct socket *sock, i > +@@ -3873,6 +3876,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 <nbd@nbd.name> > default: > return -ENOPROTOOPT; > } > -@@ -3889,6 +3902,13 @@ static int packet_getsockopt(struct sock > +@@ -3925,6 +3938,13 @@ static int packet_getsockopt(struct sock > case PACKET_VNET_HDR: > val = po->has_vnet_hdr; > break; > diff --git > a/target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch > b/target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch > index 14715718cbf4..2cebf55a447b 100644 > --- > a/target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch > +++ > b/target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch > @@ -171,7 +171,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > /* > * Allocate a dst for local (unicast / anycast) address. > */ > -@@ -2848,7 +2881,8 @@ static int rtm_to_fib6_config(struct sk_ > +@@ -2850,7 +2883,8 @@ static int rtm_to_fib6_config(struct sk_ > if (rtm->rtm_type == RTN_UNREACHABLE || > rtm->rtm_type == RTN_BLACKHOLE || > rtm->rtm_type == RTN_PROHIBIT || > @@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > cfg->fc_flags |= RTF_REJECT; > > if (rtm->rtm_type == RTN_LOCAL) > -@@ -3220,6 +3254,9 @@ static int rt6_fill_node(struct net *net > +@@ -3222,6 +3256,9 @@ static int rt6_fill_node(struct net *net > case -EACCES: > rtm->rtm_type = RTN_PROHIBIT; > break; > @@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > case -EAGAIN: > rtm->rtm_type = RTN_THROW; > break; > -@@ -3496,6 +3533,8 @@ static int ip6_route_dev_notify(struct n > +@@ -3498,6 +3535,8 @@ static int ip6_route_dev_notify(struct n > #ifdef CONFIG_IPV6_MULTIPLE_TABLES > net->ipv6.ip6_prohibit_entry->dst.dev = dev; > net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); > @@ -200,7 +200,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > net->ipv6.ip6_blk_hole_entry->dst.dev = dev; > net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); > #endif > -@@ -3507,6 +3546,7 @@ static int ip6_route_dev_notify(struct n > +@@ -3509,6 +3548,7 @@ static int ip6_route_dev_notify(struct n > in6_dev_put(net->ipv6.ip6_null_entry->rt6i_idev); > #ifdef CONFIG_IPV6_MULTIPLE_TABLES > in6_dev_put(net->ipv6.ip6_prohibit_entry->rt6i_idev); > @@ -208,7 +208,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > in6_dev_put(net->ipv6.ip6_blk_hole_entry->rt6i_idev); > #endif > } > -@@ -3722,6 +3762,17 @@ static int __net_init ip6_route_net_init > +@@ -3724,6 +3764,17 @@ static int __net_init ip6_route_net_init > net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; > dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, > ip6_template_metrics, true); > @@ -226,7 +226,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > #endif > > net->ipv6.sysctl.flush_delay = 0; > -@@ -3740,6 +3791,8 @@ out: > +@@ -3742,6 +3793,8 @@ out: > return ret; > > #ifdef CONFIG_IPV6_MULTIPLE_TABLES > @@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > out_ip6_prohibit_entry: > kfree(net->ipv6.ip6_prohibit_entry); > out_ip6_null_entry: > -@@ -3757,6 +3810,7 @@ static void __net_exit ip6_route_net_exi > +@@ -3759,6 +3812,7 @@ static void __net_exit ip6_route_net_exi > #ifdef CONFIG_IPV6_MULTIPLE_TABLES > kfree(net->ipv6.ip6_prohibit_entry); > kfree(net->ipv6.ip6_blk_hole_entry); > @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> > #endif > dst_entries_destroy(&net->ipv6.ip6_dst_ops); > } > -@@ -3830,6 +3884,9 @@ void __init ip6_route_init_special_entri > +@@ -3832,6 +3886,9 @@ void __init ip6_route_init_special_entri > init_net.ipv6.ip6_prohibit_entry->rt6i_idev = > in6_dev_get(init_net.loopback_dev); > init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; > init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = > in6_dev_get(init_net.loopback_dev); > diff --git > a/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch > b/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch > index 1cb51a2ed53a..6cb745ee3329 100644 > --- a/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch > +++ b/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch > @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > > --- a/include/linux/serial_core.h > +++ b/include/linux/serial_core.h > -@@ -448,7 +448,7 @@ extern void uart_handle_cts_change(struc > +@@ -455,7 +455,7 @@ extern void uart_handle_cts_change(struc > extern void uart_insert_char(struct uart_port *port, unsigned int status, > unsigned int overrun, unsigned int ch, unsigned int flag); > > @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> > { > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > -@@ -410,6 +410,11 @@ config MAGIC_SYSRQ_DEFAULT_ENABLE > +@@ -396,6 +396,11 @@ config MAGIC_SYSRQ_DEFAULT_ENABLE > This may be set to 1 or 0 to enable or disable them all, or > to a bitmask as described in Documentation/sysrq.txt. > > diff --git > a/target/linux/ixp4xx/patches-4.9/090-increase_entropy_pools.patch > b/target/linux/ixp4xx/patches-4.9/090-increase_entropy_pools.patch > index 2b4db053c25b..9da213911e24 100644 > --- a/target/linux/ixp4xx/patches-4.9/090-increase_entropy_pools.patch > +++ b/target/linux/ixp4xx/patches-4.9/090-increase_entropy_pools.patch > @@ -1,6 +1,6 @@ > --- a/drivers/char/random.c > +++ b/drivers/char/random.c > -@@ -278,11 +278,11 @@ > +@@ -279,11 +279,11 @@ > /* > * Configuration information > */ > diff --git a/target/linux/lantiq/patches-4.9/0152-lantiq-VPE.patch > b/target/linux/lantiq/patches-4.9/0152-lantiq-VPE.patch > index 7b14d9e5a906..7d6e4b808989 100644 > --- a/target/linux/lantiq/patches-4.9/0152-lantiq-VPE.patch > +++ b/target/linux/lantiq/patches-4.9/0152-lantiq-VPE.patch > @@ -1,6 +1,6 @@ > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > -@@ -2320,6 +2320,12 @@ config MIPS_VPE_LOADER > +@@ -2321,6 +2321,12 @@ config MIPS_VPE_LOADER > Includes a loader for loading an elf relocatable object > onto another VPE and running it. > > diff --git > a/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch > b/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch > index c01db458a5f2..f8917291ee25 100644 > --- a/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch > +++ b/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch > @@ -44,15 +44,15 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> > > --- a/drivers/net/usb/cdc_ether.c > +++ b/drivers/net/usb/cdc_ether.c > -@@ -532,6 +532,7 @@ static const struct driver_info wwan_inf > - #define LENOVO_VENDOR_ID 0x17ef > +@@ -533,6 +533,7 @@ static const struct driver_info wwan_inf > + #define LINKSYS_VENDOR_ID 0x13b1 > #define NVIDIA_VENDOR_ID 0x0955 > #define HP_VENDOR_ID 0x03f0 > +#define TPLINK_VENDOR_ID 0x2357 > > static const struct usb_device_id products[] = { > /* BLACKLIST !! > -@@ -732,6 +733,13 @@ static const struct usb_device_id produc > +@@ -742,6 +743,13 @@ static const struct usb_device_id produc > USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), > .driver_info = 0, > }, > @@ -68,15 +68,15 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> > * > --- a/drivers/net/usb/r8152.c > +++ b/drivers/net/usb/r8152.c > -@@ -520,6 +520,7 @@ enum rtl8152_flags { > - #define VENDOR_ID_SAMSUNG 0x04e8 > +@@ -521,6 +521,7 @@ enum rtl8152_flags { > #define VENDOR_ID_LENOVO 0x17ef > + #define VENDOR_ID_LINKSYS 0x13b1 > #define VENDOR_ID_NVIDIA 0x0955 > +#define VENDOR_ID_TPLINK 0x2357 > > #define MCU_TYPE_PLA 0x0100 > #define MCU_TYPE_USB 0x0000 > -@@ -1816,6 +1817,10 @@ static int rx_bottom(struct r8152 *tp, i > +@@ -1817,6 +1818,10 @@ static int rx_bottom(struct r8152 *tp, i > unsigned int pkt_len; > struct sk_buff *skb; > > @@ -87,9 +87,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> > pkt_len = le32_to_cpu(rx_desc->opts1) & RX_LEN_MASK; > if (pkt_len < ETH_ZLEN) > break; > -@@ -4507,6 +4512,7 @@ static struct usb_device_id rtl8152_tabl > - {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x7205)}, > +@@ -4509,6 +4514,7 @@ static struct usb_device_id rtl8152_tabl > {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x304f)}, > + {REALTEK_USB_DEVICE(VENDOR_ID_LINKSYS, 0x0041)}, > {REALTEK_USB_DEVICE(VENDOR_ID_NVIDIA, 0x09ff)}, > + {REALTEK_USB_DEVICE(VENDOR_ID_TPLINK, 0x0601)}, > {} > @@ -156,7 +156,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> > int ret; > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > -@@ -4415,6 +4415,14 @@ hub_port_init(struct usb_hub *hub, struc > +@@ -4423,6 +4423,14 @@ hub_port_init(struct usb_hub *hub, struc > else > speed = usb_speed_string(udev->speed); > > diff --git > a/target/linux/mpc85xx/patches-4.9/102-powerpc-add-cmdline-override.patch > b/target/linux/mpc85xx/patches-4.9/102-powerpc-add-cmdline-override.patch > index c70ac1bb9d52..55976c32b16c 100644 > --- a/target/linux/mpc85xx/patches-4.9/102-powerpc-add-cmdline-override.patch > +++ b/target/linux/mpc85xx/patches-4.9/102-powerpc-add-cmdline-override.patch > @@ -17,7 +17,7 @@ > help > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > -@@ -1079,6 +1079,17 @@ int __init early_init_dt_scan_chosen(uns > +@@ -1082,6 +1082,17 @@ int __init early_init_dt_scan_chosen(uns > if (p != NULL && l > 0) > strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE)); > > diff --git > a/target/linux/sunxi/patches-4.9/0052-stmmac-form-4-12.patch > b/target/linux/sunxi/patches-4.9/0052-stmmac-form-4-12.patch > index aa6b813daf74..3d9bbb229553 100644 > --- a/target/linux/sunxi/patches-4.9/0052-stmmac-form-4-12.patch > +++ b/target/linux/sunxi/patches-4.9/0052-stmmac-form-4-12.patch > @@ -3095,7 +3095,7 @@ > > if (priv->hw->mode->set_16kib_bfsize) > bfsize = priv->hw->mode->set_16kib_bfsize(dev->mtu); > -@@ -1033,235 +1234,409 @@ static int init_dma_desc_rings(struct ne > +@@ -1033,257 +1234,516 @@ static int init_dma_desc_rings(struct ne > > priv->dma_buf_sz = bfsize; > > @@ -3351,17 +3351,10 @@ > - priv->tx_skbuff_dma[i].buf, > - priv->tx_skbuff_dma[i].len, > - DMA_TO_DEVICE); > -- } > + for (i = 0; i < DMA_TX_SIZE; i++) > + stmmac_free_tx_buffer(priv, queue, i); > +} > - > -- if (priv->tx_skbuff[i]) { > -- dev_kfree_skb_any(priv->tx_skbuff[i]); > -- priv->tx_skbuff[i] = NULL; > -- priv->tx_skbuff_dma[i].buf = 0; > -- priv->tx_skbuff_dma[i].map_as_page = false; > -- } > ++ > +/** > + * free_dma_rx_desc_resources - free RX dma desc resources > + * @priv: private structure > @@ -3390,11 +3383,10 @@ > + > + kfree(rx_q->rx_skbuff_dma); > + kfree(rx_q->rx_skbuff); > - } > - } > - > - /** > -- * alloc_dma_desc_resources - alloc TX/RX resources. > ++ } > ++} > ++ > ++/** > + * free_dma_tx_desc_resources - free TX dma desc resources > + * @priv: private structure > + */ > @@ -3427,90 +3419,36 @@ > + > +/** > + * alloc_dma_rx_desc_resources - alloc RX resources. > - * @priv: private structure > - * Description: according to which descriptor can be used (extend or basic) > - * this function allocates the resources for TX and RX paths. In case of > - * reception, for example, it pre-allocated the RX socket buffer > in order to > - * allow zero-copy mechanism. > - */ > --static int alloc_dma_desc_resources(struct stmmac_priv *priv) > ++ * @priv: private structure > ++ * Description: according to which descriptor can be used (extend or basic) > ++ * this function allocates the resources for TX and RX paths. In case of > ++ * reception, for example, it pre-allocated the RX socket buffer > in order to > ++ * allow zero-copy mechanism. > ++ */ > +static int alloc_dma_rx_desc_resources(struct stmmac_priv *priv) > - { > ++{ > + u32 rx_count = priv->plat->rx_queues_to_use; > - int ret = -ENOMEM; > ++ int ret = -ENOMEM; > + u32 queue; > - > -- priv->rx_skbuff_dma = kmalloc_array(DMA_RX_SIZE, sizeof(dma_addr_t), > -- GFP_KERNEL); > -- if (!priv->rx_skbuff_dma) > -- return -ENOMEM; > ++ > + /* RX queues buffers and DMA */ > + for (queue = 0; queue < rx_count; queue++) { > + struct stmmac_rx_queue *rx_q = &priv->rx_queue[queue]; > - > -- priv->rx_skbuff = kmalloc_array(DMA_RX_SIZE, sizeof(struct sk_buff *), > -- GFP_KERNEL); > -- if (!priv->rx_skbuff) > -- goto err_rx_skbuff; > -- > -- priv->tx_skbuff_dma = kmalloc_array(DMA_TX_SIZE, > -- sizeof(*priv->tx_skbuff_dma), > -- GFP_KERNEL); > -- if (!priv->tx_skbuff_dma) > -- goto err_tx_skbuff_dma; > -- > -- priv->tx_skbuff = kmalloc_array(DMA_TX_SIZE, sizeof(struct sk_buff *), > -- GFP_KERNEL); > -- if (!priv->tx_skbuff) > -- goto err_tx_skbuff; > -- > -- if (priv->extend_desc) { > -- priv->dma_erx = dma_zalloc_coherent(priv->device, DMA_RX_SIZE * > -- sizeof(struct > -- dma_extended_desc), > -- &priv->dma_rx_phy, > -- GFP_KERNEL); > -- if (!priv->dma_erx) > -- goto err_dma; > ++ > + rx_q->queue_index = queue; > + rx_q->priv_data = priv; > - > -- priv->dma_etx = dma_zalloc_coherent(priv->device, DMA_TX_SIZE * > -- sizeof(struct > -- dma_extended_desc), > -- &priv->dma_tx_phy, > ++ > + rx_q->rx_skbuff_dma = kmalloc_array(DMA_RX_SIZE, > + sizeof(dma_addr_t), > - GFP_KERNEL); > -- if (!priv->dma_etx) { > -- dma_free_coherent(priv->device, DMA_RX_SIZE * > -- sizeof(struct dma_extended_desc), > -- priv->dma_erx, priv->dma_rx_phy); > -- goto err_dma; > -- } > -- } else { > -- priv->dma_rx = dma_zalloc_coherent(priv->device, DMA_RX_SIZE * > -- sizeof(struct dma_desc), > -- &priv->dma_rx_phy, > -- GFP_KERNEL); > -- if (!priv->dma_rx) > -- goto err_dma; > ++ GFP_KERNEL); > + if (!rx_q->rx_skbuff_dma) > + return -ENOMEM; > - > -- priv->dma_tx = dma_zalloc_coherent(priv->device, DMA_TX_SIZE * > -- sizeof(struct dma_desc), > -- &priv->dma_tx_phy, > -- GFP_KERNEL); > -- if (!priv->dma_tx) { > -- dma_free_coherent(priv->device, DMA_RX_SIZE * > -- sizeof(struct dma_desc), > -- priv->dma_rx, priv->dma_rx_phy); > ++ > + rx_q->rx_skbuff = kmalloc_array(DMA_RX_SIZE, > + sizeof(struct sk_buff *), > + GFP_KERNEL); > + if (!rx_q->rx_skbuff) > - goto err_dma; > ++ goto err_dma; > + > + if (priv->extend_desc) { > + rx_q->dma_erx = dma_zalloc_coherent(priv->device, > @@ -3531,19 +3469,12 @@ > + GFP_KERNEL); > + if (!rx_q->dma_rx) > + goto err_dma; > - } > - } > - > - return 0; > - > - err_dma: > -- kfree(priv->tx_skbuff); > --err_tx_skbuff: > -- kfree(priv->tx_skbuff_dma); > --err_tx_skbuff_dma: > -- kfree(priv->rx_skbuff); > --err_rx_skbuff: > -- kfree(priv->rx_skbuff_dma); > ++ } > ++ } > ++ > ++ return 0; > ++ > ++err_dma: > + free_dma_rx_desc_resources(priv); > + > + return ret; > @@ -3600,7 +3531,7 @@ > + GFP_KERNEL); > + if (!tx_q->dma_tx) > + goto err_dma_buffers; > -+ } > + } > + } > + > + return 0; > @@ -3629,85 +3560,126 @@ > + > + ret = alloc_dma_tx_desc_resources(priv); > + > - return ret; > - } > - > ++ return ret; > ++} > ++ > +/** > + * free_dma_desc_resources - free dma desc resources > + * @priv: private structure > + */ > - static void free_dma_desc_resources(struct stmmac_priv *priv) > - { > -- /* Release the DMA TX/RX socket buffers */ > -- dma_free_rx_skbufs(priv); > -- dma_free_tx_skbufs(priv); > -- > -- /* Free DMA regions of consistent memory previously allocated */ > -- if (!priv->extend_desc) { > -- dma_free_coherent(priv->device, > -- DMA_TX_SIZE * sizeof(struct dma_desc), > -- priv->dma_tx, priv->dma_tx_phy); > -- dma_free_coherent(priv->device, > -- DMA_RX_SIZE * sizeof(struct dma_desc), > -- priv->dma_rx, priv->dma_rx_phy); > -- } else { > -- dma_free_coherent(priv->device, DMA_TX_SIZE * > -- sizeof(struct dma_extended_desc), > -- priv->dma_etx, priv->dma_tx_phy); > -- dma_free_coherent(priv->device, DMA_RX_SIZE * > -- sizeof(struct dma_extended_desc), > -- priv->dma_erx, priv->dma_rx_phy); > -- } > -- kfree(priv->rx_skbuff_dma); > -- kfree(priv->rx_skbuff); > -- kfree(priv->tx_skbuff_dma); > -- kfree(priv->tx_skbuff); > ++static void free_dma_desc_resources(struct stmmac_priv *priv) > ++{ > + /* Release the DMA RX socket buffers */ > + free_dma_rx_desc_resources(priv); > + > + /* Release the DMA TX socket buffers */ > + free_dma_tx_desc_resources(priv); > - } > - > - /** > -@@ -1271,19 +1646,104 @@ static void free_dma_desc_resources(stru > - */ > - static void stmmac_mac_enable_rx_queues(struct stmmac_priv *priv) > - { > -- int rx_count = priv->dma_cap.number_rx_queues; > -- int queue = 0; > ++} > ++ > ++/** > ++ * stmmac_mac_enable_rx_queues - Enable MAC rx queues > ++ * @priv: driver private structure > ++ * Description: It is used for enabling the rx queues in the MAC > ++ */ > ++static void stmmac_mac_enable_rx_queues(struct stmmac_priv *priv) > ++{ > + u32 rx_queues_count = priv->plat->rx_queues_to_use; > + int queue; > + u8 mode; > > -- /* If GMAC does not have multiple queues, then this is not necessary*/ > -- if (rx_count == 1) > -- return; > +- if (priv->tx_skbuff[i]) { > +- dev_kfree_skb_any(priv->tx_skbuff[i]); > +- priv->tx_skbuff[i] = NULL; > +- priv->tx_skbuff_dma[i].buf = 0; > +- priv->tx_skbuff_dma[i].map_as_page = false; > +- } > + for (queue = 0; queue < rx_queues_count; queue++) { > + mode = priv->plat->rx_queues_cfg[queue].mode_to_use; > + priv->hw->mac->rx_queue_enable(priv->hw, mode, queue); > -+ } > -+} > + } > + } > > -- /** > -- * If the core is synthesized with multiple rx queues / multiple > -- * dma channels, then rx queues will be disabled by default. > -- * For now only rx queue 0 is enabled. > -- */ > -- priv->hw->mac->rx_queue_enable(priv->hw, queue); > -+/** > + /** > +- * alloc_dma_desc_resources - alloc TX/RX resources. > +- * @priv: private structure > +- * Description: according to which descriptor can be used (extend or basic) > +- * this function allocates the resources for TX and RX paths. In case of > +- * reception, for example, it pre-allocated the RX socket buffer > in order to > +- * allow zero-copy mechanism. > + * stmmac_start_rx_dma - start RX DMA channel > + * @priv: driver private structure > + * @chan: RX channel index > + * Description: > + * This starts a RX DMA channel > -+ */ > + */ > +-static int alloc_dma_desc_resources(struct stmmac_priv *priv) > +static void stmmac_start_rx_dma(struct stmmac_priv *priv, u32 chan) > -+{ > + { > +- int ret = -ENOMEM; > +- > +- priv->rx_skbuff_dma = kmalloc_array(DMA_RX_SIZE, sizeof(dma_addr_t), > +- GFP_KERNEL); > +- if (!priv->rx_skbuff_dma) > +- return -ENOMEM; > +- > +- priv->rx_skbuff = kmalloc_array(DMA_RX_SIZE, sizeof(struct sk_buff *), > +- GFP_KERNEL); > +- if (!priv->rx_skbuff) > +- goto err_rx_skbuff; > +- > +- priv->tx_skbuff_dma = kmalloc_array(DMA_TX_SIZE, > +- sizeof(*priv->tx_skbuff_dma), > +- GFP_KERNEL); > +- if (!priv->tx_skbuff_dma) > +- goto err_tx_skbuff_dma; > +- > +- priv->tx_skbuff = kmalloc_array(DMA_TX_SIZE, sizeof(struct sk_buff *), > +- GFP_KERNEL); > +- if (!priv->tx_skbuff) > +- goto err_tx_skbuff; > +- > +- if (priv->extend_desc) { > +- priv->dma_erx = dma_zalloc_coherent(priv->device, DMA_RX_SIZE * > +- sizeof(struct > +- dma_extended_desc), > +- &priv->dma_rx_phy, > +- GFP_KERNEL); > +- if (!priv->dma_erx) > +- goto err_dma; > +- > +- priv->dma_etx = dma_zalloc_coherent(priv->device, DMA_TX_SIZE * > +- sizeof(struct > +- dma_extended_desc), > +- &priv->dma_tx_phy, > +- GFP_KERNEL); > +- if (!priv->dma_etx) { > +- dma_free_coherent(priv->device, DMA_RX_SIZE * > +- sizeof(struct dma_extended_desc), > +- priv->dma_erx, priv->dma_rx_phy); > +- goto err_dma; > +- } > +- } else { > +- priv->dma_rx = dma_zalloc_coherent(priv->device, DMA_RX_SIZE * > +- sizeof(struct dma_desc), > +- &priv->dma_rx_phy, > +- GFP_KERNEL); > +- if (!priv->dma_rx) > +- goto err_dma; > + netdev_dbg(priv->dev, "DMA RX processes started in channel %d\n", chan); > + priv->hw->dma->start_rx(priv->ioaddr, chan); > +} > -+ > + > +- priv->dma_tx = dma_zalloc_coherent(priv->device, DMA_TX_SIZE * > +- sizeof(struct dma_desc), > +- &priv->dma_tx_phy, > +- GFP_KERNEL); > +- if (!priv->dma_tx) { > +- dma_free_coherent(priv->device, DMA_RX_SIZE * > +- sizeof(struct dma_desc), > +- priv->dma_rx, priv->dma_rx_phy); > +- goto err_dma; > +- } > +- } > +/** > + * stmmac_start_tx_dma - start TX DMA channel > + * @priv: driver private structure > @@ -3720,7 +3692,8 @@ > + netdev_dbg(priv->dev, "DMA TX processes started in channel %d\n", chan); > + priv->hw->dma->start_tx(priv->ioaddr, chan); > +} > -+ > + > +- return 0; > +/** > + * stmmac_stop_rx_dma - stop RX DMA channel > + * @priv: driver private structure > @@ -3733,7 +3706,16 @@ > + netdev_dbg(priv->dev, "DMA RX processes stopped in channel %d\n", chan); > + priv->hw->dma->stop_rx(priv->ioaddr, chan); > +} > -+ > + > +-err_dma: > +- kfree(priv->tx_skbuff); > +-err_tx_skbuff: > +- kfree(priv->tx_skbuff_dma); > +-err_tx_skbuff_dma: > +- kfree(priv->rx_skbuff); > +-err_rx_skbuff: > +- kfree(priv->rx_skbuff_dma); > +- return ret; > +/** > + * stmmac_stop_tx_dma - stop TX DMA channel > + * @priv: driver private structure > @@ -3745,8 +3727,9 @@ > +{ > + netdev_dbg(priv->dev, "DMA TX processes stopped in channel %d\n", chan); > + priv->hw->dma->stop_tx(priv->ioaddr, chan); > -+} > -+ > + } > + > +-static void free_dma_desc_resources(struct stmmac_priv *priv) > +/** > + * stmmac_start_all_dma - start all RX and TX DMA channels > + * @priv: driver private structure > @@ -3754,7 +3737,31 @@ > + * This starts all the RX and TX DMA channels > + */ > +static void stmmac_start_all_dma(struct stmmac_priv *priv) > -+{ > + { > +- /* Release the DMA TX/RX socket buffers */ > +- dma_free_rx_skbufs(priv); > +- dma_free_tx_skbufs(priv); > +- > +- /* Free DMA regions of consistent memory previously allocated */ > +- if (!priv->extend_desc) { > +- dma_free_coherent(priv->device, > +- DMA_TX_SIZE * sizeof(struct dma_desc), > +- priv->dma_tx, priv->dma_tx_phy); > +- dma_free_coherent(priv->device, > +- DMA_RX_SIZE * sizeof(struct dma_desc), > +- priv->dma_rx, priv->dma_rx_phy); > +- } else { > +- dma_free_coherent(priv->device, DMA_TX_SIZE * > +- sizeof(struct dma_extended_desc), > +- priv->dma_etx, priv->dma_tx_phy); > +- dma_free_coherent(priv->device, DMA_RX_SIZE * > +- sizeof(struct dma_extended_desc), > +- priv->dma_erx, priv->dma_rx_phy); > +- } > +- kfree(priv->rx_skbuff_dma); > +- kfree(priv->rx_skbuff); > +- kfree(priv->tx_skbuff_dma); > +- kfree(priv->tx_skbuff); > + u32 rx_channels_count = priv->plat->rx_queues_to_use; > + u32 tx_channels_count = priv->plat->tx_queues_to_use; > + u32 chan = 0; > @@ -3764,23 +3771,38 @@ > + > + for (chan = 0; chan < tx_channels_count; chan++) > + stmmac_start_tx_dma(priv, chan); > -+} > -+ > -+/** > + } > + > + /** > +- * stmmac_mac_enable_rx_queues - Enable MAC rx queues > +- * @priv: driver private structure > +- * Description: It is used for enabling the rx queues in the MAC > + * stmmac_stop_all_dma - stop all RX and TX DMA channels > + * @priv: driver private structure > + * Description: > + * This stops the RX and TX DMA channels > -+ */ > + */ > +-static void stmmac_mac_enable_rx_queues(struct stmmac_priv *priv) > +static void stmmac_stop_all_dma(struct stmmac_priv *priv) > -+{ > + { > +- int rx_count = priv->dma_cap.number_rx_queues; > +- int queue = 0; > + u32 rx_channels_count = priv->plat->rx_queues_to_use; > + u32 tx_channels_count = priv->plat->tx_queues_to_use; > + u32 chan = 0; > -+ > + > +- /* If GMAC does not have multiple queues, then this is not necessary*/ > +- if (rx_count == 1) > +- return; > + for (chan = 0; chan < rx_channels_count; chan++) > + stmmac_stop_rx_dma(priv, chan); > -+ > + > +- /** > +- * If the core is synthesized with multiple rx queues / multiple > +- * dma channels, then rx queues will be disabled by default. > +- * For now only rx queue 0 is enabled. > +- */ > +- priv->hw->mac->rx_queue_enable(priv->hw, queue); > + for (chan = 0; chan < tx_channels_count; chan++) > + stmmac_stop_tx_dma(priv, chan); > } > diff --git a/target/linux/uml/patches-4.9/101-mconsole-exec.patch > b/target/linux/uml/patches-4.9/101-mconsole-exec.patch > index 6682338f3963..ea9da8d8c3d1 100644 > --- a/target/linux/uml/patches-4.9/101-mconsole-exec.patch > +++ b/target/linux/uml/patches-4.9/101-mconsole-exec.patch > @@ -123,7 +123,7 @@ > }; > --- a/arch/um/os-Linux/file.c > +++ b/arch/um/os-Linux/file.c > -@@ -554,6 +554,8 @@ int os_create_unix_socket(const char *fi > +@@ -555,6 +555,8 @@ int os_create_unix_socket(const char *fi > > addr.sun_family = AF_UNIX;
diff --git a/include/kernel-version.mk b/include/kernel-version.mk index cf84e31f7b0f..e49b66dcf21f 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -4,12 +4,12 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .71 LINUX_VERSION-4.4 = .121 -LINUX_VERSION-4.9 = .96 +LINUX_VERSION-4.9 = .99 LINUX_VERSION-4.14 = .37 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240 LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729 -LINUX_KERNEL_HASH-4.9.96 = 826f596eb5197f8b17304649c2990dd7b766f5c79076cae79f4261c40cea877f +LINUX_KERNEL_HASH-4.9.99 = 3dc3eb8c918bca444c8e6c061d534b1a8a5ac60a5b5d7065141f7b8e204213df LINUX_KERNEL_HASH-4.14.37 = 8197e7ed3620713e412905430a7bf93e2048384042ffba189a66f0eeb6908e92 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch b/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch index 67ed3e494a0d..639f09709ba8 100644 --- a/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch +++ b/target/linux/ar7/patches-4.9/300-add-ac49x-platform.patch @@ -37,7 +37,7 @@ #define AR7_IRQ_UART0 15 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -160,7 +160,7 @@ config AR7 +@@ -161,7 +161,7 @@ config AR7 select HAVE_CLK help Support for the Texas Instruments AR7 System-on-a-Chip @@ -46,7 +46,7 @@ config ATH25 bool "Atheros AR231x/AR531x SoC support" -@@ -1004,6 +1004,7 @@ config MIPS_PARAVIRT +@@ -1005,6 +1005,7 @@ config MIPS_PARAVIRT endchoice source "arch/mips/alchemy/Kconfig" diff --git a/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch b/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch index 415d835ee348..3a7fe99e6524 100644 --- a/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch +++ b/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c -@@ -1630,8 +1630,8 @@ static int __xipram do_write_oneword(str +@@ -1631,8 +1631,8 @@ static int __xipram do_write_oneword(str break; } @@ -11,7 +11,7 @@ /* Latency issues. Drop the lock, wait a while and retry */ UDELAY(map, chip, adr, 1); -@@ -1647,6 +1647,8 @@ static int __xipram do_write_oneword(str +@@ -1648,6 +1648,8 @@ static int __xipram do_write_oneword(str ret = -EIO; } @@ -20,7 +20,7 @@ xip_enable(map, chip, adr); op_done: if (mode == FL_OTP_WRITE) -@@ -2225,7 +2227,6 @@ static int cfi_amdstd_panic_write(struct +@@ -2226,7 +2228,6 @@ static int cfi_amdstd_panic_write(struct return 0; } @@ -28,7 +28,7 @@ /* * Handle devices with one erase region, that only implement * the chip erase command. -@@ -2289,8 +2290,8 @@ static int __xipram do_erase_chip(struct +@@ -2291,8 +2292,8 @@ static int __xipram do_erase_chip(struct chip->erase_suspended = 0; } @@ -39,7 +39,7 @@ if (time_after(jiffies, timeo)) { printk(KERN_WARNING "MTD %s(): software timeout\n", -@@ -2310,6 +2311,7 @@ static int __xipram do_erase_chip(struct +@@ -2312,6 +2313,7 @@ static int __xipram do_erase_chip(struct ret = -EIO; } @@ -47,7 +47,7 @@ chip->state = FL_READY; xip_enable(map, chip, adr); DISABLE_VPP(map); -@@ -2378,9 +2380,9 @@ static int __xipram do_erase_oneblock(st +@@ -2381,9 +2383,9 @@ static int __xipram do_erase_oneblock(st chip->erase_suspended = 0; } @@ -59,7 +59,7 @@ } if (time_after(jiffies, timeo)) { -@@ -2402,6 +2404,7 @@ static int __xipram do_erase_oneblock(st +@@ -2405,6 +2407,7 @@ static int __xipram do_erase_oneblock(st ret = -EIO; } diff --git a/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch b/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch index 7f5b2f55acd1..25a73dcdff59 100644 --- a/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch +++ b/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch @@ -35,7 +35,7 @@ /* Atmel chips don't use the same PRI format as AMD chips */ static void fixup_convert_atmel_pri(struct mtd_info *mtd) -@@ -1789,6 +1793,7 @@ static int cfi_amdstd_write_words(struct +@@ -1790,6 +1794,7 @@ static int cfi_amdstd_write_words(struct /* * FIXME: interleaved mode not tested, and probably not supported! */ @@ -43,7 +43,7 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, unsigned long adr, const u_char *buf, int len) -@@ -1917,7 +1922,6 @@ static int __xipram do_write_buffer(stru +@@ -1918,7 +1923,6 @@ static int __xipram do_write_buffer(stru return ret; } @@ -51,7 +51,7 @@ static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf) { -@@ -1992,6 +1996,7 @@ static int cfi_amdstd_write_buffers(stru +@@ -1993,6 +1997,7 @@ static int cfi_amdstd_write_buffers(stru return 0; } diff --git a/target/linux/ar71xx/patches-4.9/500-MIPS-fw-myloader.patch b/target/linux/ar71xx/patches-4.9/500-MIPS-fw-myloader.patch index d6a9276c3251..301422a7d8a1 100644 --- a/target/linux/ar71xx/patches-4.9/500-MIPS-fw-myloader.patch +++ b/target/linux/ar71xx/patches-4.9/500-MIPS-fw-myloader.patch @@ -10,7 +10,7 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1149,6 +1149,9 @@ config MIPS_MSC +@@ -1150,6 +1150,9 @@ config MIPS_MSC config MIPS_NILE4 bool diff --git a/target/linux/ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch b/target/linux/ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch index c0b5459e4578..89dd32a7c10c 100644 --- a/target/linux/ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch +++ b/target/linux/ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch @@ -1,6 +1,6 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -195,7 +195,6 @@ config ATH79 +@@ -196,7 +196,6 @@ config ATH79 select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_MIPS16 select SYS_SUPPORTS_ZBOOT_UART_PROM diff --git a/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch b/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch index 1a3945eb4a39..20c69f39ed1e 100644 --- a/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch +++ b/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch @@ -1,5 +1,3 @@ -diff --git a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt -index 61ac757..9820227 100644 --- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt @@ -35,7 +35,12 @@ right representation of the pin. @@ -13,24 +11,19 @@ index 61ac757..9820227 100644 +ATMEL_PIO_DRVSTR_LO, ATMEL_PIO_DRVSTR_ME, ATMEL_PIO_DRVSTR_HI. The current +depends on VDDIOP. You can find the details in the DC Characteristics table +from the datasheet. - + Example: - -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 1218005..c88e426 100644 + --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -49,6 +49,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \ - wb45n.dtb + wb45n.dtb dtb-$(CONFIG_SOC_SAM_V7) += \ - at91-kizbox2.dtb \ + at91-kizbox2.dtb \ + at91-sama5d27_som1_ek.dtb \ - at91-sama5d2_xplained.dtb \ - at91-sama5d3_xplained.dtb \ - sama5d31ek.dtb \ -diff --git a/arch/arm/boot/dts/at91-sama5d27_som1.dtsi b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi -new file mode 100644 -index 0000000..7d7575f + at91-sama5d2_xplained.dtb \ + at91-sama5d3_xplained.dtb \ + sama5d31ek.dtb \ --- /dev/null +++ b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi @@ -0,0 +1,175 @@ @@ -209,9 +202,6 @@ index 0000000..7d7575f + }; + }; +}; -diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts -new file mode 100644 -index 0000000..fd12b68 --- /dev/null +++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts @@ -0,0 +1,53 @@ @@ -268,9 +258,6 @@ index 0000000..fd12b68 + model = "Atmel SAMA5D27 SOM1 EK"; + compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; +}; -diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi b/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi -new file mode 100644 -index 0000000..7201a8e --- /dev/null +++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi @@ -0,0 +1,619 @@ @@ -893,14 +880,12 @@ index 0000000..7201a8e + }; + }; +}; -diff --git a/include/dt-bindings/pinctrl/at91.h b/include/dt-bindings/pinctrl/at91.h -index bbca3d0..88eb7d0 100644 --- a/include/dt-bindings/pinctrl/at91.h +++ b/include/dt-bindings/pinctrl/at91.h @@ -37,4 +37,8 @@ #define AT91_PERIPH_C 3 #define AT91_PERIPH_D 4 - + +#define ATMEL_PIO_DRVSTR_LO 1 +#define ATMEL_PIO_DRVSTR_ME 2 +#define ATMEL_PIO_DRVSTR_HI 3 diff --git a/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch b/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch index 3da9955ee7d6..e33840cfd8b2 100644 --- a/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch +++ b/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch @@ -1,18 +1,13 @@ -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index c88e426..cb47e80 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -49,6 +49,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \ - wb45n.dtb + wb45n.dtb dtb-$(CONFIG_SOC_SAM_V7) += \ - at91-kizbox2.dtb \ + at91-kizbox2.dtb \ + at91-sama5d2_ptc_ek.dtb \ - at91-sama5d27_som1_ek.dtb \ - at91-sama5d2_xplained.dtb \ - at91-sama5d3_xplained.dtb \ -diff --git a/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts -new file mode 100644 -index 0000000..257eaac + at91-sama5d27_som1_ek.dtb \ + at91-sama5d2_xplained.dtb \ + at91-sama5d3_xplained.dtb \ --- /dev/null +++ b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts @@ -0,0 +1,422 @@ @@ -438,5 +433,3 @@ index 0000000..257eaac + }; + }; +}; --- -2.7.4 diff --git a/target/linux/ath25/patches-4.9/107-ar5312_gpio.patch b/target/linux/ath25/patches-4.9/107-ar5312_gpio.patch index ac729ee48e0b..f42108702d56 100644 --- a/target/linux/ath25/patches-4.9/107-ar5312_gpio.patch +++ b/target/linux/ath25/patches-4.9/107-ar5312_gpio.patch @@ -202,7 +202,7 @@ +subsys_initcall(ar5312_gpio_init); --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -167,6 +167,7 @@ config ATH25 +@@ -168,6 +168,7 @@ config ATH25 select CEVT_R4K select CSRC_R4K select DMA_NONCOHERENT diff --git a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch index 3006fefc2056..34e776466809 100644 --- a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch +++ b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch @@ -696,7 +696,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org> } --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5054,7 +5054,7 @@ static void port_event(struct usb_hub *h +@@ -5062,7 +5062,7 @@ static void port_event(struct usb_hub *h if (portchange & USB_PORT_STAT_C_OVERCURRENT) { u16 status = 0, unused; diff --git a/target/linux/brcm2708/patches-4.9/950-0180-drm-vc4-Fulfill-user-BO-creation-requests-from-the-k.patch b/target/linux/brcm2708/patches-4.9/950-0180-drm-vc4-Fulfill-user-BO-creation-requests-from-the-k.patch index c0967b463932..71118e26cc8c 100644 --- a/target/linux/brcm2708/patches-4.9/950-0180-drm-vc4-Fulfill-user-BO-creation-requests-from-the-k.patch +++ b/target/linux/brcm2708/patches-4.9/950-0180-drm-vc4-Fulfill-user-BO-creation-requests-from-the-k.patch @@ -22,7 +22,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net> --- a/drivers/gpu/drm/vc4/vc4_bo.c +++ b/drivers/gpu/drm/vc4/vc4_bo.c -@@ -208,21 +208,22 @@ struct drm_gem_object *vc4_create_object +@@ -209,21 +209,22 @@ struct drm_gem_object *vc4_create_object } struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, diff --git a/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch b/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch index 3fed370bee5c..52d0de3914e4 100644 --- a/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch +++ b/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch @@ -17,7 +17,7 @@ Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.") --- a/drivers/gpu/drm/vc4/vc4_bo.c +++ b/drivers/gpu/drm/vc4/vc4_bo.c -@@ -322,6 +322,14 @@ void vc4_free_object(struct drm_gem_obje +@@ -323,6 +323,14 @@ void vc4_free_object(struct drm_gem_obje goto out; } diff --git a/target/linux/brcm63xx/patches-4.9/001-4.15-01-MIPS-BCM63XX-add-clkdev-lookup-support.patch b/target/linux/brcm63xx/patches-4.9/001-4.15-01-MIPS-BCM63XX-add-clkdev-lookup-support.patch index 59e9933e5ff0..c193c72ab3e2 100644 --- a/target/linux/brcm63xx/patches-4.9/001-4.15-01-MIPS-BCM63XX-add-clkdev-lookup-support.patch +++ b/target/linux/brcm63xx/patches-4.9/001-4.15-01-MIPS-BCM63XX-add-clkdev-lookup-support.patch @@ -16,7 +16,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -271,6 +271,7 @@ config BCM63XX +@@ -272,6 +272,7 @@ config BCM63XX select GPIOLIB select HAVE_CLK select MIPS_L1_CACHE_SHIFT_4 diff --git a/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch b/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch index 6a93398c725d..5ae903b9373c 100644 --- a/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch +++ b/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch @@ -42,7 +42,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c -@@ -953,8 +953,7 @@ int add_mtd_partitions(struct mtd_info * +@@ -940,8 +940,7 @@ int add_mtd_partitions(struct mtd_info * add_mtd_device(&slave->mtd); mtd_partition_split(master, slave); mtd_add_partition_attrs(slave); @@ -52,7 +52,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> cur_offset = slave->offset + slave->mtd.size; } -@@ -1136,7 +1135,9 @@ static int mtd_part_of_parse(struct mtd_ +@@ -1123,7 +1122,9 @@ static int mtd_part_of_parse(struct mtd_ const char *fixed = "fixed-partitions"; int ret, err = 0; @@ -63,7 +63,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> of_property_for_each_string(np, "compatible", prop, compat) { parser = mtd_part_get_compatible_parser(compat); if (!parser) -@@ -1208,8 +1209,12 @@ int parse_mtd_partitions(struct mtd_info +@@ -1192,8 +1193,12 @@ int parse_mtd_partitions(struct mtd_info types = types_of; } diff --git a/target/linux/brcm63xx/patches-4.9/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch b/target/linux/brcm63xx/patches-4.9/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch index 0c4d034c0da8..ee0d4d657ade 100644 --- a/target/linux/brcm63xx/patches-4.9/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch +++ b/target/linux/brcm63xx/patches-4.9/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch @@ -14,7 +14,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -264,6 +264,9 @@ config BCM63XX +@@ -265,6 +265,9 @@ config BCM63XX select SYNC_R4K select DMA_NONCOHERENT select IRQ_MIPS_CPU diff --git a/target/linux/generic/hack-4.9/220-gc_sections.patch b/target/linux/generic/hack-4.9/220-gc_sections.patch index 02e36b664ea3..40e4905db299 100644 --- a/target/linux/generic/hack-4.9/220-gc_sections.patch +++ b/target/linux/generic/hack-4.9/220-gc_sections.patch @@ -261,7 +261,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> #define TRACE_SYSCALLS() @@ -172,7 +172,7 @@ #ifdef CONFIG_SERIAL_EARLYCON - #define EARLYCON_TABLE() STRUCT_ALIGN(); \ + #define EARLYCON_TABLE() . = ALIGN(8); \ VMLINUX_SYMBOL(__earlycon_table) = .; \ - *(__earlycon_table) \ + KEEP(*(__earlycon_table)) \ diff --git a/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch b/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch index 7c3e38efcfa5..96ae77ba09bf 100644 --- a/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch +++ b/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1155,6 +1155,10 @@ config SYNC_R4K +@@ -1156,6 +1156,10 @@ config SYNC_R4K config MIPS_MACHINE def_bool n diff --git a/target/linux/generic/pending-4.9/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch b/target/linux/generic/pending-4.9/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch index 3ec5d7518ab0..8403382de78b 100644 --- a/target/linux/generic/pending-4.9/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch +++ b/target/linux/generic/pending-4.9/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -809,6 +809,9 @@ static const struct usb_device_id produc +@@ -810,6 +810,9 @@ static const struct usb_device_id produc {QMI_FIXED_INTF(0x0846, 0x68a2, 8)}, {QMI_FIXED_INTF(0x12d1, 0x140c, 1)}, /* Huawei E173 */ {QMI_FIXED_INTF(0x12d1, 0x14ac, 1)}, /* Huawei E1820 */ diff --git a/target/linux/generic/pending-4.9/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch b/target/linux/generic/pending-4.9/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch index 9d9bb4ce1d53..2a41a6a95fba 100644 --- a/target/linux/generic/pending-4.9/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch +++ b/target/linux/generic/pending-4.9/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -888,6 +888,7 @@ static const struct usb_device_id produc +@@ -889,6 +889,7 @@ static const struct usb_device_id produc {QMI_FIXED_INTF(0x19d2, 0x2002, 4)}, /* ZTE (Vodafone) K3765-Z */ {QMI_FIXED_INTF(0x2001, 0x7e19, 4)}, /* D-Link DWM-221 B1 */ {QMI_FIXED_INTF(0x2001, 0x7e35, 4)}, /* D-Link DWM-222 */ diff --git a/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch b/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch index cd58eb12e811..d7a3effa4cbb 100644 --- a/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch +++ b/target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch @@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net> --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1064,9 +1064,6 @@ config FW_ARC +@@ -1065,9 +1065,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net> config CEVT_BCM1480 bool -@@ -2963,6 +2960,18 @@ choice +@@ -2964,6 +2961,18 @@ choice bool "Extend builtin kernel arguments with bootloader arguments" endchoice diff --git a/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch b/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch index a2ec0760fe1c..5707f90becd1 100644 --- a/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch +++ b/target/linux/generic/pending-4.9/304-mips_disable_fpu.patch @@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2887,6 +2887,20 @@ config MIPS_O32_FP64_SUPPORT +@@ -2888,6 +2888,20 @@ config MIPS_O32_FP64_SUPPORT If unsure, say N. diff --git a/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch b/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch index 5b237a6d2391..393046cf263d 100644 --- a/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch +++ b/target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -213,6 +213,7 @@ config BMIPS_GENERIC +@@ -214,6 +214,7 @@ config BMIPS_GENERIC select BRCMSTB_L2_IRQ select IRQ_MIPS_CPU select DMA_NONCOHERENT @@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_LITTLE_ENDIAN select SYS_SUPPORTS_BIG_ENDIAN -@@ -338,6 +339,7 @@ config MACH_JAZZ +@@ -339,6 +340,7 @@ config MACH_JAZZ select CSRC_R4K select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN select GENERIC_ISA_DMA @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> select HAVE_PCSPKR_PLATFORM select IRQ_MIPS_CPU select I8253 -@@ -1125,6 +1127,9 @@ config DMA_NONCOHERENT +@@ -1126,6 +1128,9 @@ config DMA_NONCOHERENT bool select NEED_DMA_MAP_STATE @@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> config NEED_DMA_MAP_STATE bool -@@ -1649,6 +1654,7 @@ config CPU_R10000 +@@ -1650,6 +1655,7 @@ config CPU_R10000 select CPU_SUPPORTS_64BIT_KERNEL select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HUGEPAGES @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> help MIPS Technologies R10000-series processors. -@@ -1894,9 +1900,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 +@@ -1895,9 +1901,11 @@ config SYS_HAS_CPU_MIPS32_R3_5 bool config SYS_HAS_CPU_MIPS32_R5 @@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> bool config SYS_HAS_CPU_MIPS64_R1 -@@ -1906,6 +1914,7 @@ config SYS_HAS_CPU_MIPS64_R2 +@@ -1907,6 +1915,7 @@ config SYS_HAS_CPU_MIPS64_R2 bool config SYS_HAS_CPU_MIPS64_R6 diff --git a/target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch b/target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch index c1b0d4f16b89..905675e50c51 100644 --- a/target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch +++ b/target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch @@ -7,7 +7,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua> 1 file changed, 1 insertion(+) --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c -@@ -1828,6 +1828,7 @@ static int __xipram do_write_buffer(stru +@@ -1829,6 +1829,7 @@ static int __xipram do_write_buffer(stru /* Write Buffer Load */ map_write(map, CMD(0x25), cmd_adr); diff --git a/target/linux/generic/pending-4.9/630-packet_socket_type.patch b/target/linux/generic/pending-4.9/630-packet_socket_type.patch index 092011d0ec60..08d730ac31ed 100644 --- a/target/linux/generic/pending-4.9/630-packet_socket_type.patch +++ b/target/linux/generic/pending-4.9/630-packet_socket_type.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1773,6 +1773,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1780,6 +1780,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 <nbd@nbd.name> /* * When we registered the protocol we saved the socket in the data -@@ -1780,6 +1781,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1787,6 +1788,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* * Yank back the headers [hope the device set this -@@ -1792,7 +1794,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1799,7 +1801,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -2030,12 +2032,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -2037,12 +2039,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 <nbd@nbd.name> if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2161,12 +2163,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2168,12 +2170,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 <nbd@nbd.name> if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3251,6 +3253,7 @@ static int packet_create(struct net *net +@@ -3260,6 +3262,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 <nbd@nbd.name> if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3837,6 +3840,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3873,6 +3876,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 <nbd@nbd.name> default: return -ENOPROTOOPT; } -@@ -3889,6 +3902,13 @@ static int packet_getsockopt(struct sock +@@ -3925,6 +3938,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 14715718cbf4..2cebf55a447b 100644 --- a/target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -171,7 +171,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -2848,7 +2881,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -2850,7 +2883,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -3220,6 +3254,9 @@ static int rt6_fill_node(struct net *net +@@ -3222,6 +3256,9 @@ static int rt6_fill_node(struct net *net case -EACCES: rtm->rtm_type = RTN_PROHIBIT; break; @@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> case -EAGAIN: rtm->rtm_type = RTN_THROW; break; -@@ -3496,6 +3533,8 @@ static int ip6_route_dev_notify(struct n +@@ -3498,6 +3535,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -200,7 +200,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -3507,6 +3546,7 @@ static int ip6_route_dev_notify(struct n +@@ -3509,6 +3548,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put(net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put(net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -208,7 +208,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> in6_dev_put(net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -3722,6 +3762,17 @@ static int __net_init ip6_route_net_init +@@ -3724,6 +3764,17 @@ static int __net_init ip6_route_net_init net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); @@ -226,7 +226,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3740,6 +3791,8 @@ out: +@@ -3742,6 +3793,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -3757,6 +3810,7 @@ static void __net_exit ip6_route_net_exi +@@ -3759,6 +3812,7 @@ static void __net_exit ip6_route_net_exi #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_blk_hole_entry); @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -3830,6 +3884,9 @@ void __init ip6_route_init_special_entri +@@ -3832,6 +3886,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch b/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch index 1cb51a2ed53a..6cb745ee3329 100644 --- a/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch +++ b/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h -@@ -448,7 +448,7 @@ extern void uart_handle_cts_change(struc +@@ -455,7 +455,7 @@ extern void uart_handle_cts_change(struc extern void uart_insert_char(struct uart_port *port, unsigned int status, unsigned int overrun, unsigned int ch, unsigned int flag); @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> { --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug -@@ -410,6 +410,11 @@ config MAGIC_SYSRQ_DEFAULT_ENABLE +@@ -396,6 +396,11 @@ config MAGIC_SYSRQ_DEFAULT_ENABLE This may be set to 1 or 0 to enable or disable them all, or to a bitmask as described in Documentation/sysrq.txt. diff --git a/target/linux/ixp4xx/patches-4.9/090-increase_entropy_pools.patch b/target/linux/ixp4xx/patches-4.9/090-increase_entropy_pools.patch index 2b4db053c25b..9da213911e24 100644 --- a/target/linux/ixp4xx/patches-4.9/090-increase_entropy_pools.patch +++ b/target/linux/ixp4xx/patches-4.9/090-increase_entropy_pools.patch @@ -1,6 +1,6 @@ --- a/drivers/char/random.c +++ b/drivers/char/random.c -@@ -278,11 +278,11 @@ +@@ -279,11 +279,11 @@ /* * Configuration information */ diff --git a/target/linux/lantiq/patches-4.9/0152-lantiq-VPE.patch b/target/linux/lantiq/patches-4.9/0152-lantiq-VPE.patch index 7b14d9e5a906..7d6e4b808989 100644 --- a/target/linux/lantiq/patches-4.9/0152-lantiq-VPE.patch +++ b/target/linux/lantiq/patches-4.9/0152-lantiq-VPE.patch @@ -1,6 +1,6 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2320,6 +2320,12 @@ config MIPS_VPE_LOADER +@@ -2321,6 +2321,12 @@ config MIPS_VPE_LOADER Includes a loader for loading an elf relocatable object onto another VPE and running it. diff --git a/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch b/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch index c01db458a5f2..f8917291ee25 100644 --- a/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch @@ -44,15 +44,15 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c -@@ -532,6 +532,7 @@ static const struct driver_info wwan_inf - #define LENOVO_VENDOR_ID 0x17ef +@@ -533,6 +533,7 @@ static const struct driver_info wwan_inf + #define LINKSYS_VENDOR_ID 0x13b1 #define NVIDIA_VENDOR_ID 0x0955 #define HP_VENDOR_ID 0x03f0 +#define TPLINK_VENDOR_ID 0x2357 static const struct usb_device_id products[] = { /* BLACKLIST !! -@@ -732,6 +733,13 @@ static const struct usb_device_id produc +@@ -742,6 +743,13 @@ static const struct usb_device_id produc USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), .driver_info = 0, }, @@ -68,15 +68,15 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> * --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -520,6 +520,7 @@ enum rtl8152_flags { - #define VENDOR_ID_SAMSUNG 0x04e8 +@@ -521,6 +521,7 @@ enum rtl8152_flags { #define VENDOR_ID_LENOVO 0x17ef + #define VENDOR_ID_LINKSYS 0x13b1 #define VENDOR_ID_NVIDIA 0x0955 +#define VENDOR_ID_TPLINK 0x2357 #define MCU_TYPE_PLA 0x0100 #define MCU_TYPE_USB 0x0000 -@@ -1816,6 +1817,10 @@ static int rx_bottom(struct r8152 *tp, i +@@ -1817,6 +1818,10 @@ static int rx_bottom(struct r8152 *tp, i unsigned int pkt_len; struct sk_buff *skb; @@ -87,9 +87,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> pkt_len = le32_to_cpu(rx_desc->opts1) & RX_LEN_MASK; if (pkt_len < ETH_ZLEN) break; -@@ -4507,6 +4512,7 @@ static struct usb_device_id rtl8152_tabl - {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x7205)}, +@@ -4509,6 +4514,7 @@ static struct usb_device_id rtl8152_tabl {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x304f)}, + {REALTEK_USB_DEVICE(VENDOR_ID_LINKSYS, 0x0041)}, {REALTEK_USB_DEVICE(VENDOR_ID_NVIDIA, 0x09ff)}, + {REALTEK_USB_DEVICE(VENDOR_ID_TPLINK, 0x0601)}, {} @@ -156,7 +156,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> int ret; --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -4415,6 +4415,14 @@ hub_port_init(struct usb_hub *hub, struc +@@ -4423,6 +4423,14 @@ hub_port_init(struct usb_hub *hub, struc else speed = usb_speed_string(udev->speed); diff --git a/target/linux/mpc85xx/patches-4.9/102-powerpc-add-cmdline-override.patch b/target/linux/mpc85xx/patches-4.9/102-powerpc-add-cmdline-override.patch index c70ac1bb9d52..55976c32b16c 100644 --- a/target/linux/mpc85xx/patches-4.9/102-powerpc-add-cmdline-override.patch +++ b/target/linux/mpc85xx/patches-4.9/102-powerpc-add-cmdline-override.patch @@ -17,7 +17,7 @@ help --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c -@@ -1079,6 +1079,17 @@ int __init early_init_dt_scan_chosen(uns +@@ -1082,6 +1082,17 @@ int __init early_init_dt_scan_chosen(uns if (p != NULL && l > 0) strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE)); diff --git a/target/linux/sunxi/patches-4.9/0052-stmmac-form-4-12.patch b/target/linux/sunxi/patches-4.9/0052-stmmac-form-4-12.patch index aa6b813daf74..3d9bbb229553 100644 --- a/target/linux/sunxi/patches-4.9/0052-stmmac-form-4-12.patch +++ b/target/linux/sunxi/patches-4.9/0052-stmmac-form-4-12.patch @@ -3095,7 +3095,7 @@ if (priv->hw->mode->set_16kib_bfsize) bfsize = priv->hw->mode->set_16kib_bfsize(dev->mtu); -@@ -1033,235 +1234,409 @@ static int init_dma_desc_rings(struct ne +@@ -1033,257 +1234,516 @@ static int init_dma_desc_rings(struct ne priv->dma_buf_sz = bfsize; @@ -3351,17 +3351,10 @@ - priv->tx_skbuff_dma[i].buf, - priv->tx_skbuff_dma[i].len, - DMA_TO_DEVICE); -- } + for (i = 0; i < DMA_TX_SIZE; i++) + stmmac_free_tx_buffer(priv, queue, i); +} - -- if (priv->tx_skbuff[i]) { -- dev_kfree_skb_any(priv->tx_skbuff[i]); -- priv->tx_skbuff[i] = NULL; -- priv->tx_skbuff_dma[i].buf = 0; -- priv->tx_skbuff_dma[i].map_as_page = false; -- } ++ +/** + * free_dma_rx_desc_resources - free RX dma desc resources + * @priv: private structure @@ -3390,11 +3383,10 @@ + + kfree(rx_q->rx_skbuff_dma); + kfree(rx_q->rx_skbuff); - } - } - - /** -- * alloc_dma_desc_resources - alloc TX/RX resources. ++ } ++} ++ ++/** + * free_dma_tx_desc_resources - free TX dma desc resources + * @priv: private structure + */ @@ -3427,90 +3419,36 @@ + +/** + * alloc_dma_rx_desc_resources - alloc RX resources. - * @priv: private structure - * Description: according to which descriptor can be used (extend or basic) - * this function allocates the resources for TX and RX paths. In case of - * reception, for example, it pre-allocated the RX socket buffer in order to - * allow zero-copy mechanism. - */ --static int alloc_dma_desc_resources(struct stmmac_priv *priv) ++ * @priv: private structure ++ * Description: according to which descriptor can be used (extend or basic) ++ * this function allocates the resources for TX and RX paths. In case of ++ * reception, for example, it pre-allocated the RX socket buffer in order to ++ * allow zero-copy mechanism. ++ */ +static int alloc_dma_rx_desc_resources(struct stmmac_priv *priv) - { ++{ + u32 rx_count = priv->plat->rx_queues_to_use; - int ret = -ENOMEM; ++ int ret = -ENOMEM; + u32 queue; - -- priv->rx_skbuff_dma = kmalloc_array(DMA_RX_SIZE, sizeof(dma_addr_t), -- GFP_KERNEL); -- if (!priv->rx_skbuff_dma) -- return -ENOMEM; ++ + /* RX queues buffers and DMA */ + for (queue = 0; queue < rx_count; queue++) { + struct stmmac_rx_queue *rx_q = &priv->rx_queue[queue]; - -- priv->rx_skbuff = kmalloc_array(DMA_RX_SIZE, sizeof(struct sk_buff *), -- GFP_KERNEL); -- if (!priv->rx_skbuff) -- goto err_rx_skbuff; -- -- priv->tx_skbuff_dma = kmalloc_array(DMA_TX_SIZE, -- sizeof(*priv->tx_skbuff_dma), -- GFP_KERNEL); -- if (!priv->tx_skbuff_dma) -- goto err_tx_skbuff_dma; -- -- priv->tx_skbuff = kmalloc_array(DMA_TX_SIZE, sizeof(struct sk_buff *), -- GFP_KERNEL); -- if (!priv->tx_skbuff) -- goto err_tx_skbuff; -- -- if (priv->extend_desc) { -- priv->dma_erx = dma_zalloc_coherent(priv->device, DMA_RX_SIZE * -- sizeof(struct -- dma_extended_desc), -- &priv->dma_rx_phy, -- GFP_KERNEL); -- if (!priv->dma_erx) -- goto err_dma; ++ + rx_q->queue_index = queue; + rx_q->priv_data = priv; - -- priv->dma_etx = dma_zalloc_coherent(priv->device, DMA_TX_SIZE * -- sizeof(struct -- dma_extended_desc), -- &priv->dma_tx_phy, ++ + rx_q->rx_skbuff_dma = kmalloc_array(DMA_RX_SIZE, + sizeof(dma_addr_t), - GFP_KERNEL); -- if (!priv->dma_etx) { -- dma_free_coherent(priv->device, DMA_RX_SIZE * -- sizeof(struct dma_extended_desc), -- priv->dma_erx, priv->dma_rx_phy); -- goto err_dma; -- } -- } else { -- priv->dma_rx = dma_zalloc_coherent(priv->device, DMA_RX_SIZE * -- sizeof(struct dma_desc), -- &priv->dma_rx_phy, -- GFP_KERNEL); -- if (!priv->dma_rx) -- goto err_dma; ++ GFP_KERNEL); + if (!rx_q->rx_skbuff_dma) + return -ENOMEM; - -- priv->dma_tx = dma_zalloc_coherent(priv->device, DMA_TX_SIZE * -- sizeof(struct dma_desc), -- &priv->dma_tx_phy, -- GFP_KERNEL); -- if (!priv->dma_tx) { -- dma_free_coherent(priv->device, DMA_RX_SIZE * -- sizeof(struct dma_desc), -- priv->dma_rx, priv->dma_rx_phy); ++ + rx_q->rx_skbuff = kmalloc_array(DMA_RX_SIZE, + sizeof(struct sk_buff *), + GFP_KERNEL); + if (!rx_q->rx_skbuff) - goto err_dma; ++ goto err_dma; + + if (priv->extend_desc) { + rx_q->dma_erx = dma_zalloc_coherent(priv->device, @@ -3531,19 +3469,12 @@ + GFP_KERNEL); + if (!rx_q->dma_rx) + goto err_dma; - } - } - - return 0; - - err_dma: -- kfree(priv->tx_skbuff); --err_tx_skbuff: -- kfree(priv->tx_skbuff_dma); --err_tx_skbuff_dma: -- kfree(priv->rx_skbuff); --err_rx_skbuff: -- kfree(priv->rx_skbuff_dma); ++ } ++ } ++ ++ return 0; ++ ++err_dma: + free_dma_rx_desc_resources(priv); + + return ret; @@ -3600,7 +3531,7 @@ + GFP_KERNEL); + if (!tx_q->dma_tx) + goto err_dma_buffers; -+ } + } + } + + return 0; @@ -3629,85 +3560,126 @@ + + ret = alloc_dma_tx_desc_resources(priv); + - return ret; - } - ++ return ret; ++} ++ +/** + * free_dma_desc_resources - free dma desc resources + * @priv: private structure + */ - static void free_dma_desc_resources(struct stmmac_priv *priv) - { -- /* Release the DMA TX/RX socket buffers */ -- dma_free_rx_skbufs(priv); -- dma_free_tx_skbufs(priv); -- -- /* Free DMA regions of consistent memory previously allocated */ -- if (!priv->extend_desc) { -- dma_free_coherent(priv->device, -- DMA_TX_SIZE * sizeof(struct dma_desc), -- priv->dma_tx, priv->dma_tx_phy); -- dma_free_coherent(priv->device, -- DMA_RX_SIZE * sizeof(struct dma_desc), -- priv->dma_rx, priv->dma_rx_phy); -- } else { -- dma_free_coherent(priv->device, DMA_TX_SIZE * -- sizeof(struct dma_extended_desc), -- priv->dma_etx, priv->dma_tx_phy); -- dma_free_coherent(priv->device, DMA_RX_SIZE * -- sizeof(struct dma_extended_desc), -- priv->dma_erx, priv->dma_rx_phy); -- } -- kfree(priv->rx_skbuff_dma); -- kfree(priv->rx_skbuff); -- kfree(priv->tx_skbuff_dma); -- kfree(priv->tx_skbuff); ++static void free_dma_desc_resources(struct stmmac_priv *priv) ++{ + /* Release the DMA RX socket buffers */ + free_dma_rx_desc_resources(priv); + + /* Release the DMA TX socket buffers */ + free_dma_tx_desc_resources(priv); - } - - /** -@@ -1271,19 +1646,104 @@ static void free_dma_desc_resources(stru - */ - static void stmmac_mac_enable_rx_queues(struct stmmac_priv *priv) - { -- int rx_count = priv->dma_cap.number_rx_queues; -- int queue = 0; ++} ++ ++/** ++ * stmmac_mac_enable_rx_queues - Enable MAC rx queues ++ * @priv: driver private structure ++ * Description: It is used for enabling the rx queues in the MAC ++ */ ++static void stmmac_mac_enable_rx_queues(struct stmmac_priv *priv) ++{ + u32 rx_queues_count = priv->plat->rx_queues_to_use; + int queue; + u8 mode; -- /* If GMAC does not have multiple queues, then this is not necessary*/ -- if (rx_count == 1) -- return; +- if (priv->tx_skbuff[i]) { +- dev_kfree_skb_any(priv->tx_skbuff[i]); +- priv->tx_skbuff[i] = NULL; +- priv->tx_skbuff_dma[i].buf = 0; +- priv->tx_skbuff_dma[i].map_as_page = false; +- } + for (queue = 0; queue < rx_queues_count; queue++) { + mode = priv->plat->rx_queues_cfg[queue].mode_to_use; + priv->hw->mac->rx_queue_enable(priv->hw, mode, queue); -+ } -+} + } + } -- /** -- * If the core is synthesized with multiple rx queues / multiple -- * dma channels, then rx queues will be disabled by default. -- * For now only rx queue 0 is enabled. -- */ -- priv->hw->mac->rx_queue_enable(priv->hw, queue); -+/** + /** +- * alloc_dma_desc_resources - alloc TX/RX resources. +- * @priv: private structure +- * Description: according to which descriptor can be used (extend or basic) +- * this function allocates the resources for TX and RX paths. In case of +- * reception, for example, it pre-allocated the RX socket buffer in order to +- * allow zero-copy mechanism. + * stmmac_start_rx_dma - start RX DMA channel + * @priv: driver private structure + * @chan: RX channel index + * Description: + * This starts a RX DMA channel -+ */ + */ +-static int alloc_dma_desc_resources(struct stmmac_priv *priv) +static void stmmac_start_rx_dma(struct stmmac_priv *priv, u32 chan) -+{ + { +- int ret = -ENOMEM; +- +- priv->rx_skbuff_dma = kmalloc_array(DMA_RX_SIZE, sizeof(dma_addr_t), +- GFP_KERNEL); +- if (!priv->rx_skbuff_dma) +- return -ENOMEM; +- +- priv->rx_skbuff = kmalloc_array(DMA_RX_SIZE, sizeof(struct sk_buff *), +- GFP_KERNEL); +- if (!priv->rx_skbuff) +- goto err_rx_skbuff; +- +- priv->tx_skbuff_dma = kmalloc_array(DMA_TX_SIZE, +- sizeof(*priv->tx_skbuff_dma), +- GFP_KERNEL); +- if (!priv->tx_skbuff_dma) +- goto err_tx_skbuff_dma; +- +- priv->tx_skbuff = kmalloc_array(DMA_TX_SIZE, sizeof(struct sk_buff *), +- GFP_KERNEL); +- if (!priv->tx_skbuff) +- goto err_tx_skbuff; +- +- if (priv->extend_desc) { +- priv->dma_erx = dma_zalloc_coherent(priv->device, DMA_RX_SIZE * +- sizeof(struct +- dma_extended_desc), +- &priv->dma_rx_phy, +- GFP_KERNEL); +- if (!priv->dma_erx) +- goto err_dma; +- +- priv->dma_etx = dma_zalloc_coherent(priv->device, DMA_TX_SIZE * +- sizeof(struct +- dma_extended_desc), +- &priv->dma_tx_phy, +- GFP_KERNEL); +- if (!priv->dma_etx) { +- dma_free_coherent(priv->device, DMA_RX_SIZE * +- sizeof(struct dma_extended_desc), +- priv->dma_erx, priv->dma_rx_phy); +- goto err_dma; +- } +- } else { +- priv->dma_rx = dma_zalloc_coherent(priv->device, DMA_RX_SIZE * +- sizeof(struct dma_desc), +- &priv->dma_rx_phy, +- GFP_KERNEL); +- if (!priv->dma_rx) +- goto err_dma; + netdev_dbg(priv->dev, "DMA RX processes started in channel %d\n", chan); + priv->hw->dma->start_rx(priv->ioaddr, chan); +} -+ + +- priv->dma_tx = dma_zalloc_coherent(priv->device, DMA_TX_SIZE * +- sizeof(struct dma_desc), +- &priv->dma_tx_phy, +- GFP_KERNEL); +- if (!priv->dma_tx) { +- dma_free_coherent(priv->device, DMA_RX_SIZE * +- sizeof(struct dma_desc), +- priv->dma_rx, priv->dma_rx_phy); +- goto err_dma; +- } +- } +/** + * stmmac_start_tx_dma - start TX DMA channel + * @priv: driver private structure @@ -3720,7 +3692,8 @@ + netdev_dbg(priv->dev, "DMA TX processes started in channel %d\n", chan); + priv->hw->dma->start_tx(priv->ioaddr, chan); +} -+ + +- return 0; +/** + * stmmac_stop_rx_dma - stop RX DMA channel + * @priv: driver private structure @@ -3733,7 +3706,16 @@ + netdev_dbg(priv->dev, "DMA RX processes stopped in channel %d\n", chan); + priv->hw->dma->stop_rx(priv->ioaddr, chan); +} -+ + +-err_dma: +- kfree(priv->tx_skbuff); +-err_tx_skbuff: +- kfree(priv->tx_skbuff_dma); +-err_tx_skbuff_dma: +- kfree(priv->rx_skbuff); +-err_rx_skbuff: +- kfree(priv->rx_skbuff_dma); +- return ret; +/** + * stmmac_stop_tx_dma - stop TX DMA channel + * @priv: driver private structure @@ -3745,8 +3727,9 @@ +{ + netdev_dbg(priv->dev, "DMA TX processes stopped in channel %d\n", chan); + priv->hw->dma->stop_tx(priv->ioaddr, chan); -+} -+ + } + +-static void free_dma_desc_resources(struct stmmac_priv *priv) +/** + * stmmac_start_all_dma - start all RX and TX DMA channels + * @priv: driver private structure @@ -3754,7 +3737,31 @@ + * This starts all the RX and TX DMA channels + */ +static void stmmac_start_all_dma(struct stmmac_priv *priv) -+{ + { +- /* Release the DMA TX/RX socket buffers */ +- dma_free_rx_skbufs(priv); +- dma_free_tx_skbufs(priv); +- +- /* Free DMA regions of consistent memory previously allocated */ +- if (!priv->extend_desc) { +- dma_free_coherent(priv->device, +- DMA_TX_SIZE * sizeof(struct dma_desc), +- priv->dma_tx, priv->dma_tx_phy); +- dma_free_coherent(priv->device, +- DMA_RX_SIZE * sizeof(struct dma_desc), +- priv->dma_rx, priv->dma_rx_phy); +- } else { +- dma_free_coherent(priv->device, DMA_TX_SIZE * +- sizeof(struct dma_extended_desc), +- priv->dma_etx, priv->dma_tx_phy); +- dma_free_coherent(priv->device, DMA_RX_SIZE * +- sizeof(struct dma_extended_desc), +- priv->dma_erx, priv->dma_rx_phy); +- } +- kfree(priv->rx_skbuff_dma); +- kfree(priv->rx_skbuff); +- kfree(priv->tx_skbuff_dma); +- kfree(priv->tx_skbuff); + u32 rx_channels_count = priv->plat->rx_queues_to_use; + u32 tx_channels_count = priv->plat->tx_queues_to_use; + u32 chan = 0; @@ -3764,23 +3771,38 @@ + + for (chan = 0; chan < tx_channels_count; chan++) + stmmac_start_tx_dma(priv, chan); -+} -+ -+/** + } + + /** +- * stmmac_mac_enable_rx_queues - Enable MAC rx queues +- * @priv: driver private structure +- * Description: It is used for enabling the rx queues in the MAC + * stmmac_stop_all_dma - stop all RX and TX DMA channels + * @priv: driver private structure + * Description: + * This stops the RX and TX DMA channels -+ */ + */ +-static void stmmac_mac_enable_rx_queues(struct stmmac_priv *priv) +static void stmmac_stop_all_dma(struct stmmac_priv *priv) -+{ + { +- int rx_count = priv->dma_cap.number_rx_queues; +- int queue = 0; + u32 rx_channels_count = priv->plat->rx_queues_to_use; + u32 tx_channels_count = priv->plat->tx_queues_to_use; + u32 chan = 0; -+ + +- /* If GMAC does not have multiple queues, then this is not necessary*/ +- if (rx_count == 1) +- return; + for (chan = 0; chan < rx_channels_count; chan++) + stmmac_stop_rx_dma(priv, chan); -+ + +- /** +- * If the core is synthesized with multiple rx queues / multiple +- * dma channels, then rx queues will be disabled by default. +- * For now only rx queue 0 is enabled. +- */ +- priv->hw->mac->rx_queue_enable(priv->hw, queue); + for (chan = 0; chan < tx_channels_count; chan++) + stmmac_stop_tx_dma(priv, chan); } diff --git a/target/linux/uml/patches-4.9/101-mconsole-exec.patch b/target/linux/uml/patches-4.9/101-mconsole-exec.patch index 6682338f3963..ea9da8d8c3d1 100644 --- a/target/linux/uml/patches-4.9/101-mconsole-exec.patch +++ b/target/linux/uml/patches-4.9/101-mconsole-exec.patch @@ -123,7 +123,7 @@ }; --- a/arch/um/os-Linux/file.c +++ b/arch/um/os-Linux/file.c -@@ -554,6 +554,8 @@ int os_create_unix_socket(const char *fi +@@ -555,6 +555,8 @@ int os_create_unix_socket(const char *fi addr.sun_family = AF_UNIX;
Refreshed all patches Compile-tested on: ar71xx Runtime-tested on: ar71xx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> --- Refreshed on the latest master state (commit: "mt76: update to the latest version") include/kernel-version.mk | 4 +- .../ar7/patches-4.9/300-add-ac49x-platform.patch | 4 +- .../403-mtd_fix_cfi_cmdset_0002_status_check.patch | 14 +- .../411-mtd-cfi_cmdset_0002-force-word-write.patch | 6 +- .../ar71xx/patches-4.9/500-MIPS-fw-myloader.patch | 2 +- .../ar71xx/patches-4.9/604-MIPS-ath79-no-of.patch | 2 +- ...4-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch | 31 +- ...105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch | 17 +- .../linux/ath25/patches-4.9/107-ar5312_gpio.patch | 2 +- .../patches-4.9/950-0031-Add-dwc_otg-driver.patch | 2 +- ...fill-user-BO-creation-requests-from-the-k.patch | 2 +- ...-OOPSes-from-trying-to-cache-a-partially-.patch | 2 +- ...01-MIPS-BCM63XX-add-clkdev-lookup-support.patch | 2 +- ...match_table-parsing-for-partition-parsers.patch | 6 +- .../322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch | 2 +- .../linux/generic/hack-4.9/220-gc_sections.patch | 2 +- .../hack-4.9/301-mips_image_cmdline_hack.patch | 2 +- ...net-usb-add-lte-modem-wistron-neweb-d18q1.patch | 2 +- ...t-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch | 2 +- .../pending-4.9/300-mips_expose_boot_raw.patch | 4 +- .../generic/pending-4.9/304-mips_disable_fpu.patch | 2 +- ...m-remove-no-op-dma_map_ops-where-possible.patch | 12 +- ..._cmdset_0002-add-buffer-write-cmd-timeout.patch | 2 +- .../pending-4.9/630-packet_socket_type.patch | 16 +- ...jecting-with-source-address-failed-policy.patch | 16 +- .../pending-4.9/890-uart_optional_sysrq.patch | 4 +- .../patches-4.9/090-increase_entropy_pools.patch | 2 +- .../linux/lantiq/patches-4.9/0152-lantiq-VPE.patch | 2 +- .../patches-4.9/817-usb-support-layerscape.patch | 18 +- .../102-powerpc-add-cmdline-override.patch | 2 +- .../sunxi/patches-4.9/0052-stmmac-form-4-12.patch | 344 +++++++++++---------- .../linux/uml/patches-4.9/101-mconsole-exec.patch | 2 +- 32 files changed, 266 insertions(+), 266 deletions(-)