Hey, You can also Reject your patch here: http://patchwork.ozlabs.org/project/lede/list/
Specifically, this patch is: http://patchwork.ozlabs.org/patch/756400/ And [for reference] you can see all patches submitted by you [from your email account]: http://patchwork.ozlabs.org/project/lede/list/?submitter=69184&state=*&q=&archive=&delegate= The email list is indexed in that tool. You do need to create an account. But it's a simple process ; should not require too many personal details. Patchwork is still partially used for tracking some patches sent via email. Tho, I will admit, I'm more of a fan of the Github PR process. Alex On Mon, May 8, 2017 at 10:29 AM, Koen Vandeputte <koen.vandepu...@ncentric.com> wrote: > Dear, > > Please cancel this patch > > > Since this was submitted: > > - 4.9.27 already arrived > - Some other kernel patches have been submitted or got staged after this > patch was created > > Logically, this one will now not apply anymore. > > > Koen > > On 2017-04-28 15:17, Koen Vandeputte wrote: >> >> - Refresh all patches >> - Removed upstreamed >> - Adapted 1 >> >> Compiled & Tested on targets: cns3xxx & imx6 >> >> Signed-off-by: Koen Vandeputte <koen.vandepu...@ncentric.com> >> --- >> include/kernel-version.mk | 4 +- >> .../802-usb-xhci-force-msi-renesas-xhci.patch | 2 +- >> ...X-Add-back-handler-ignoring-external-impr.patch | 75 ------------ >> ...-BCM5301X-Correct-GIC_PPI-interrupt-flags.patch | 41 ------- >> ...ave-host-bridge-window-resource-in-struct.patch | 131 >> --------------------- >> ...-add-support-for-performing-fake-doorbell.patch | 10 +- >> .../patches-4.9/905-BCM53573-minor-hacks.patch | 2 +- >> .../patches-4.9/950-0031-Add-dwc_otg-driver.patch | 2 +- >> ...-thermal-driver-for-reporting-core-temper.patch | 2 +- >> ...le-CONFIG_MEMCG-but-leave-it-disabled-due.patch | 4 +- >> ...-Fix-hang-for-writing-messages-larger-tha.patch | 90 -------------- >> .../031-ubifs-fix-RENAME_WHITEOUT-support.patch | 25 ---- >> .../040-01-MIPS-Introduce-irq_stack.patch | 70 ----------- >> ...2-MIPS-Stack-unwinding-while-on-IRQ-stack.patch | 42 ------- >> ...hange-28-to-thread_info-if-coming-from-us.patch | 48 -------- >> ...IPS-Switch-to-the-irq_stack-in-interrupts.patch | 116 >> ------------------ >> ...05-MIPS-Select-HAVE_IRQ_EXIT_ON_IRQ_STACK.patch | 21 ---- >> ...ack-Fix-erroneous-jal-to-plat_irq_dispatc.patch | 35 ------ >> ...part-fix-parsing-first-block-after-aligne.patch | 40 ------- >> ...jecting-with-source-address-failed-policy.patch | 16 +-- >> .../810-pci_disable_common_quirks.patch | 6 +- >> .../generic/patches-4.9/904-debloat_dma_buf.patch | 2 +- >> ...sdhc-imx-increase-the-pad-I-O-drive-stren.patch | 42 ------- >> ...om-use-scm_call-to-route-GPIO-irq-to-Apps.patch | 2 +- >> .../0008-MIPS-lantiq-backport-old-timer-code.patch | 2 +- >> ...-lantiq-wifi-and-ethernet-eeprom-handling.patch | 2 +- >> ...soc-mediatek-Add-MT2701-power-dt-bindings.patch | 10 +- >> ...k-Refine-scpsys-to-support-multiple-platf.patch | 19 ++- >> ...015-soc-mediatek-Add-MT2701-scpsys-driver.patch | 12 +- >> .../patches-4.9/0071-pwm-add-pwm-mediatek.patch | 16 +-- >> .../linux/mediatek/patches-4.9/0083-mfd-led3.patch | 4 +- >> .../mediatek/patches-4.9/0085-pmic-led0.patch | 3 - >> .../mediatek/patches-4.9/0086-pmic-led1.patch | 4 +- >> .../mediatek/patches-4.9/0087-pmic-led2.patch | 10 +- >> .../mediatek/patches-4.9/0088-pmic-led3.patch | 4 +- >> target/linux/mediatek/patches-4.9/0091-dsa1.patch | 3 - >> .../0091-net-next-mediatek-fix-DQL-support.patch | 6 +- >> target/linux/mediatek/patches-4.9/0092-dsa2.patch | 23 +--- >> target/linux/mediatek/patches-4.9/0092-dsa3.patch | 6 +- >> target/linux/mediatek/patches-4.9/0092-dsa4.patch | 4 +- >> target/linux/mediatek/patches-4.9/0092-dsa5.patch | 16 +-- >> .../mediatek/patches-4.9/0093-dsa-compat.patch | 18 +-- >> .../mediatek/patches-4.9/0094-net-affinity.patch | 12 +- >> target/linux/mediatek/patches-4.9/0095-ephy.patch | 12 +- >> .../mediatek/patches-4.9/0096-dsa-multi-cpu.patch | 30 ++--- >> .../mediatek/patches-4.9/0097-dsa-mt7530.patch | 6 +- >> .../patches-4.9/200-rt3883-fix-pinctrl-typo.patch | 21 ---- >> 47 files changed, 91 insertions(+), 980 deletions(-) >> delete mode 100644 >> target/linux/bcm53xx/patches-4.9/031-ARM-BCM5301X-Add-back-handler-ignoring-external-impr.patch >> delete mode 100644 >> target/linux/bcm53xx/patches-4.9/033-0013-ARM-dts-BCM5301X-Correct-GIC_PPI-interrupt-flags.patch >> delete mode 100644 >> target/linux/bcm53xx/patches-4.9/089-PCI-iproc-Save-host-bridge-window-resource-in-struct.patch >> delete mode 100644 >> target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch >> delete mode 100644 >> target/linux/generic/patches-4.9/031-ubifs-fix-RENAME_WHITEOUT-support.patch >> delete mode 100644 >> target/linux/generic/patches-4.9/040-01-MIPS-Introduce-irq_stack.patch >> delete mode 100644 >> target/linux/generic/patches-4.9/040-02-MIPS-Stack-unwinding-while-on-IRQ-stack.patch >> delete mode 100644 >> target/linux/generic/patches-4.9/040-03-MIPS-Only-change-28-to-thread_info-if-coming-from-us.patch >> delete mode 100644 >> target/linux/generic/patches-4.9/040-04-MIPS-Switch-to-the-irq_stack-in-interrupts.patch >> delete mode 100644 >> target/linux/generic/patches-4.9/040-05-MIPS-Select-HAVE_IRQ_EXIT_ON_IRQ_STACK.patch >> delete mode 100644 >> target/linux/generic/patches-4.9/040-06-MIPS-IRQ-Stack-Fix-erroneous-jal-to-plat_irq_dispatc.patch >> delete mode 100644 >> target/linux/generic/patches-4.9/060-0001-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch >> delete mode 100644 >> target/linux/imx6/patches-4.9/0003-mmc-sdhci-esdhc-imx-increase-the-pad-I-O-drive-stren.patch >> delete mode 100644 >> target/linux/ramips/patches-4.9/200-rt3883-fix-pinctrl-typo.patch >> >> diff --git a/include/kernel-version.mk b/include/kernel-version.mk >> index 0a58a45..dce59d6 100644 >> --- a/include/kernel-version.mk >> +++ b/include/kernel-version.mk >> @@ -4,11 +4,11 @@ LINUX_RELEASE?=1 >> LINUX_VERSION-3.18 = .43 >> LINUX_VERSION-4.4 = .61 >> -LINUX_VERSION-4.9 = .20 >> +LINUX_VERSION-4.9 = .25 >> LINUX_KERNEL_HASH-3.18.43 = >> 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c >> LINUX_KERNEL_HASH-4.4.61 = >> 30dee7164615ad8184eba4ea6f4906b3ceb2fe462a8a4a929c8e9aab8d4a31da >> -LINUX_KERNEL_HASH-4.9.20 = >> 48660806dd32fb8dcbcf5932291bf6cc7d29240070372230871e0f56fea81341 >> +LINUX_KERNEL_HASH-4.9.25 = >> 82ade4695a21a7058f1537f22b64db62fe23e6c3aa57cc55be427e30cbf92e37 >> ifdef KERNEL_PATCHVER >> LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip >> $(LINUX_VERSION-$(KERNEL_PATCHVER))) >> diff --git >> a/target/linux/apm821xx/patches-4.9/802-usb-xhci-force-msi-renesas-xhci.patch >> b/target/linux/apm821xx/patches-4.9/802-usb-xhci-force-msi-renesas-xhci.patch >> index a201d79..86cab14 100644 >> --- >> a/target/linux/apm821xx/patches-4.9/802-usb-xhci-force-msi-renesas-xhci.patch >> +++ >> b/target/linux/apm821xx/patches-4.9/802-usb-xhci-force-msi-renesas-xhci.patch >> @@ -44,7 +44,7 @@ produce a noisy warning. >> /* hcd->irq is 0, we have MSI */ >> --- a/drivers/usb/host/xhci.h >> +++ b/drivers/usb/host/xhci.h >> -@@ -1674,6 +1674,7 @@ struct xhci_hcd { >> +@@ -1677,6 +1677,7 @@ struct xhci_hcd { >> /* support xHCI 0.96 spec USB2 software LPM */ >> unsigned sw_lpm_support:1; >> /* support xHCI 1.0 spec USB2 hardware LPM */ >> diff --git >> a/target/linux/bcm53xx/patches-4.9/031-ARM-BCM5301X-Add-back-handler-ignoring-external-impr.patch >> b/target/linux/bcm53xx/patches-4.9/031-ARM-BCM5301X-Add-back-handler-ignoring-external-impr.patch >> deleted file mode 100644 >> index a4f32f5..0000000 >> --- >> a/target/linux/bcm53xx/patches-4.9/031-ARM-BCM5301X-Add-back-handler-ignoring-external-impr.patch >> +++ /dev/null >> @@ -1,75 +0,0 @@ >> -From 09f3510fb70a46c8921f2cf4a90dbcae460a6820 Mon Sep 17 00:00:00 2001 >> -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <ra...@milecki.pl> >> -Date: Sat, 29 Oct 2016 13:12:29 +0200 >> -Subject: [PATCH] ARM: BCM5301X: Add back handler ignoring external >> imprecise >> - aborts >> -MIME-Version: 1.0 >> -Content-Type: text/plain; charset=UTF-8 >> -Content-Transfer-Encoding: 8bit >> - >> -Since early BCM5301X days we got abort handler that was removed by >> -commit 937b12306ea79 ("ARM: BCM5301X: remove workaround imprecise abort >> -fault handler"). It assumed we need to deal only with pending aborts >> -left by the bootloader. Unfortunately this isn't true for BCM5301X. >> - >> -When probing PCI config space (device enumeration) it is expected to >> -have master aborts on the PCI bus. Most bridges don't forward (or they >> -allow disabling it) these errors onto the AXI/AMBA bus but not the >> -Northstar (BCM5301X) one. >> - >> -iProc PCIe controller on Northstar seems to be some older one, without >> -a control register for errors forwarding. It means we need to workaround >> -this at platform level. All newer platforms are not affected by this >> -issue. >> - >> -Signed-off-by: Rafał Miłecki <ra...@milecki.pl> >> -Signed-off-by: Florian Fainelli <f.faine...@gmail.com> >> ---- >> - arch/arm/mach-bcm/bcm_5301x.c | 28 ++++++++++++++++++++++++++++ >> - 1 file changed, 28 insertions(+) >> - >> ---- a/arch/arm/mach-bcm/bcm_5301x.c >> -+++ b/arch/arm/mach-bcm/bcm_5301x.c >> -@@ -9,14 +9,42 @@ >> - #include <asm/hardware/cache-l2x0.h> >> - >> - #include <asm/mach/arch.h> >> -+#include <asm/siginfo.h> >> -+#include <asm/signal.h> >> -+ >> -+#define FSR_EXTERNAL (1 << 12) >> -+#define FSR_READ (0 << 10) >> -+#define FSR_IMPRECISE 0x0406 >> - >> - static const char *const bcm5301x_dt_compat[] __initconst = { >> - "brcm,bcm4708", >> - NULL, >> - }; >> - >> -+static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr, >> -+ struct pt_regs *regs) >> -+{ >> -+ /* >> -+ * We want to ignore aborts forwarded from the PCIe bus that are >> -+ * expected and shouldn't really be passed by the PCIe controller. >> -+ * The biggest disadvantage is the same FSR code may be reported >> when >> -+ * reading non-existing APB register and we shouldn't ignore that. >> -+ */ >> -+ if (fsr == (FSR_EXTERNAL | FSR_READ | FSR_IMPRECISE)) >> -+ return 0; >> -+ >> -+ return 1; >> -+} >> -+ >> -+static void __init bcm5301x_init_early(void) >> -+{ >> -+ hook_fault_code(16 + 6, bcm5301x_abort_handler, SIGBUS, >> BUS_OBJERR, >> -+ "imprecise external abort"); >> -+} >> -+ >> - DT_MACHINE_START(BCM5301X, "BCM5301X") >> - .l2c_aux_val = 0, >> - .l2c_aux_mask = ~0, >> - .dt_compat = bcm5301x_dt_compat, >> -+ .init_early = bcm5301x_init_early, >> - MACHINE_END >> diff --git >> a/target/linux/bcm53xx/patches-4.9/033-0013-ARM-dts-BCM5301X-Correct-GIC_PPI-interrupt-flags.patch >> b/target/linux/bcm53xx/patches-4.9/033-0013-ARM-dts-BCM5301X-Correct-GIC_PPI-interrupt-flags.patch >> deleted file mode 100644 >> index 70df201..0000000 >> --- >> a/target/linux/bcm53xx/patches-4.9/033-0013-ARM-dts-BCM5301X-Correct-GIC_PPI-interrupt-flags.patch >> +++ /dev/null >> @@ -1,41 +0,0 @@ >> -From 0e34079cd1f674449749aafe4be07336177de90d Mon Sep 17 00:00:00 2001 >> -From: Jon Mason <jon.ma...@broadcom.com> >> -Date: Thu, 2 Mar 2017 19:21:32 -0500 >> -Subject: [PATCH] ARM: dts: BCM5301X: Correct GIC_PPI interrupt flags >> -MIME-Version: 1.0 >> -Content-Type: text/plain; charset=UTF-8 >> -Content-Transfer-Encoding: 8bit >> - >> -GIC_PPI flags were misconfigured for the timers, resulting in errors >> -like: >> -[ 0.000000] GIC: PPI11 is secure or misconfigured >> - >> -Changing them to being edge triggered corrects the issue >> - >> -Suggested-by: Rafał Miłecki <ra...@milecki.pl> >> -Signed-off-by: Jon Mason <jon.ma...@broadcom.com> >> -Fixes: d27509f1 ("ARM: BCM5301X: add dts files for BCM4708 SoC") >> -Signed-off-by: Florian Fainelli <f.faine...@gmail.com> >> ---- >> - arch/arm/boot/dts/bcm5301x.dtsi | 4 ++-- >> - 1 file changed, 2 insertions(+), 2 deletions(-) >> - >> ---- a/arch/arm/boot/dts/bcm5301x.dtsi >> -+++ b/arch/arm/boot/dts/bcm5301x.dtsi >> -@@ -66,14 +66,14 @@ >> - timer@20200 { >> - compatible = "arm,cortex-a9-global-timer"; >> - reg = <0x20200 0x100>; >> -- interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; >> -+ interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>; >> - clocks = <&periph_clk>; >> - }; >> - >> - local-timer@20600 { >> - compatible = "arm,cortex-a9-twd-timer"; >> - reg = <0x20600 0x100>; >> -- interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; >> -+ interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>; >> - clocks = <&periph_clk>; >> - }; >> - >> diff --git >> a/target/linux/bcm53xx/patches-4.9/089-PCI-iproc-Save-host-bridge-window-resource-in-struct.patch >> b/target/linux/bcm53xx/patches-4.9/089-PCI-iproc-Save-host-bridge-window-resource-in-struct.patch >> deleted file mode 100644 >> index 3de4395..0000000 >> --- >> a/target/linux/bcm53xx/patches-4.9/089-PCI-iproc-Save-host-bridge-window-resource-in-struct.patch >> +++ /dev/null >> @@ -1,131 +0,0 @@ >> -From 6e347b5e05ea2ac4ac467a5a1cfaebb2c7f06f80 Mon Sep 17 00:00:00 2001 >> -From: Bjorn Helgaas <bhelg...@google.com> >> -Date: Thu, 9 Mar 2017 11:27:07 -0600 >> -Subject: [PATCH] PCI: iproc: Save host bridge window resource in struct >> - iproc_pcie >> -MIME-Version: 1.0 >> -Content-Type: text/plain; charset=UTF-8 >> -Content-Transfer-Encoding: 8bit >> - >> -The host bridge memory window resource is inserted into the >> iomem_resource >> -tree and cannot be deallocated until the host bridge itself is removed. >> - >> -Previously, the window was on the stack, which meant the iomem_resource >> -entry pointed into the stack and was corrupted as soon as the probe >> -function returned, which caused memory corruption and errors like this: >> - >> - pcie_iproc_bcma bcma0:8: resource collision: [mem >> 0x40000000-0x47ffffff] conflicts with PCIe MEM space [mem >> 0x40000000-0x47ffffff] >> - >> -Move the memory window resource from the stack into struct iproc_pcie so >> -its lifetime matches that of the host bridge. >> - >> -Fixes: c3245a566400 ("PCI: iproc: Request host bridge window resources") >> -Reported-and-tested-by: Rafał Miłecki <zaj...@gmail.com> >> -Signed-off-by: Bjorn Helgaas <bhelg...@google.com> >> -CC: sta...@vger.kernel.org # v4.8+ >> ---- >> - drivers/pci/host/pcie-iproc-bcma.c | 24 ++++++++++++------------ >> - drivers/pci/host/pcie-iproc-platform.c | 19 ++++++++++--------- >> - drivers/pci/host/pcie-iproc.h | 1 + >> - 3 files changed, 23 insertions(+), 21 deletions(-) >> - >> ---- a/drivers/pci/host/pcie-iproc-bcma.c >> -+++ b/drivers/pci/host/pcie-iproc-bcma.c >> -@@ -44,8 +44,7 @@ static int iproc_pcie_bcma_probe(struct >> - { >> - struct device *dev = &bdev->dev; >> - struct iproc_pcie *pcie; >> -- LIST_HEAD(res); >> -- struct resource res_mem; >> -+ LIST_HEAD(resources); >> - int ret; >> - >> - pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); >> -@@ -62,22 +61,23 @@ static int iproc_pcie_bcma_probe(struct >> - >> - pcie->base_addr = bdev->addr; >> - >> -- res_mem.start = bdev->addr_s[0]; >> -- res_mem.end = bdev->addr_s[0] + SZ_128M - 1; >> -- res_mem.name = "PCIe MEM space"; >> -- res_mem.flags = IORESOURCE_MEM; >> -- pci_add_resource(&res, &res_mem); >> -+ pcie->mem.start = bdev->addr_s[0]; >> -+ pcie->mem.end = bdev->addr_s[0] + SZ_128M - 1; >> -+ pcie->mem.name = "PCIe MEM space"; >> -+ pcie->mem.flags = IORESOURCE_MEM; >> -+ pci_add_resource(&resources, &pcie->mem); >> - >> - pcie->map_irq = iproc_pcie_bcma_map_irq; >> - >> -- ret = iproc_pcie_setup(pcie, &res); >> -- if (ret) >> -+ ret = iproc_pcie_setup(pcie, &resources); >> -+ if (ret) { >> - dev_err(dev, "PCIe controller setup failed\n"); >> -- >> -- pci_free_resource_list(&res); >> -+ pci_free_resource_list(&resources); >> -+ return ret; >> -+ } >> - >> - bcma_set_drvdata(bdev, pcie); >> -- return ret; >> -+ return 0; >> - } >> - >> - static void iproc_pcie_bcma_remove(struct bcma_device *bdev) >> ---- a/drivers/pci/host/pcie-iproc-platform.c >> -+++ b/drivers/pci/host/pcie-iproc-platform.c >> -@@ -46,7 +46,7 @@ static int iproc_pcie_pltfm_probe(struct >> - struct device_node *np = dev->of_node; >> - struct resource reg; >> - resource_size_t iobase = 0; >> -- LIST_HEAD(res); >> -+ LIST_HEAD(resources); >> - int ret; >> - >> - of_id = of_match_device(iproc_pcie_of_match_table, dev); >> -@@ -108,23 +108,24 @@ static int iproc_pcie_pltfm_probe(struct >> - pcie->phy = NULL; >> - } >> - >> -- ret = of_pci_get_host_bridge_resources(np, 0, 0xff, &res, >> &iobase); >> -+ ret = of_pci_get_host_bridge_resources(np, 0, 0xff, &resources, >> -+ &iobase); >> - if (ret) { >> -- dev_err(dev, >> -- "unable to get PCI host bridge resources\n"); >> -+ dev_err(dev, "unable to get PCI host bridge resources\n"); >> - return ret; >> - } >> - >> - pcie->map_irq = of_irq_parse_and_map_pci; >> - >> -- ret = iproc_pcie_setup(pcie, &res); >> -- if (ret) >> -+ ret = iproc_pcie_setup(pcie, &resources); >> -+ if (ret) { >> - dev_err(dev, "PCIe controller setup failed\n"); >> -- >> -- pci_free_resource_list(&res); >> -+ pci_free_resource_list(&resources); >> -+ return ret; >> -+ } >> - >> - platform_set_drvdata(pdev, pcie); >> -- return ret; >> -+ return 0; >> - } >> - >> - static int iproc_pcie_pltfm_remove(struct platform_device *pdev) >> ---- a/drivers/pci/host/pcie-iproc.h >> -+++ b/drivers/pci/host/pcie-iproc.h >> -@@ -68,6 +68,7 @@ struct iproc_pcie { >> - #ifdef CONFIG_ARM >> - struct pci_sys_data sysdata; >> - #endif >> -+ struct resource mem; >> - struct pci_bus *root_bus; >> - struct phy *phy; >> - int (*map_irq)(const struct pci_dev *, u8, u8); >> diff --git >> a/target/linux/bcm53xx/patches-4.9/180-usb-xhci-add-support-for-performing-fake-doorbell.patch >> b/target/linux/bcm53xx/patches-4.9/180-usb-xhci-add-support-for-performing-fake-doorbell.patch >> index 9e5bd83..83ea89b 100644 >> --- >> a/target/linux/bcm53xx/patches-4.9/180-usb-xhci-add-support-for-performing-fake-doorbell.patch >> +++ >> b/target/linux/bcm53xx/patches-4.9/180-usb-xhci-add-support-for-performing-fake-doorbell.patch >> @@ -127,11 +127,11 @@ it on BCM4708 family. >> /* >> --- a/drivers/usb/host/xhci.h >> +++ b/drivers/usb/host/xhci.h >> -@@ -1657,6 +1657,7 @@ struct xhci_hcd { >> - #define XHCI_SSIC_PORT_UNUSED (1 << 22) >> - #define XHCI_NO_64BIT_SUPPORT (1 << 23) >> +@@ -1659,6 +1659,7 @@ struct xhci_hcd { >> #define XHCI_MISSING_CAS (1 << 24) >> -+#define XHCI_FAKE_DOORBELL (1 << 25) >> + /* For controller with a broken Port Disable implementation */ >> + #define XHCI_BROKEN_PORT_PED (1 << 25) >> ++#define XHCI_FAKE_DOORBELL (1 << 26) >> + >> unsigned int num_active_eps; >> unsigned int limit_active_eps; >> - /* There are two roothubs to keep track of bus suspend info for */ >> diff --git >> a/target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch >> b/target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch >> index c702390..3245269 100644 >> --- a/target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch >> +++ b/target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch >> @@ -69,7 +69,7 @@ Signed-off-by: Rafał Miłecki <ra...@milecki.pl> >> #include <linux/clockchips.h> >> #include <linux/clocksource.h> >> #include <linux/interrupt.h> >> -@@ -513,6 +514,16 @@ arch_timer_detect_rate(void __iomem *cnt >> +@@ -514,6 +515,16 @@ arch_timer_detect_rate(void __iomem *cnt >> arch_timer_rate = arch_timer_get_cntfrq(); >> } >> 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 0610d03..d13cae7 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 <nor...@tronnes.org> >> } >> --- a/drivers/usb/core/hub.c >> +++ b/drivers/usb/core/hub.c >> -@@ -5009,7 +5009,7 @@ static void port_event(struct usb_hub *h >> +@@ -5016,7 +5016,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-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch >> b/target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch >> index ff6084f..cbae56b 100644 >> --- >> a/target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch >> +++ >> b/target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch >> @@ -39,7 +39,7 @@ Signed-off-by: Noralf Trønnes <nor...@tronnes.org> >> depends on X86_THERMAL_VECTOR >> --- a/drivers/thermal/Makefile >> +++ b/drivers/thermal/Makefile >> -@@ -41,6 +41,7 @@ obj-$(CONFIG_MAX77620_THERMAL) += max776 >> +@@ -42,6 +42,7 @@ obj-$(CONFIG_MAX77620_THERMAL) += max776 >> obj-$(CONFIG_QORIQ_THERMAL) += qoriq_thermal.o >> obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o >> obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o >> diff --git >> a/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch >> b/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch >> index 73c9ede..e17a84d 100644 >> --- >> a/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch >> +++ >> b/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch >> @@ -10,7 +10,7 @@ Subject: [PATCH] config: Enable CONFIG_MEMCG, but leave >> it disabled (due to >> --- a/kernel/cgroup.c >> +++ b/kernel/cgroup.c >> -@@ -5626,7 +5626,7 @@ int __init cgroup_init_early(void) >> +@@ -5627,7 +5627,7 @@ int __init cgroup_init_early(void) >> return 0; >> } >> @@ -19,7 +19,7 @@ Subject: [PATCH] config: Enable CONFIG_MEMCG, but >> leave it disabled (due to >> /** >> * cgroup_init - cgroup initialization >> -@@ -6163,6 +6163,28 @@ static int __init cgroup_no_v1(char *str >> +@@ -6164,6 +6164,28 @@ static int __init cgroup_no_v1(char *str >> } >> __setup("cgroup_no_v1=", cgroup_no_v1); >> diff --git >> a/target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch >> b/target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch >> deleted file mode 100644 >> index 899c75e..0000000 >> --- >> a/target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch >> +++ /dev/null >> @@ -1,90 +0,0 @@ >> -From 89b466914a0d49f08d00be25556ba22497b9a284 Mon Sep 17 00:00:00 2001 >> -From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <nor...@tronnes.org> >> -Date: Sat, 17 Sep 2016 15:07:10 +0200 >> -Subject: [PATCH] i2c: bcm2835: Fix hang for writing messages larger than >> 16 >> - bytes >> -MIME-Version: 1.0 >> -Content-Type: text/plain; charset=UTF-8 >> -Content-Transfer-Encoding: 8bit >> - >> -Writing messages larger than the FIFO size results in a hang, rendering >> -the machine unusable. This is because the RXD status flag is set on the >> -first interrupt which results in bcm2835_drain_rxfifo() stealing bytes >> -from the buffer. The controller continues to trigger interrupts waiting >> -for the missing bytes, but bcm2835_fill_txfifo() has none to give. >> -In this situation wait_for_completion_timeout() apparently is unable to >> -stop the madness. >> - >> -The BCM2835 ARM Peripherals datasheet has this to say about the flags: >> - TXD: is set when the FIFO has space for at least one byte of data. >> - RXD: is set when the FIFO contains at least one byte of data. >> - TXW: is set during a write transfer and the FIFO is less than full. >> - RXR: is set during a read transfer and the FIFO is or more full. >> - >> -Implementing the logic from the downstream i2c-bcm2708 driver solved >> -the hang problem. >> - >> -Signed-off-by: Noralf Trønnes <nor...@tronnes.org> >> -Reviewed-by: Eric Anholt <e...@anholt.net> >> -Reviewed-by: Martin Sperl <ker...@martin.sperl.org> >> ---- >> - drivers/i2c/busses/i2c-bcm2835.c | 22 ++++++++++++++-------- >> - 1 file changed, 14 insertions(+), 8 deletions(-) >> - >> ---- a/drivers/i2c/busses/i2c-bcm2835.c >> -+++ b/drivers/i2c/busses/i2c-bcm2835.c >> -@@ -64,6 +64,7 @@ struct bcm2835_i2c_dev { >> - int irq; >> - struct i2c_adapter adapter; >> - struct completion completion; >> -+ struct i2c_msg *curr_msg; >> - u32 msg_err; >> - u8 *msg_buf; >> - size_t msg_buf_remaining; >> -@@ -126,14 +127,13 @@ static irqreturn_t bcm2835_i2c_isr(int t >> - return IRQ_HANDLED; >> - } >> - >> -- if (val & BCM2835_I2C_S_RXD) { >> -- bcm2835_drain_rxfifo(i2c_dev); >> -- if (!(val & BCM2835_I2C_S_DONE)) >> -- return IRQ_HANDLED; >> -- } >> -- >> - if (val & BCM2835_I2C_S_DONE) { >> -- if (i2c_dev->msg_buf_remaining) >> -+ if (i2c_dev->curr_msg->flags & I2C_M_RD) { >> -+ bcm2835_drain_rxfifo(i2c_dev); >> -+ val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S); >> -+ } >> -+ >> -+ if ((val & BCM2835_I2C_S_RXD) || >> i2c_dev->msg_buf_remaining) >> - i2c_dev->msg_err = BCM2835_I2C_S_LEN; >> - else >> - i2c_dev->msg_err = 0; >> -@@ -141,11 +141,16 @@ static irqreturn_t bcm2835_i2c_isr(int t >> - return IRQ_HANDLED; >> - } >> - >> -- if (val & BCM2835_I2C_S_TXD) { >> -+ if (val & BCM2835_I2C_S_TXW) { >> - bcm2835_fill_txfifo(i2c_dev); >> - return IRQ_HANDLED; >> - } >> - >> -+ if (val & BCM2835_I2C_S_RXR) { >> -+ bcm2835_drain_rxfifo(i2c_dev); >> -+ return IRQ_HANDLED; >> -+ } >> -+ >> - return IRQ_NONE; >> - } >> - >> -@@ -155,6 +160,7 @@ static int bcm2835_i2c_xfer_msg(struct b >> - u32 c; >> - unsigned long time_left; >> - >> -+ i2c_dev->curr_msg = msg; >> - i2c_dev->msg_buf = msg->buf; >> - i2c_dev->msg_buf_remaining = msg->len; >> - reinit_completion(&i2c_dev->completion); >> diff --git >> a/target/linux/generic/patches-4.9/031-ubifs-fix-RENAME_WHITEOUT-support.patch >> b/target/linux/generic/patches-4.9/031-ubifs-fix-RENAME_WHITEOUT-support.patch >> deleted file mode 100644 >> index 7b81afb..0000000 >> --- >> a/target/linux/generic/patches-4.9/031-ubifs-fix-RENAME_WHITEOUT-support.patch >> +++ /dev/null >> @@ -1,25 +0,0 @@ >> -From: Felix Fietkau <n...@nbd.name> >> -Date: Mon, 6 Mar 2017 09:48:52 +0100 >> -Subject: [PATCH] ubifs: fix RENAME_WHITEOUT support >> - >> -Remove faulty leftover check in do_rename(), apparently introduced in a >> -merge that combined whiteout support changes with commit f03b8ad8d386 >> -("fs: support RENAME_NOREPLACE for local filesystems") >> - >> -Fixes: 9e0a1fff8db5 ("ubifs: Implement RENAME_WHITEOUT") >> -Cc: sta...@vger.kernel.org >> -Signed-off-by: Felix Fietkau <n...@nbd.name> >> ---- >> - >> ---- a/fs/ubifs/dir.c >> -+++ b/fs/ubifs/dir.c >> -@@ -1088,9 +1088,6 @@ static int do_rename(struct inode *old_d >> - struct timespec time; >> - unsigned int uninitialized_var(saved_nlink); >> - >> -- if (flags & ~RENAME_NOREPLACE) >> -- return -EINVAL; >> -- >> - /* >> - * Budget request settings: deletion direntry, new direntry, >> removing >> - * the old inode, and changing old and new parent directory >> inodes. >> diff --git >> a/target/linux/generic/patches-4.9/040-01-MIPS-Introduce-irq_stack.patch >> b/target/linux/generic/patches-4.9/040-01-MIPS-Introduce-irq_stack.patch >> deleted file mode 100644 >> index 1cdbcda..0000000 >> --- >> a/target/linux/generic/patches-4.9/040-01-MIPS-Introduce-irq_stack.patch >> +++ /dev/null >> @@ -1,70 +0,0 @@ >> -From: Matt Redfearn <matt.redfe...@imgtec.com> >> -Date: Mon, 19 Dec 2016 14:20:56 +0000 >> -Subject: [PATCH] MIPS: Introduce irq_stack >> - >> -Allocate a per-cpu irq stack for use within interrupt handlers. >> - >> -Also add a utility function on_irq_stack to determine if a given stack >> -pointer is within the irq stack for that cpu. >> - >> -Signed-off-by: Matt Redfearn <matt.redfe...@imgtec.com> >> ---- >> - >> ---- a/arch/mips/include/asm/irq.h >> -+++ b/arch/mips/include/asm/irq.h >> -@@ -17,6 +17,18 @@ >> - >> - #include <irq.h> >> - >> -+#define IRQ_STACK_SIZE THREAD_SIZE >> -+ >> -+extern void *irq_stack[NR_CPUS]; >> -+ >> -+static inline bool on_irq_stack(int cpu, unsigned long sp) >> -+{ >> -+ unsigned long low = (unsigned long)irq_stack[cpu]; >> -+ unsigned long high = low + IRQ_STACK_SIZE; >> -+ >> -+ return (low <= sp && sp <= high); >> -+} >> -+ >> - #ifdef CONFIG_I8259 >> - static inline int irq_canonicalize(int irq) >> - { >> ---- a/arch/mips/kernel/asm-offsets.c >> -+++ b/arch/mips/kernel/asm-offsets.c >> -@@ -102,6 +102,7 @@ void output_thread_info_defines(void) >> - OFFSET(TI_REGS, thread_info, regs); >> - DEFINE(_THREAD_SIZE, THREAD_SIZE); >> - DEFINE(_THREAD_MASK, THREAD_MASK); >> -+ DEFINE(_IRQ_STACK_SIZE, IRQ_STACK_SIZE); >> - BLANK(); >> - } >> - >> ---- a/arch/mips/kernel/irq.c >> -+++ b/arch/mips/kernel/irq.c >> -@@ -25,6 +25,8 @@ >> - #include <linux/atomic.h> >> - #include <asm/uaccess.h> >> - >> -+void *irq_stack[NR_CPUS]; >> -+ >> - /* >> - * 'what should we do if we get a hw irq event on an illegal vector'. >> - * each architecture has to answer this themselves. >> -@@ -58,6 +60,15 @@ void __init init_IRQ(void) >> - clear_c0_status(ST0_IM); >> - >> - arch_init_irq(); >> -+ >> -+ for_each_possible_cpu(i) { >> -+ int irq_pages = IRQ_STACK_SIZE / PAGE_SIZE; >> -+ void *s = (void *)__get_free_pages(GFP_KERNEL, irq_pages); >> -+ >> -+ irq_stack[i] = s; >> -+ pr_debug("CPU%d IRQ stack at 0x%p - 0x%p\n", i, >> -+ irq_stack[i], irq_stack[i] + IRQ_STACK_SIZE); >> -+ } >> - } >> - >> - #ifdef CONFIG_DEBUG_STACKOVERFLOW >> diff --git >> a/target/linux/generic/patches-4.9/040-02-MIPS-Stack-unwinding-while-on-IRQ-stack.patch >> b/target/linux/generic/patches-4.9/040-02-MIPS-Stack-unwinding-while-on-IRQ-stack.patch >> deleted file mode 100644 >> index b2e90c8..0000000 >> --- >> a/target/linux/generic/patches-4.9/040-02-MIPS-Stack-unwinding-while-on-IRQ-stack.patch >> +++ /dev/null >> @@ -1,42 +0,0 @@ >> -From: Matt Redfearn <matt.redfe...@imgtec.com> >> -Date: Mon, 19 Dec 2016 14:20:57 +0000 >> -Subject: [PATCH] MIPS: Stack unwinding while on IRQ stack >> - >> -Within unwind stack, check if the stack pointer being unwound is within >> -the CPU's irq_stack and if so use that page rather than the task's stack >> -page. >> - >> -Signed-off-by: Matt Redfearn <matt.redfe...@imgtec.com> >> ---- >> - >> ---- a/arch/mips/kernel/process.c >> -+++ b/arch/mips/kernel/process.c >> -@@ -33,6 +33,7 @@ >> - #include <asm/dsemul.h> >> - #include <asm/dsp.h> >> - #include <asm/fpu.h> >> -+#include <asm/irq.h> >> - #include <asm/msa.h> >> - #include <asm/pgtable.h> >> - #include <asm/mipsregs.h> >> -@@ -556,7 +557,19 @@ EXPORT_SYMBOL(unwind_stack_by_address); >> - unsigned long unwind_stack(struct task_struct *task, unsigned long *sp, >> - unsigned long pc, unsigned long *ra) >> - { >> -- unsigned long stack_page = (unsigned long)task_stack_page(task); >> -+ unsigned long stack_page = 0; >> -+ int cpu; >> -+ >> -+ for_each_possible_cpu(cpu) { >> -+ if (on_irq_stack(cpu, *sp)) { >> -+ stack_page = (unsigned long)irq_stack[cpu]; >> -+ break; >> -+ } >> -+ } >> -+ >> -+ if (!stack_page) >> -+ stack_page = (unsigned long)task_stack_page(task); >> -+ >> - return unwind_stack_by_address(stack_page, sp, pc, ra); >> - } >> - #endif >> diff --git >> a/target/linux/generic/patches-4.9/040-03-MIPS-Only-change-28-to-thread_info-if-coming-from-us.patch >> b/target/linux/generic/patches-4.9/040-03-MIPS-Only-change-28-to-thread_info-if-coming-from-us.patch >> deleted file mode 100644 >> index e13c67b..0000000 >> --- >> a/target/linux/generic/patches-4.9/040-03-MIPS-Only-change-28-to-thread_info-if-coming-from-us.patch >> +++ /dev/null >> @@ -1,48 +0,0 @@ >> -From: Matt Redfearn <matt.redfe...@imgtec.com> >> -Date: Mon, 19 Dec 2016 14:20:58 +0000 >> -Subject: [PATCH] MIPS: Only change $28 to thread_info if coming from user >> - mode >> - >> -The SAVE_SOME macro is used to save the execution context on all >> -exceptions. >> -If an exception occurs while executing user code, the stack is switched >> -to the kernel's stack for the current task, and register $28 is switched >> -to point to the current_thread_info, which is at the bottom of the stack >> -region. >> -If the exception occurs while executing kernel code, the stack is left, >> -and this change ensures that register $28 is not updated. This is the >> -correct behaviour when the kernel can be executing on the separate irq >> -stack, because the thread_info will not be at the base of it. >> - >> -With this change, register $28 is only switched to it's kernel >> -conventional usage of the currrent thread info pointer at the point at >> -which execution enters kernel space. Doing it on every exception was >> -redundant, but OK without an IRQ stack, but will be erroneous once that >> -is introduced. >> - >> -Signed-off-by: Matt Redfearn <matt.redfe...@imgtec.com> >> -Reviewed-by: Maciej W. Rozycki <ma...@imgtec.com> >> ---- >> - >> ---- a/arch/mips/include/asm/stackframe.h >> -+++ b/arch/mips/include/asm/stackframe.h >> -@@ -216,12 +216,19 @@ >> - LONG_S $25, PT_R25(sp) >> - LONG_S $28, PT_R28(sp) >> - LONG_S $31, PT_R31(sp) >> -+ >> -+ /* Set thread_info if we're coming from user mode */ >> -+ mfc0 k0, CP0_STATUS >> -+ sll k0, 3 /* extract cu0 bit */ >> -+ bltz k0, 9f >> -+ >> - ori $28, sp, _THREAD_MASK >> - xori $28, _THREAD_MASK >> - #ifdef CONFIG_CPU_CAVIUM_OCTEON >> - .set mips64 >> - pref 0, 0($28) /* Prefetch the current pointer */ >> - #endif >> -+9: >> - .set pop >> - .endm >> - >> diff --git >> a/target/linux/generic/patches-4.9/040-04-MIPS-Switch-to-the-irq_stack-in-interrupts.patch >> b/target/linux/generic/patches-4.9/040-04-MIPS-Switch-to-the-irq_stack-in-interrupts.patch >> deleted file mode 100644 >> index 0c7e45b..0000000 >> --- >> a/target/linux/generic/patches-4.9/040-04-MIPS-Switch-to-the-irq_stack-in-interrupts.patch >> +++ /dev/null >> @@ -1,116 +0,0 @@ >> -From: Matt Redfearn <matt.redfe...@imgtec.com> >> -Date: Mon, 19 Dec 2016 14:20:59 +0000 >> -Subject: [PATCH] MIPS: Switch to the irq_stack in interrupts >> - >> -When enterring interrupt context via handle_int or except_vec_vi, switch >> -to the irq_stack of the current CPU if it is not already in use. >> - >> -The current stack pointer is masked with the thread size and compared to >> -the base or the irq stack. If it does not match then the stack pointer >> -is set to the top of that stack, otherwise this is a nested irq being >> -handled on the irq stack so the stack pointer should be left as it was. >> - >> -The in-use stack pointer is placed in the callee saved register s1. It >> -will be saved to the stack when plat_irq_dispatch is invoked and can be >> -restored once control returns here. >> - >> -Signed-off-by: Matt Redfearn <matt.redfe...@imgtec.com> >> ---- >> - >> ---- a/arch/mips/kernel/genex.S >> -+++ b/arch/mips/kernel/genex.S >> -@@ -187,9 +187,44 @@ NESTED(handle_int, PT_SIZE, sp) >> - >> - LONG_L s0, TI_REGS($28) >> - LONG_S sp, TI_REGS($28) >> -- PTR_LA ra, ret_from_irq >> -- PTR_LA v0, plat_irq_dispatch >> -- jr v0 >> -+ >> -+ /* >> -+ * SAVE_ALL ensures we are using a valid kernel stack for the >> thread. >> -+ * Check if we are already using the IRQ stack. >> -+ */ >> -+ move s1, sp # Preserve the sp >> -+ >> -+ /* Get IRQ stack for this CPU */ >> -+ ASM_CPUID_MFC0 k0, ASM_SMP_CPUID_REG >> -+#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32) >> -+ lui k1, %hi(irq_stack) >> -+#else >> -+ lui k1, %highest(irq_stack) >> -+ daddiu k1, %higher(irq_stack) >> -+ dsll k1, 16 >> -+ daddiu k1, %hi(irq_stack) >> -+ dsll k1, 16 >> -+#endif >> -+ LONG_SRL k0, SMP_CPUID_PTRSHIFT >> -+ LONG_ADDU k1, k0 >> -+ LONG_L t0, %lo(irq_stack)(k1) >> -+ >> -+ # Check if already on IRQ stack >> -+ PTR_LI t1, ~(_THREAD_SIZE-1) >> -+ and t1, t1, sp >> -+ beq t0, t1, 2f >> -+ >> -+ /* Switch to IRQ stack */ >> -+ li t1, _IRQ_STACK_SIZE >> -+ PTR_ADD sp, t0, t1 >> -+ >> -+2: >> -+ jal plat_irq_dispatch >> -+ >> -+ /* Restore sp */ >> -+ move sp, s1 >> -+ >> -+ j ret_from_irq >> - #ifdef CONFIG_CPU_MICROMIPS >> - nop >> - #endif >> -@@ -262,8 +297,44 @@ NESTED(except_vec_vi_handler, 0, sp) >> - >> - LONG_L s0, TI_REGS($28) >> - LONG_S sp, TI_REGS($28) >> -- PTR_LA ra, ret_from_irq >> -- jr v0 >> -+ >> -+ /* >> -+ * SAVE_ALL ensures we are using a valid kernel stack for the >> thread. >> -+ * Check if we are already using the IRQ stack. >> -+ */ >> -+ move s1, sp # Preserve the sp >> -+ >> -+ /* Get IRQ stack for this CPU */ >> -+ ASM_CPUID_MFC0 k0, ASM_SMP_CPUID_REG >> -+#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32) >> -+ lui k1, %hi(irq_stack) >> -+#else >> -+ lui k1, %highest(irq_stack) >> -+ daddiu k1, %higher(irq_stack) >> -+ dsll k1, 16 >> -+ daddiu k1, %hi(irq_stack) >> -+ dsll k1, 16 >> -+#endif >> -+ LONG_SRL k0, SMP_CPUID_PTRSHIFT >> -+ LONG_ADDU k1, k0 >> -+ LONG_L t0, %lo(irq_stack)(k1) >> -+ >> -+ # Check if already on IRQ stack >> -+ PTR_LI t1, ~(_THREAD_SIZE-1) >> -+ and t1, t1, sp >> -+ beq t0, t1, 2f >> -+ >> -+ /* Switch to IRQ stack */ >> -+ li t1, _IRQ_STACK_SIZE >> -+ PTR_ADD sp, t0, t1 >> -+ >> -+2: >> -+ jal plat_irq_dispatch >> -+ >> -+ /* Restore sp */ >> -+ move sp, s1 >> -+ >> -+ j ret_from_irq >> - END(except_vec_vi_handler) >> - >> - /* >> diff --git >> a/target/linux/generic/patches-4.9/040-05-MIPS-Select-HAVE_IRQ_EXIT_ON_IRQ_STACK.patch >> b/target/linux/generic/patches-4.9/040-05-MIPS-Select-HAVE_IRQ_EXIT_ON_IRQ_STACK.patch >> deleted file mode 100644 >> index a4942b8..0000000 >> --- >> a/target/linux/generic/patches-4.9/040-05-MIPS-Select-HAVE_IRQ_EXIT_ON_IRQ_STACK.patch >> +++ /dev/null >> @@ -1,21 +0,0 @@ >> -From: Matt Redfearn <matt.redfe...@imgtec.com> >> -Date: Mon, 19 Dec 2016 14:21:00 +0000 >> -Subject: [PATCH] MIPS: Select HAVE_IRQ_EXIT_ON_IRQ_STACK >> - >> -Since do_IRQ is now invoked on a separate IRQ stack, we select >> -HAVE_IRQ_EXIT_ON_IRQ_STACK so that softirq's may be invoked directly >> -from irq_exit(), rather than requiring do_softirq_own_stack. >> - >> -Signed-off-by: Matt Redfearn <matt.redfe...@imgtec.com> >> ---- >> - >> ---- a/arch/mips/Kconfig >> -+++ b/arch/mips/Kconfig >> -@@ -9,6 +9,7 @@ config MIPS >> - select HAVE_CONTEXT_TRACKING >> - select HAVE_GENERIC_DMA_COHERENT >> - select HAVE_IDE >> -+ select HAVE_IRQ_EXIT_ON_IRQ_STACK >> - select HAVE_OPROFILE >> - select HAVE_PERF_EVENTS >> - select PERF_USE_VMALLOC >> diff --git >> a/target/linux/generic/patches-4.9/040-06-MIPS-IRQ-Stack-Fix-erroneous-jal-to-plat_irq_dispatc.patch >> b/target/linux/generic/patches-4.9/040-06-MIPS-IRQ-Stack-Fix-erroneous-jal-to-plat_irq_dispatc.patch >> deleted file mode 100644 >> index bb16bb1..0000000 >> --- >> a/target/linux/generic/patches-4.9/040-06-MIPS-IRQ-Stack-Fix-erroneous-jal-to-plat_irq_dispatc.patch >> +++ /dev/null >> @@ -1,35 +0,0 @@ >> -From de856416e7143e32afc4849625616554aa060f7a Mon Sep 17 00:00:00 2001 >> -From: Matt Redfearn <matt.redfe...@imgtec.com> >> -Date: Wed, 25 Jan 2017 17:00:25 +0000 >> -Subject: [PATCH] MIPS: IRQ Stack: Fix erroneous jal to plat_irq_dispatch >> - >> -Commit dda45f701c9d ("MIPS: Switch to the irq_stack in interrupts") >> -changed both the normal and vectored interrupt handlers. Unfortunately >> -the vectored version, "except_vec_vi_handler", was incorrectly modified >> -to unconditionally jal to plat_irq_dispatch, rather than doing a jalr to >> -the vectored handler that has been set up. This is ok for many platforms >> -which set the vectored handler to plat_irq_dispatch anyway, but will >> -cause problems with platforms that use other handlers. >> - >> -Fixes: dda45f701c9d ("MIPS: Switch to the irq_stack in interrupts") >> -Signed-off-by: Matt Redfearn <matt.redfe...@imgtec.com> >> -Cc: Ralf Baechle <r...@linux-mips.org> >> -Cc: Paul Burton <paul.bur...@imgtec.com> >> -Cc: linux-m...@linux-mips.org >> -Patchwork: https://patchwork.linux-mips.org/patch/15110/ >> -Signed-off-by: James Hogan <james.ho...@imgtec.com> >> ---- >> - arch/mips/kernel/genex.S | 2 +- >> - 1 file changed, 1 insertion(+), 1 deletion(-) >> - >> ---- a/arch/mips/kernel/genex.S >> -+++ b/arch/mips/kernel/genex.S >> -@@ -329,7 +329,7 @@ NESTED(except_vec_vi_handler, 0, sp) >> - PTR_ADD sp, t0, t1 >> - >> - 2: >> -- jal plat_irq_dispatch >> -+ jalr v0 >> - >> - /* Restore sp */ >> - move sp, s1 >> diff --git >> a/target/linux/generic/patches-4.9/060-0001-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch >> b/target/linux/generic/patches-4.9/060-0001-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch >> deleted file mode 100644 >> index 7eed777..0000000 >> --- >> a/target/linux/generic/patches-4.9/060-0001-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch >> +++ /dev/null >> @@ -1,40 +0,0 @@ >> -From bd5d21310133921021d78995ad6346f908483124 Mon Sep 17 00:00:00 2001 >> -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <ra...@milecki.pl> >> -Date: Sun, 20 Nov 2016 16:09:30 +0100 >> -Subject: [PATCH] mtd: bcm47xxpart: fix parsing first block after aligned >> TRX >> -MIME-Version: 1.0 >> -Content-Type: text/plain; charset=UTF-8 >> -Content-Transfer-Encoding: 8bit >> - >> -After parsing TRX we should skip to the first block placed behind it. >> -Our code was working only with TRX with length not aligned to the >> -blocksize. In other cases (length aligned) it was missing the block >> -places right after TRX. >> - >> -This fixes calculation and simplifies the comment. >> - >> -Signed-off-by: Rafał Miłecki <ra...@milecki.pl> >> -Signed-off-by: Brian Norris <computersforpe...@gmail.com> >> ---- >> - drivers/mtd/bcm47xxpart.c | 10 ++++------ >> - 1 file changed, 4 insertions(+), 6 deletions(-) >> - >> ---- a/drivers/mtd/bcm47xxpart.c >> -+++ b/drivers/mtd/bcm47xxpart.c >> -@@ -229,12 +229,10 @@ static int bcm47xxpart_parse(struct mtd_ >> - >> - last_trx_part = curr_part - 1; >> - >> -- /* >> -- * We have whole TRX scanned, skip to the next >> part. Use >> -- * roundown (not roundup), as the loop will >> increase >> -- * offset in next step. >> -- */ >> -- offset = rounddown(offset + trx->length, >> blocksize); >> -+ /* Jump to the end of TRX */ >> -+ offset = roundup(offset + trx->length, blocksize); >> -+ /* Next loop iteration will increase the offset */ >> -+ offset -= blocksize; >> - continue; >> - } >> - >> diff --git >> a/target/linux/generic/patches-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch >> b/target/linux/generic/patches-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch >> index 7c5cb45..5a86131 100644 >> --- >> a/target/linux/generic/patches-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch >> +++ >> b/target/linux/generic/patches-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch >> @@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <j...@openwrt.org> >> case RTN_THROW: >> case RTN_UNREACHABLE: >> default: >> -@@ -2594,6 +2616,17 @@ static int ip6_pkt_prohibit_out(struct n >> +@@ -2596,6 +2618,17 @@ static int ip6_pkt_prohibit_out(struct n >> return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, >> IPSTATS_MIB_OUTNOROUTES); >> } >> @@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <j...@openwrt.org> >> /* >> * Allocate a dst for local (unicast / anycast) address. >> */ >> -@@ -2829,7 +2862,8 @@ static int rtm_to_fib6_config(struct sk_ >> +@@ -2831,7 +2864,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 || >> @@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <j...@openwrt.org> >> cfg->fc_flags |= RTF_REJECT; >> if (rtm->rtm_type == RTN_LOCAL) >> -@@ -3207,6 +3241,9 @@ static int rt6_fill_node(struct net *net >> +@@ -3209,6 +3243,9 @@ static int rt6_fill_node(struct net *net >> case -EACCES: >> rtm->rtm_type = RTN_PROHIBIT; >> break; >> @@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <j...@openwrt.org> >> case -EAGAIN: >> rtm->rtm_type = RTN_THROW; >> break; >> -@@ -3480,6 +3517,8 @@ static int ip6_route_dev_notify(struct n >> +@@ -3482,6 +3519,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); >> @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <j...@openwrt.org> >> net->ipv6.ip6_blk_hole_entry->dst.dev = dev; >> net->ipv6.ip6_blk_hole_entry->rt6i_idev = >> in6_dev_get(dev); >> #endif >> -@@ -3696,6 +3735,17 @@ static int __net_init ip6_route_net_init >> +@@ -3698,6 +3737,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); >> @@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <j...@openwrt.org> >> #endif >> net->ipv6.sysctl.flush_delay = 0; >> -@@ -3714,6 +3764,8 @@ out: >> +@@ -3716,6 +3766,8 @@ out: >> return ret; >> #ifdef CONFIG_IPV6_MULTIPLE_TABLES >> @@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <j...@openwrt.org> >> out_ip6_prohibit_entry: >> kfree(net->ipv6.ip6_prohibit_entry); >> out_ip6_null_entry: >> -@@ -3731,6 +3783,7 @@ static void __net_exit ip6_route_net_exi >> +@@ -3733,6 +3785,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); >> @@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <j...@openwrt.org> >> #endif >> dst_entries_destroy(&net->ipv6.ip6_dst_ops); >> } >> -@@ -3828,6 +3881,9 @@ int __init ip6_route_init(void) >> +@@ -3830,6 +3883,9 @@ int __init ip6_route_init(void) >> 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/patches-4.9/810-pci_disable_common_quirks.patch >> b/target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch >> index 99ffb5e..cb9fa19 100644 >> --- a/target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch >> +++ b/target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch >> @@ -23,7 +23,7 @@ >> /* The Mellanox Tavor device gives false positive parity errors >> * Mark this device with a broken_parity_status, to allow >> * PCI scanning code to "skip" this now blacklisted device. >> -@@ -3016,6 +3017,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I >> +@@ -3038,6 +3039,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I >> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, >> quirk_intel_mc_errata); >> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, >> quirk_intel_mc_errata); >> @@ -31,7 +31,7 @@ >> /* >> * Ivytown NTB BAR sizes are misreported by the hardware due to an >> erratum. To >> -@@ -3072,6 +3074,8 @@ static void fixup_debug_report(struct pc >> +@@ -3094,6 +3096,8 @@ static void fixup_debug_report(struct pc >> } >> } >> @@ -40,7 +40,7 @@ >> /* >> * Some BIOS implementations leave the Intel GPU interrupts enabled, >> * even though no one is handling them (f.e. i915 driver is never >> loaded). >> -@@ -3106,6 +3110,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN >> +@@ -3128,6 +3132,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN >> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); >> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); >> diff --git a/target/linux/generic/patches-4.9/904-debloat_dma_buf.patch >> b/target/linux/generic/patches-4.9/904-debloat_dma_buf.patch >> index 91a3870..25c9851 100644 >> --- a/target/linux/generic/patches-4.9/904-debloat_dma_buf.patch >> +++ b/target/linux/generic/patches-4.9/904-debloat_dma_buf.patch >> @@ -32,7 +32,7 @@ >> #include <uapi/linux/dma-buf.h> >> -@@ -974,4 +975,5 @@ static void __exit dma_buf_deinit(void) >> +@@ -977,4 +978,5 @@ static void __exit dma_buf_deinit(void) >> { >> dma_buf_uninit_debugfs(); >> } >> diff --git >> a/target/linux/imx6/patches-4.9/0003-mmc-sdhci-esdhc-imx-increase-the-pad-I-O-drive-stren.patch >> b/target/linux/imx6/patches-4.9/0003-mmc-sdhci-esdhc-imx-increase-the-pad-I-O-drive-stren.patch >> deleted file mode 100644 >> index f97e829..0000000 >> --- >> a/target/linux/imx6/patches-4.9/0003-mmc-sdhci-esdhc-imx-increase-the-pad-I-O-drive-stren.patch >> +++ /dev/null >> @@ -1,42 +0,0 @@ >> -From 9f327845358d3dd0d8a5a7a5436b0aa5c432e757 Mon Sep 17 00:00:00 2001 >> -From: Haibo Chen <haibo.c...@nxp.com> >> -Date: Wed, 19 Apr 2017 10:53:51 +0800 >> -Subject: [PATCH] mmc: sdhci-esdhc-imx: increase the pad I/O drive >> strength for >> - DDR50 card >> - >> -Currently for DDR50 card, it need tuning in default. We meet tuning fail >> -issue for DDR50 card and some data CRC error when DDR50 sd card works. >> - >> -This is because the default pad I/O drive strength can't make sure DDR50 >> -card work stable. So increase the pad I/O drive strength for DDR50 card, >> -and use pins_100mhz. >> - >> -This fixes DDR50 card support for IMX since DDR50 tuning was enabled from >> -commit 9faac7b95ea4 ("mmc: sdhci: enable tuning for DDR50") >> - >> -Tested-and-reported-by: Tim Harvey <thar...@gateworks.com> >> -Signed-off-by: Haibo Chen <haibo.c...@nxp.com> >> -Cc: sta...@vger.kernel.org # v4.4+ >> -Acked-by: Dong Aisheng <aisheng.d...@nxp.com> >> -Acked-by: Adrian Hunter <adrian.hun...@intel.com> >> -Signed-off-by: Ulf Hansson <ulf.hans...@linaro.org> >> -Signed-off-by: Tim Harvey <thar...@gateworks.com> >> ---- >> - drivers/mmc/host/sdhci-esdhc-imx.c | 1 + >> - 1 file changed, 1 insertion(+) >> - >> -diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c >> b/drivers/mmc/host/sdhci-esdhc-imx.c >> -index 7123ef9..445fc47 100644 >> ---- a/drivers/mmc/host/sdhci-esdhc-imx.c >> -+++ b/drivers/mmc/host/sdhci-esdhc-imx.c >> -@@ -830,6 +830,7 @@ static int esdhc_change_pinstate(struct sdhci_host >> *host, >> - >> - switch (uhs) { >> - case MMC_TIMING_UHS_SDR50: >> -+ case MMC_TIMING_UHS_DDR50: >> - pinctrl = imx_data->pins_100mhz; >> - break; >> - case MMC_TIMING_UHS_SDR104: >> --- >> -2.7.4 >> - >> diff --git >> a/target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch >> b/target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch >> index 40656d1..c6a0470 100644 >> --- >> a/target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch >> +++ >> b/target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch >> @@ -45,7 +45,7 @@ Signed-off-by: Ajay Kishore <aki...@codeaurora.org> >> + } >> --- a/drivers/firmware/qcom_scm-64.c >> +++ b/drivers/firmware/qcom_scm-64.c >> -@@ -358,3 +358,12 @@ int __qcom_scm_pas_mss_reset(struct devi >> +@@ -365,3 +365,12 @@ int __qcom_scm_pas_mss_reset(struct devi >> return ret ? : res.a1; >> } >> diff --git >> a/target/linux/lantiq/patches-4.9/0008-MIPS-lantiq-backport-old-timer-code.patch >> b/target/linux/lantiq/patches-4.9/0008-MIPS-lantiq-backport-old-timer-code.patch >> index 5525503..f36a79a 100644 >> --- >> a/target/linux/lantiq/patches-4.9/0008-MIPS-lantiq-backport-old-timer-code.patch >> +++ >> b/target/linux/lantiq/patches-4.9/0008-MIPS-lantiq-backport-old-timer-code.patch >> @@ -176,7 +176,7 @@ Signed-off-by: John Crispin <blo...@openwrt.org> >> -obj-y := prom.o sysctrl.o clk.o reset.o dma.o gptu.o dcdc.o >> +obj-y := prom.o sysctrl.o clk.o reset.o dma.o timer.o dcdc.o >> - obj-y += vmmc.o tffs.o >> + obj-y += vmmc.o >> --- /dev/null >> +++ b/arch/mips/lantiq/xway/timer.c >> diff --git >> a/target/linux/lantiq/patches-4.9/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch >> b/target/linux/lantiq/patches-4.9/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch >> index d79b401..d875c55 100644 >> --- >> a/target/linux/lantiq/patches-4.9/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch >> +++ >> b/target/linux/lantiq/patches-4.9/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch >> @@ -29,7 +29,7 @@ Signed-off-by: John Crispin <blo...@openwrt.org> >> +++ b/arch/mips/lantiq/xway/Makefile >> @@ -2,4 +2,7 @@ obj-y := prom.o sysctrl.o clk.o reset.o >> - obj-y += vmmc.o tffs.o >> + obj-y += vmmc.o >> +obj-y += eth_mac.o >> +obj-$(CONFIG_PCI) += ath5k_eep.o >> diff --git >> a/target/linux/mediatek/patches-4.9/00013-soc-mediatek-Add-MT2701-power-dt-bindings.patch >> b/target/linux/mediatek/patches-4.9/00013-soc-mediatek-Add-MT2701-power-dt-bindings.patch >> index 28b3d7f..ce38640 100644 >> --- >> a/target/linux/mediatek/patches-4.9/00013-soc-mediatek-Add-MT2701-power-dt-bindings.patch >> +++ >> b/target/linux/mediatek/patches-4.9/00013-soc-mediatek-Add-MT2701-power-dt-bindings.patch >> @@ -16,10 +16,8 @@ Signed-off-by: Matthias Brugger >> <matthias....@gmail.com> >> 2 files changed, 35 insertions(+), 5 deletions(-) >> create mode 100644 include/dt-bindings/power/mt2701-power.h >> -Index: >> linux-4.9.14/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt >> -=================================================================== >> ---- >> linux-4.9.14.orig/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt >> -+++ >> linux-4.9.14/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt >> +--- a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt >> ++++ b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt >> @@ -9,17 +9,20 @@ domain control. >> The driver implements the Generic PM domain bindings described in >> @@ -46,10 +44,8 @@ Index: >> linux-4.9.14/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt >> Optional properties: >> - vdec-supply: Power supply for the vdec power domain >> -Index: linux-4.9.14/include/dt-bindings/power/mt2701-power.h >> -=================================================================== >> --- /dev/null >> -+++ linux-4.9.14/include/dt-bindings/power/mt2701-power.h >> ++++ b/include/dt-bindings/power/mt2701-power.h >> @@ -0,0 +1,26 @@ >> +/* >> + * Copyright (C) 2015 MediaTek Inc. >> diff --git >> a/target/linux/mediatek/patches-4.9/0014-soc-mediatek-Refine-scpsys-to-support-multiple-platf.patch >> b/target/linux/mediatek/patches-4.9/0014-soc-mediatek-Refine-scpsys-to-support-multiple-platf.patch >> index 4c9e790..0786e52 100644 >> --- >> a/target/linux/mediatek/patches-4.9/0014-soc-mediatek-Refine-scpsys-to-support-multiple-platf.patch >> +++ >> b/target/linux/mediatek/patches-4.9/0014-soc-mediatek-Refine-scpsys-to-support-multiple-platf.patch >> @@ -12,8 +12,6 @@ Signed-off-by: Matthias Brugger <matthias....@gmail.com> >> drivers/soc/mediatek/mtk-scpsys.c | 348 >> +++++++++++++++++++++++--------------- >> 1 file changed, 210 insertions(+), 138 deletions(-) >> -diff --git a/drivers/soc/mediatek/mtk-scpsys.c >> b/drivers/soc/mediatek/mtk-scpsys.c >> -index 837effe19907..722aac80e611 100644 >> --- a/drivers/soc/mediatek/mtk-scpsys.c >> +++ b/drivers/soc/mediatek/mtk-scpsys.c >> @@ -11,17 +11,15 @@ >> @@ -181,7 +179,7 @@ index 837effe19907..722aac80e611 100644 >> struct genpd_onecell_data pd_data; >> struct device *dev; >> void __iomem *base; >> -@@ -408,57 +324,55 @@ static bool scpsys_active_wakeup(struct device >> *dev) >> +@@ -408,57 +324,55 @@ static bool scpsys_active_wakeup(struct >> return scpd->data->active_wakeup; >> } >> @@ -262,7 +260,7 @@ index 837effe19907..722aac80e611 100644 >> struct scp_domain *scpd = &scp->domains[i]; >> const struct scp_domain_data *data = &scp_domain_data[i]; >> -@@ -467,13 +381,15 @@ static int scpsys_probe(struct platform_device >> *pdev) >> +@@ -467,13 +381,15 @@ static int scpsys_probe(struct platform_ >> if (PTR_ERR(scpd->supply) == -ENODEV) >> scpd->supply = NULL; >> else >> @@ -273,15 +271,15 @@ index 837effe19907..722aac80e611 100644 >> - pd_data->num_domains = NUM_DOMAINS; >> + pd_data->num_domains = num; >> ++ >> ++ init_clks(pdev, clk); >> - for (i = 0; i < NUM_DOMAINS; i++) { >> -+ init_clks(pdev, clk); >> -+ >> + for (i = 0; i < num; i++) { >> struct scp_domain *scpd = &scp->domains[i]; >> struct generic_pm_domain *genpd = &scpd->genpd; >> const struct scp_domain_data *data = &scp_domain_data[i]; >> -@@ -482,13 +398,37 @@ static int scpsys_probe(struct platform_device >> *pdev) >> +@@ -482,13 +398,37 @@ static int scpsys_probe(struct platform_ >> scpd->scp = scp; >> scpd->data = data; >> @@ -321,7 +319,7 @@ index 837effe19907..722aac80e611 100644 >> /* >> * Initially turn on all domains to make the domains >> usable >> -@@ -507,6 +447,123 @@ static int scpsys_probe(struct platform_device >> *pdev) >> +@@ -507,6 +447,123 @@ static int scpsys_probe(struct platform_ >> * valid. >> */ >> @@ -445,7 +443,7 @@ index 837effe19907..722aac80e611 100644 >> ret = >> pm_genpd_add_subdomain(pd_data->domains[MT8173_POWER_DOMAIN_MFG_ASYNC], >> pd_data->domains[MT8173_POWER_DOMAIN_MFG_2D]); >> if (ret && IS_ENABLED(CONFIG_PM)) >> -@@ -517,21 +574,36 @@ static int scpsys_probe(struct platform_device >> *pdev) >> +@@ -517,21 +574,36 @@ static int scpsys_probe(struct platform_ >> if (ret && IS_ENABLED(CONFIG_PM)) >> dev_err(&pdev->dev, "Failed to add subdomain: %d\n", ret); >> @@ -486,6 +484,3 @@ index 837effe19907..722aac80e611 100644 >> static struct platform_driver scpsys_drv = { >> .probe = scpsys_probe, >> .driver = { >> --- >> -2.11.0 >> - >> diff --git >> a/target/linux/mediatek/patches-4.9/0015-soc-mediatek-Add-MT2701-scpsys-driver.patch >> b/target/linux/mediatek/patches-4.9/0015-soc-mediatek-Add-MT2701-scpsys-driver.patch >> index c56a8a9..5147149 100644 >> --- >> a/target/linux/mediatek/patches-4.9/0015-soc-mediatek-Add-MT2701-scpsys-driver.patch >> +++ >> b/target/linux/mediatek/patches-4.9/0015-soc-mediatek-Add-MT2701-scpsys-driver.patch >> @@ -17,10 +17,8 @@ Signed-off-by: Matthias Brugger >> <matthias....@gmail.com> >> drivers/soc/mediatek/mtk-scpsys.c | 117 >> +++++++++++++++++++++++++++++++++++++- >> 2 files changed, 117 insertions(+), 2 deletions(-) >> -Index: linux-4.9.14/drivers/soc/mediatek/Kconfig >> -=================================================================== >> ---- linux-4.9.14.orig/drivers/soc/mediatek/Kconfig >> -+++ linux-4.9.14/drivers/soc/mediatek/Kconfig >> +--- a/drivers/soc/mediatek/Kconfig >> ++++ b/drivers/soc/mediatek/Kconfig >> @@ -23,7 +23,7 @@ config MTK_PMIC_WRAP >> config MTK_SCPSYS >> bool "MediaTek SCPSYS Support" >> @@ -30,10 +28,8 @@ Index: linux-4.9.14/drivers/soc/mediatek/Kconfig >> select REGMAP >> select MTK_INFRACFG >> select PM_GENERIC_DOMAINS if PM >> -Index: linux-4.9.14/drivers/soc/mediatek/mtk-scpsys.c >> -=================================================================== >> ---- linux-4.9.14.orig/drivers/soc/mediatek/mtk-scpsys.c >> -+++ linux-4.9.14/drivers/soc/mediatek/mtk-scpsys.c >> +--- a/drivers/soc/mediatek/mtk-scpsys.c >> ++++ b/drivers/soc/mediatek/mtk-scpsys.c >> @@ -20,6 +20,7 @@ >> #include <linux/regulator/consumer.h> >> #include <linux/soc/mediatek/infracfg.h> >> diff --git >> a/target/linux/mediatek/patches-4.9/0071-pwm-add-pwm-mediatek.patch >> b/target/linux/mediatek/patches-4.9/0071-pwm-add-pwm-mediatek.patch >> index cf604f4..19be772 100644 >> --- a/target/linux/mediatek/patches-4.9/0071-pwm-add-pwm-mediatek.patch >> +++ b/target/linux/mediatek/patches-4.9/0071-pwm-add-pwm-mediatek.patch >> @@ -13,10 +13,8 @@ Signed-off-by: John Crispin <j...@phrozen.org> >> 5 files changed, 279 insertions(+) >> create mode 100644 drivers/pwm/pwm-mediatek.c >> -Index: linux-4.9.17/drivers/pwm/Kconfig >> -=================================================================== >> ---- linux-4.9.17.orig/drivers/pwm/Kconfig >> -+++ linux-4.9.17/drivers/pwm/Kconfig >> +--- a/drivers/pwm/Kconfig >> ++++ b/drivers/pwm/Kconfig >> @@ -282,6 +282,15 @@ config PWM_MTK_DISP >> To compile this driver as a module, choose M here: the module >> will be called pwm-mtk-disp. >> @@ -33,10 +31,8 @@ Index: linux-4.9.17/drivers/pwm/Kconfig >> config PWM_MXS >> tristate "Freescale MXS PWM support" >> depends on ARCH_MXS && OF >> -Index: linux-4.9.17/drivers/pwm/Makefile >> -=================================================================== >> ---- linux-4.9.17.orig/drivers/pwm/Makefile >> -+++ linux-4.9.17/drivers/pwm/Makefile >> +--- a/drivers/pwm/Makefile >> ++++ b/drivers/pwm/Makefile >> @@ -25,6 +25,7 @@ obj-$(CONFIG_PWM_LPSS) += pwm-lpss.o >> obj-$(CONFIG_PWM_LPSS_PCI) += pwm-lpss-pci.o >> obj-$(CONFIG_PWM_LPSS_PLATFORM) += pwm-lpss-platform.o >> @@ -45,10 +41,8 @@ Index: linux-4.9.17/drivers/pwm/Makefile >> obj-$(CONFIG_PWM_MTK_DISP) += pwm-mtk-disp.o >> obj-$(CONFIG_PWM_MXS) += pwm-mxs.o >> obj-$(CONFIG_PWM_OMAP_DMTIMER) += pwm-omap-dmtimer.o >> -Index: linux-4.9.17/drivers/pwm/pwm-mediatek.c >> -=================================================================== >> --- /dev/null >> -+++ linux-4.9.17/drivers/pwm/pwm-mediatek.c >> ++++ b/drivers/pwm/pwm-mediatek.c >> @@ -0,0 +1,230 @@ >> +/* >> + * Mediatek Pulse Width Modulator driver >> diff --git a/target/linux/mediatek/patches-4.9/0083-mfd-led3.patch >> b/target/linux/mediatek/patches-4.9/0083-mfd-led3.patch >> index a72da69..f743e10 100644 >> --- a/target/linux/mediatek/patches-4.9/0083-mfd-led3.patch >> +++ b/target/linux/mediatek/patches-4.9/0083-mfd-led3.patch >> @@ -26,11 +26,9 @@ Signed-off-by: Sean Wang <sean.w...@mediatek.com> >> drivers/mfd/mt6397-core.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> -diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c >> -index e14d8b0..8e601c8 100644 >> --- a/drivers/mfd/mt6397-core.c >> +++ b/drivers/mfd/mt6397-core.c >> -@@ -48,6 +48,10 @@ >> +@@ -48,6 +48,10 @@ static const struct mfd_cell mt6323_devs >> .name = "mt6323-regulator", >> .of_compatible = "mediatek,mt6323-regulator" >> }, >> diff --git a/target/linux/mediatek/patches-4.9/0085-pmic-led0.patch >> b/target/linux/mediatek/patches-4.9/0085-pmic-led0.patch >> index 96662dd..dee31cd 100644 >> --- a/target/linux/mediatek/patches-4.9/0085-pmic-led0.patch >> +++ b/target/linux/mediatek/patches-4.9/0085-pmic-led0.patch >> @@ -26,9 +26,6 @@ Signed-off-by: Sean Wang <sean.w...@mediatek.com> >> 1 file changed, 60 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/leds/leds-mt6323.txt >> -diff --git a/Documentation/devicetree/bindings/leds/leds-mt6323.txt >> b/Documentation/devicetree/bindings/leds/leds-mt6323.txt >> -new file mode 100644 >> -index 0000000..ac38472 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/leds/leds-mt6323.txt >> @@ -0,0 +1,60 @@ >> diff --git a/target/linux/mediatek/patches-4.9/0086-pmic-led1.patch >> b/target/linux/mediatek/patches-4.9/0086-pmic-led1.patch >> index 215b1b0..2edb4ba 100644 >> --- a/target/linux/mediatek/patches-4.9/0086-pmic-led1.patch >> +++ b/target/linux/mediatek/patches-4.9/0086-pmic-led1.patch >> @@ -26,11 +26,9 @@ Signed-off-by: Sean Wang <sean.w...@mediatek.com> >> Documentation/devicetree/bindings/mfd/mt6397.txt | 1 + >> 1 file changed, 1 insertion(+) >> -diff --git a/Documentation/devicetree/bindings/mfd/mt6397.txt >> b/Documentation/devicetree/bindings/mfd/mt6397.txt >> -index c568d52..522a3bb 100644 >> --- a/Documentation/devicetree/bindings/mfd/mt6397.txt >> +++ b/Documentation/devicetree/bindings/mfd/mt6397.txt >> -@@ -6,6 +6,7 @@ MT6397/MT6323 is a multifunction device with the >> following sub modules: >> +@@ -6,6 +6,7 @@ MT6397/MT6323 is a multifunction device >> - Audio codec >> - GPIO >> - Clock >> diff --git a/target/linux/mediatek/patches-4.9/0087-pmic-led2.patch >> b/target/linux/mediatek/patches-4.9/0087-pmic-led2.patch >> index f3bc921..f0d706c 100644 >> --- a/target/linux/mediatek/patches-4.9/0087-pmic-led2.patch >> +++ b/target/linux/mediatek/patches-4.9/0087-pmic-led2.patch >> @@ -30,10 +30,8 @@ Reviewed-by: Jacek Anaszewski >> <jacek.anaszew...@gmail.com> >> 3 files changed, 511 insertions(+) >> create mode 100644 drivers/leds/leds-mt6323.c >> -Index: linux-4.9.17/drivers/leds/Kconfig >> -=================================================================== >> ---- linux-4.9.17.orig/drivers/leds/Kconfig >> -+++ linux-4.9.17/drivers/leds/Kconfig >> +--- a/drivers/leds/Kconfig >> ++++ b/drivers/leds/Kconfig >> @@ -117,6 +117,14 @@ config LEDS_MIKROTIK_RB532 >> This option enables support for the so called "User LED" of >> Mikrotik's Routerboard 532. >> @@ -49,10 +47,8 @@ Index: linux-4.9.17/drivers/leds/Kconfig >> config LEDS_S3C24XX >> tristate "LED Support for Samsung S3C24XX GPIO LEDs" >> depends on LEDS_CLASS >> -Index: linux-4.9.17/drivers/leds/leds-mt6323.c >> -=================================================================== >> --- /dev/null >> -+++ linux-4.9.17/drivers/leds/leds-mt6323.c >> ++++ b/drivers/leds/leds-mt6323.c >> @@ -0,0 +1,502 @@ >> +/* >> + * LED driver for Mediatek MT6323 PMIC >> diff --git a/target/linux/mediatek/patches-4.9/0088-pmic-led3.patch >> b/target/linux/mediatek/patches-4.9/0088-pmic-led3.patch >> index 701dcec..888218b 100644 >> --- a/target/linux/mediatek/patches-4.9/0088-pmic-led3.patch >> +++ b/target/linux/mediatek/patches-4.9/0088-pmic-led3.patch >> @@ -28,11 +28,9 @@ Acked-by: Lee Jones <lee.jo...@linaro.org> >> drivers/mfd/mt6397-core.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> -diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c >> -index 8e601c8..04a601f 100644 >> --- a/drivers/mfd/mt6397-core.c >> +++ b/drivers/mfd/mt6397-core.c >> -@@ -47,8 +47,7 @@ >> +@@ -47,8 +47,7 @@ static const struct mfd_cell mt6323_devs >> { >> .name = "mt6323-regulator", >> .of_compatible = "mediatek,mt6323-regulator" >> diff --git a/target/linux/mediatek/patches-4.9/0091-dsa1.patch >> b/target/linux/mediatek/patches-4.9/0091-dsa1.patch >> index c9bad93..ffc63dc 100644 >> --- a/target/linux/mediatek/patches-4.9/0091-dsa1.patch >> +++ b/target/linux/mediatek/patches-4.9/0091-dsa1.patch >> @@ -27,9 +27,6 @@ Acked-by: Rob Herring <r...@kernel.org> >> 1 file changed, 92 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/net/dsa/mt7530.txt >> -diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt >> b/Documentation/devicetree/bindings/net/dsa/mt7530.txt >> -new file mode 100644 >> -index 0000000..a9bc27b >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt >> @@ -0,0 +1,92 @@ >> diff --git >> a/target/linux/mediatek/patches-4.9/0091-net-next-mediatek-fix-DQL-support.patch >> b/target/linux/mediatek/patches-4.9/0091-net-next-mediatek-fix-DQL-support.patch >> index 5ae90e3..6e65d27 100644 >> --- >> a/target/linux/mediatek/patches-4.9/0091-net-next-mediatek-fix-DQL-support.patch >> +++ >> b/target/linux/mediatek/patches-4.9/0091-net-next-mediatek-fix-DQL-support.patch >> @@ -16,10 +16,8 @@ Signed-off-by: John Crispin <j...@phrozen.org> >> drivers/net/ethernet/mediatek/mtk_eth_soc.c | 33 >> ++++++++++++++++----------- >> 1 file changed, 20 insertions(+), 13 deletions(-) >> -Index: linux-4.9.14/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> -=================================================================== >> ---- linux-4.9.14.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> -+++ linux-4.9.14/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> +--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> ++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> @@ -706,7 +706,16 @@ static int mtk_tx_map(struct sk_buff *sk >> WRITE_ONCE(itxd->txd3, (TX_DMA_SWC | >> TX_DMA_PLEN0(skb_headlen(skb)) | >> (!nr_frags * TX_DMA_LS0))); >> diff --git a/target/linux/mediatek/patches-4.9/0092-dsa2.patch >> b/target/linux/mediatek/patches-4.9/0092-dsa2.patch >> index 84e5cb4..a5b4242 100644 >> --- a/target/linux/mediatek/patches-4.9/0092-dsa2.patch >> +++ b/target/linux/mediatek/patches-4.9/0092-dsa2.patch >> @@ -36,11 +36,9 @@ Reviewed-by: Florian Fainelli <f.faine...@gmail.com> >> 6 files changed, 127 insertions(+) >> create mode 100644 net/dsa/tag_mtk.c >> -diff --git a/include/net/dsa.h b/include/net/dsa.h >> -index 4e13e69..3276547 100644 >> --- a/include/net/dsa.h >> +++ b/include/net/dsa.h >> -@@ -31,6 +31,7 @@ enum dsa_tag_protocol { >> +@@ -27,6 +27,7 @@ enum dsa_tag_protocol { >> DSA_TAG_PROTO_EDSA, >> DSA_TAG_PROTO_BRCM, >> DSA_TAG_PROTO_QCA, >> @@ -48,31 +46,25 @@ index 4e13e69..3276547 100644 >> DSA_TAG_LAST, /* MUST BE LAST */ >> }; >> -diff --git a/net/dsa/Kconfig b/net/dsa/Kconfig >> -index 9649238..d78789b 100644 >> --- a/net/dsa/Kconfig >> +++ b/net/dsa/Kconfig >> -@@ -31,4 +31,6 @@ config NET_DSA_TAG_TRAILER >> +@@ -41,4 +41,6 @@ config NET_DSA_TAG_TRAILER >> config NET_DSA_TAG_QCA >> bool >> +config NET_DSA_TAG_MTK >> + bool >> endif >> -diff --git a/net/dsa/Makefile b/net/dsa/Makefile >> -index 31d3437..9b1d478 100644 >> --- a/net/dsa/Makefile >> +++ b/net/dsa/Makefile >> -@@ -8,3 +8,4 @@ dsa_core-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o >> +@@ -8,3 +8,4 @@ dsa_core-$(CONFIG_NET_DSA_TAG_DSA) += ta >> dsa_core-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o >> dsa_core-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o >> dsa_core-$(CONFIG_NET_DSA_TAG_QCA) += tag_qca.o >> +dsa_core-$(CONFIG_NET_DSA_TAG_MTK) += tag_mtk.o >> -diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c >> -index b6d4f6a..617f736 100644 >> --- a/net/dsa/dsa.c >> +++ b/net/dsa/dsa.c >> -@@ -53,6 +53,9 @@ static struct sk_buff *dsa_slave_notag_xmit(struct >> sk_buff *skb, >> +@@ -57,6 +57,9 @@ const struct dsa_device_ops *dsa_device_ >> #ifdef CONFIG_NET_DSA_TAG_QCA >> [DSA_TAG_PROTO_QCA] = &qca_netdev_ops, >> #endif >> @@ -82,11 +74,9 @@ index b6d4f6a..617f736 100644 >> [DSA_TAG_PROTO_NONE] = &none_ops, >> }; >> -diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h >> -index 0706a51..2a31399 100644 >> --- a/net/dsa/dsa_priv.h >> +++ b/net/dsa/dsa_priv.h >> -@@ -85,4 +85,7 @@ int dsa_slave_create(struct dsa_switch *ds, struct >> device *parent, >> +@@ -84,4 +84,7 @@ extern const struct dsa_device_ops brcm_ >> /* tag_qca.c */ >> extern const struct dsa_device_ops qca_netdev_ops; >> @@ -94,9 +84,6 @@ index 0706a51..2a31399 100644 >> +extern const struct dsa_device_ops mtk_netdev_ops; >> + >> #endif >> -diff --git a/net/dsa/tag_mtk.c b/net/dsa/tag_mtk.c >> -new file mode 100644 >> -index 0000000..833a9d6 >> --- /dev/null >> +++ b/net/dsa/tag_mtk.c >> @@ -0,0 +1,117 @@ >> diff --git a/target/linux/mediatek/patches-4.9/0092-dsa3.patch >> b/target/linux/mediatek/patches-4.9/0092-dsa3.patch >> index 7c4dc4f..385add1 100644 >> --- a/target/linux/mediatek/patches-4.9/0092-dsa3.patch >> +++ b/target/linux/mediatek/patches-4.9/0092-dsa3.patch >> @@ -33,11 +33,9 @@ Reviewed-by: Florian Fainelli <f.faine...@gmail.com> >> drivers/net/ethernet/mediatek/mtk_eth_soc.h | 4 ++++ >> 2 files changed, 10 insertions(+) >> -diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> b/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> -index 9e75768..c21ed99 100644 >> --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c >> -@@ -1846,6 +1846,12 @@ static int mtk_hw_init(struct mtk_eth *eth) >> +@@ -1855,6 +1855,12 @@ static int mtk_hw_init(struct mtk_eth *e >> /* GE2, Force 1000M/FD, FC ON */ >> mtk_w32(eth, MAC_MCR_FIXED_LINK, MTK_MAC_MCR(1)); >> @@ -50,8 +48,6 @@ index 9e75768..c21ed99 100644 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev