kernel: update kernel 4.9 to 4.9.29
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Mon, 15 May 2017 11:11:05 +0000 (13:11 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 21 May 2017 19:51:22 +0000 (21:51 +0200)
- Refresh all patches
- Removed upstreamed
- Adapted 1

Compile tested on: bcm53xx, cns3xxx, imx6, lantiq
Run tested on: cns3xxx & imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
[update from 4.9.28 to 4.9.29]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
71 files changed:
include/kernel-version.mk
target/linux/apm821xx/patches-4.9/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
target/linux/apm821xx/patches-4.9/802-usb-xhci-force-msi-renesas-xhci.patch
target/linux/arc770/patches-4.9/700-stmmac-Disable-frame-filtering-completely.patch
target/linux/archs38/patches-4.9/700-stmmac-Disable-frame-filtering-completely.patch
target/linux/bcm53xx/patches-4.9/031-ARM-BCM5301X-Add-back-handler-ignoring-external-impr.patch [deleted file]
target/linux/bcm53xx/patches-4.9/033-0013-ARM-dts-BCM5301X-Correct-GIC_PPI-interrupt-flags.patch [deleted file]
target/linux/bcm53xx/patches-4.9/089-PCI-iproc-Save-host-bridge-window-resource-in-struct.patch [deleted file]
target/linux/bcm53xx/patches-4.9/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch
target/linux/brcm2708/patches-4.9/950-0005-mm-Remove-the-PFN-busy-warning.patch
target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch
target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch [deleted file]
target/linux/generic/patches-4.9/012-usb-Make-sure-usb-phy-of-gets-built-in.patch [deleted file]
target/linux/generic/patches-4.9/031-ubifs-fix-RENAME_WHITEOUT-support.patch [deleted file]
target/linux/generic/patches-4.9/040-01-MIPS-Introduce-irq_stack.patch [deleted file]
target/linux/generic/patches-4.9/040-02-MIPS-Stack-unwinding-while-on-IRQ-stack.patch [deleted file]
target/linux/generic/patches-4.9/040-03-MIPS-Only-change-28-to-thread_info-if-coming-from-us.patch [deleted file]
target/linux/generic/patches-4.9/040-04-MIPS-Switch-to-the-irq_stack-in-interrupts.patch [deleted file]
target/linux/generic/patches-4.9/040-05-MIPS-Select-HAVE_IRQ_EXIT_ON_IRQ_STACK.patch [deleted file]
target/linux/generic/patches-4.9/040-06-MIPS-IRQ-Stack-Fix-erroneous-jal-to-plat_irq_dispatc.patch [deleted file]
target/linux/generic/patches-4.9/060-0001-mtd-bcm47xxpart-fix-parsing-first-block-after-aligne.patch [deleted file]
target/linux/generic/patches-4.9/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
target/linux/generic/patches-4.9/630-packet_socket_type.patch
target/linux/generic/patches-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
target/linux/generic/patches-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/patches-4.9/701-phy_extension.patch
target/linux/generic/patches-4.9/710-phy-add-mdio_register_board_info.patch
target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch
target/linux/generic/patches-4.9/904-debloat_dma_buf.patch
target/linux/imx6/patches-4.9/0003-mmc-sdhci-esdhc-imx-increase-the-pad-I-O-drive-stren.patch [deleted file]
target/linux/ipq806x/patches-4.9/0032-phy-add-qcom-dwc3-phy.patch
target/linux/ipq806x/patches-4.9/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch
target/linux/lantiq/patches-4.9/0008-MIPS-lantiq-backport-old-timer-code.patch
target/linux/lantiq/patches-4.9/0026-NET-multi-phy-support.patch
target/linux/lantiq/patches-4.9/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
target/linux/mediatek/patches-4.9/0001-NET-multi-phy-support.patch
target/linux/mediatek/patches-4.9/00013-soc-mediatek-Add-MT2701-power-dt-bindings.patch
target/linux/mediatek/patches-4.9/0014-soc-mediatek-Refine-scpsys-to-support-multiple-platf.patch
target/linux/mediatek/patches-4.9/0015-soc-mediatek-Add-MT2701-scpsys-driver.patch
target/linux/mediatek/patches-4.9/0071-pwm-add-pwm-mediatek.patch
target/linux/mediatek/patches-4.9/0083-mfd-led3.patch
target/linux/mediatek/patches-4.9/0085-pmic-led0.patch
target/linux/mediatek/patches-4.9/0086-pmic-led1.patch
target/linux/mediatek/patches-4.9/0087-pmic-led2.patch
target/linux/mediatek/patches-4.9/0088-pmic-led3.patch
target/linux/mediatek/patches-4.9/0091-dsa1.patch
target/linux/mediatek/patches-4.9/0091-net-next-mediatek-fix-DQL-support.patch
target/linux/mediatek/patches-4.9/0092-dsa2.patch
target/linux/mediatek/patches-4.9/0092-dsa3.patch
target/linux/mediatek/patches-4.9/0092-dsa4.patch
target/linux/mediatek/patches-4.9/0092-dsa5.patch
target/linux/mediatek/patches-4.9/0093-dsa-compat.patch
target/linux/mediatek/patches-4.9/0094-net-affinity.patch
target/linux/mediatek/patches-4.9/0095-ephy.patch
target/linux/mediatek/patches-4.9/0096-dsa-multi-cpu.patch
target/linux/mediatek/patches-4.9/0097-dsa-mt7530.patch
target/linux/mpc85xx/patches-4.9/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch
target/linux/mpc85xx/patches-4.9/100-powerpc-85xx-tl-wdr4900-v1-support.patch
target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch
target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch
target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch
target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch
target/linux/mvebu/patches-4.9/405-net-phy-allow-EEE-with-SGMII-interface-modes.patch
target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch
target/linux/mvebu/patches-4.9/413-phy-export-phy_start_machine-for-phylink.patch
target/linux/ramips/patches-4.9/0034-NET-multi-phy-support.patch
target/linux/ramips/patches-4.9/200-rt3883-fix-pinctrl-typo.patch [deleted file]
target/linux/x86/patches-4.9/800-hwmon-w83627ehf-dont-claim-nct677x.patch

index 680f471c64389f4fedb4753aafba7a06ddff4e40..b6af2cb590b528cf919d0f901de209f5f304b5ca 100644 (file)
@@ -4,11 +4,11 @@ LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .43
 LINUX_VERSION-4.4 = .69
-LINUX_VERSION-4.9 = .20
+LINUX_VERSION-4.9 = .29
 
 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
 LINUX_KERNEL_HASH-4.4.69 = 207bbc50aaf827d667a2762312bd6127887cc669ff7a7270b876e7102b8f84fa
-LINUX_KERNEL_HASH-4.9.20 = 48660806dd32fb8dcbcf5932291bf6cc7d29240070372230871e0f56fea81341
+LINUX_KERNEL_HASH-4.9.29 = 51b6df767544e593e3161b0109a6a76be18bfc9d6cc1fb7fa92b48de6cff24cf
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
index be5cb838aae4f2988c91eedb259db387fef0162c..e25e15bbbb43876979909f9708d102d60fad4685 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -221,6 +223,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -224,6 +226,458 @@ static void xhci_pme_acpi_rtd3_enable(st
  static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
  #endif /* CONFIG_ACPI */
  
@@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  /* called during probe() after chip reset completes */
  static int xhci_pci_setup(struct usb_hcd *hcd)
  {
-@@ -260,6 +714,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -263,6 +717,22 @@ static int xhci_pci_probe(struct pci_dev
        struct hc_driver *driver;
        struct usb_hcd *hcd;
  
@@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
        driver = (struct hc_driver *)id->driver_data;
  
        /* Prevent runtime suspending between USB-2 and USB-3 initialization */
-@@ -317,6 +787,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -320,6 +790,16 @@ static void xhci_pci_remove(struct pci_d
  {
        struct xhci_hcd *xhci;
  
index a201d791044d85f5cacb75262318bf6007e40af6..66699a83f297c84b3ccd224d05f71021ede13c72 100644 (file)
@@ -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 {
+@@ -1678,6 +1678,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 */
index cd66de82b257516eb7df256803300efc8f4001c4..58094ae96d86042ca735cc2b5be0d7d6a3aa99dc 100644 (file)
@@ -20,8 +20,8 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/common.h
 +++ b/drivers/net/ethernet/stmicro/stmmac/common.h
-@@ -42,7 +42,7 @@
- #define       DWMAC_CORE_3_50 0x35
+@@ -49,7 +49,7 @@
+ #define STMMAC_GET_ENTRY(x, size)     ((x + 1) & (size - 1))
  
  #undef FRAME_FILTER_DEBUG
 -/* #define FRAME_FILTER_DEBUG */
index cd66de82b257516eb7df256803300efc8f4001c4..58094ae96d86042ca735cc2b5be0d7d6a3aa99dc 100644 (file)
@@ -20,8 +20,8 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/common.h
 +++ b/drivers/net/ethernet/stmicro/stmmac/common.h
-@@ -42,7 +42,7 @@
- #define       DWMAC_CORE_3_50 0x35
+@@ -49,7 +49,7 @@
+ #define STMMAC_GET_ENTRY(x, size)     ((x + 1) & (size - 1))
  
  #undef FRAME_FILTER_DEBUG
 -/* #define FRAME_FILTER_DEBUG */
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 (file)
index a4f32f5..0000000
+++ /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?= <rafal@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 <rafal@milecki.pl>
-Signed-off-by: Florian Fainelli <f.fainelli@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 (file)
index 70df201..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From 0e34079cd1f674449749aafe4be07336177de90d Mon Sep 17 00:00:00 2001
-From: Jon Mason <jon.mason@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 <rafal@milecki.pl>
-Signed-off-by: Jon Mason <jon.mason@broadcom.com>
-Fixes: d27509f1 ("ARM: BCM5301X: add dts files for BCM4708 SoC")
-Signed-off-by: Florian Fainelli <f.fainelli@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 (file)
index 3de4395..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From 6e347b5e05ea2ac4ac467a5a1cfaebb2c7f06f80 Mon Sep 17 00:00:00 2001
-From: Bjorn Helgaas <bhelgaas@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 <zajec5@gmail.com>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-CC: stable@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);
index 9e5bd83116bb78163db5565242b0bb0dbdff55fe..7c91161302020d0ff8290cab5e0257858681d360 100644 (file)
@@ -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)
- #define XHCI_MISSING_CAS      (1 << 24)
-+#define XHCI_FAKE_DOORBELL    (1 << 25)
+@@ -1660,6 +1660,7 @@ struct xhci_hcd {
+ /* For controller with a broken Port Disable implementation */
+ #define XHCI_BROKEN_PORT_PED  (1 << 25)
+ #define XHCI_LIMIT_ENDPOINT_INTERVAL_7        (1 << 26)
++#define XHCI_FAKE_DOORBELL    (1 << 27)
        unsigned int            num_active_eps;
        unsigned int            limit_active_eps;
-       /* There are two roothubs to keep track of bus suspend info for */
index c7023906df69df0c973e00f5d49092d036f9b722..3245269c3e6b8f26595fec1bf871ab163f79c7b3 100644 (file)
@@ -69,7 +69,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <rafal@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();
        }
  
index b271d2606d2a5765676451ce5c1192f05c5ee7cf..c7b7e8596f45709526e1e914c16a886e6f3846ab 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -7323,8 +7323,6 @@ int alloc_contig_range(unsigned long sta
+@@ -7324,8 +7324,6 @@ int alloc_contig_range(unsigned long sta
  
        /* Make sure the range is really isolated. */
        if (test_pages_isolated(outer_start, end, false)) {
index 0610d038b6b439de97391a4b215184e5bcb32cb4..b311876bdb4554cc59645f6778eabc3afc3a8ff7 100644 (file)
@@ -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
-@@ -5009,7 +5009,7 @@ static void port_event(struct usb_hub *h
+@@ -5025,7 +5025,7 @@ static void port_event(struct usb_hub *h
        if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
                u16 status = 0, unused;
  
index ff6084fe6a8a202d38defaf6c101285b6c92c61f..cbae56b4bb07d876903f42ffa0be59194045ef3f 100644 (file)
@@ -39,7 +39,7 @@ Signed-off-by: Noralf Trønnes <noralf@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
index 73c9edeea4e677581152abf64cb3d26d1e7887fe..e17a84d4f0de9db4c679decfa617f64a1d3d5db6 100644 (file)
@@ -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 (file)
index 899c75e..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-From 89b466914a0d49f08d00be25556ba22497b9a284 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@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 <noralf@tronnes.org>
-Reviewed-by: Eric Anholt <eric@anholt.net>
-Reviewed-by: Martin Sperl <kernel@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/012-usb-Make-sure-usb-phy-of-gets-built-in.patch b/target/linux/generic/patches-4.9/012-usb-Make-sure-usb-phy-of-gets-built-in.patch
deleted file mode 100644 (file)
index 2ef6643..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From 3d6159640da9c9175d1ca42f151fc1a14caded59 Mon Sep 17 00:00:00 2001
-From: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
-Date: Thu, 13 Apr 2017 15:33:34 +0300
-Subject: [PATCH] usb: Make sure usb/phy/of gets built-in
-
-DWC3 driver uses of_usb_get_phy_mode() which is
-implemented in drivers/usb/phy/of.c and in bare minimal
-configuration it might not be pulled in kernel binary.
-
-In case of ARC or ARM this could be easily reproduced with
-"allnodefconfig" +CONFIG_USB=m +CONFIG_USB_DWC3=m.
-
-On building all ends-up with:
----------------------->8------------------
-  Kernel: arch/arm/boot/Image is ready
-  Kernel: arch/arm/boot/zImage is ready
-  Building modules, stage 2.
-  MODPOST 5 modules
-ERROR: "of_usb_get_phy_mode" [drivers/usb/dwc3/dwc3.ko] undefined!
-make[1]: *** [__modpost] Error 1
-make: *** [modules] Error 2
----------------------->8------------------
-
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
-Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
-Cc: Geert Uytterhoeven <geert+renesas@glider.be>
-Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Cc: Felipe Balbi <balbi@kernel.org>
-Cc: Felix Fietkau <nbd@nbd.name>
-Cc: Jeremy Kerr <jk@ozlabs.org>
-Cc: linux-snps-arc@lists.infradead.org
-Cc: stable@vger.kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/Makefile | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/Makefile
-+++ b/drivers/Makefile
-@@ -101,6 +101,7 @@ obj-$(CONFIG_USB_PHY)              += usb/
- obj-$(CONFIG_USB)             += usb/
- obj-$(CONFIG_PCI)             += usb/
- obj-$(CONFIG_USB_GADGET)      += usb/
-+obj-$(CONFIG_OF)              += usb/
- obj-$(CONFIG_SERIO)           += input/serio/
- obj-$(CONFIG_GAMEPORT)                += input/gameport/
- obj-$(CONFIG_INPUT)           += input/
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 (file)
index 7b81afb..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Felix Fietkau <nbd@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: stable@vger.kernel.org
-Signed-off-by: Felix Fietkau <nbd@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 (file)
index 1cdbcda..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-From: Matt Redfearn <matt.redfearn@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.redfearn@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 (file)
index b2e90c8..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Matt Redfearn <matt.redfearn@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.redfearn@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 (file)
index e13c67b..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From: Matt Redfearn <matt.redfearn@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.redfearn@imgtec.com>
-Reviewed-by: Maciej W. Rozycki <macro@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 (file)
index 0c7e45b..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From: Matt Redfearn <matt.redfearn@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.redfearn@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 (file)
index a4942b8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Matt Redfearn <matt.redfearn@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.redfearn@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 (file)
index bb16bb1..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From de856416e7143e32afc4849625616554aa060f7a Mon Sep 17 00:00:00 2001
-From: Matt Redfearn <matt.redfearn@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.redfearn@imgtec.com>
-Cc: Ralf Baechle <ralf@linux-mips.org>
-Cc: Paul Burton <paul.burton@imgtec.com>
-Cc: linux-mips@linux-mips.org
-Patchwork: https://patchwork.linux-mips.org/patch/15110/
-Signed-off-by: James Hogan <james.hogan@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 (file)
index 7eed777..0000000
+++ /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?= <rafal@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 <rafal@milecki.pl>
-Signed-off-by: Brian Norris <computersforpeace@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;
-               }
index ffc1ae6272df73b5ffb3d2757cd9c387ccf588e1..22ee360127f163e94352369704e1cb8ace73e7a5 100644 (file)
@@ -75,7 +75,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -5893,7 +5893,7 @@ static void __ref alloc_node_mem_map(str
+@@ -5894,7 +5894,7 @@ static void __ref alloc_node_mem_map(str
                mem_map = NODE_DATA(0)->node_mem_map;
  #if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
                if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
index 4f093e4c5d3a72fe779cf038d602f913d89b8d70..00d78dc652ea4a16348939756ab24a8b214ffb20 100644 (file)
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3813,6 +3816,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3815,6 +3818,16 @@ packet_setsockopt(struct socket *sock, i
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        default:
                return -ENOPROTOOPT;
        }
-@@ -3865,6 +3878,13 @@ static int packet_getsockopt(struct sock
+@@ -3867,6 +3880,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
index 77ba222e5679967cd682becb52c07d09c7665ad0..a0a74077e4280016ed35b02b542f338409d21377 100644 (file)
@@ -302,7 +302,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  /**
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   *   @t: the outgoing tunnel device
-@@ -1281,6 +1421,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1283,6 +1423,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  {
        struct ip6_tnl *t = netdev_priv(dev);
        struct ipv6hdr *ipv6h = ipv6_hdr(skb);
@@ -310,7 +310,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        int encap_limit = -1;
        __u16 offset;
        struct flowi6 fl6;
-@@ -1336,6 +1477,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1338,6 +1479,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
                        fl6.flowi6_mark = skb->mark;
        }
  
@@ -329,7 +329,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
                return -1;
  
-@@ -1461,6 +1614,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1463,6 +1616,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
        t->parms.flowinfo = p->flowinfo;
        t->parms.link = p->link;
        t->parms.proto = p->proto;
@@ -344,7 +344,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        dst_cache_reset(&t->dst_cache);
        ip6_tnl_link_config(t);
        return 0;
-@@ -1499,6 +1660,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1501,6 +1662,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
        p->flowinfo = u->flowinfo;
        p->link = u->link;
        p->proto = u->proto;
@@ -352,7 +352,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1876,6 +2038,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1878,6 +2040,15 @@ static int ip6_tnl_validate(struct nlatt
        return 0;
  }
  
@@ -368,7 +368,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
                                  struct __ip6_tnl_parm *parms)
  {
-@@ -1910,6 +2081,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1912,6 +2083,46 @@ static void ip6_tnl_netlink_parms(struct
  
        if (data[IFLA_IPTUN_COLLECT_METADATA])
                parms->collect_md = true;
@@ -415,7 +415,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2019,6 +2230,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2021,6 +2232,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -428,7 +428,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        return
                /* IFLA_IPTUN_LINK */
                nla_total_size(4) +
-@@ -2046,6 +2263,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2048,6 +2265,24 @@ static size_t ip6_tnl_get_size(const str
                nla_total_size(2) +
                /* IFLA_IPTUN_COLLECT_METADATA */
                nla_total_size(0) +
@@ -453,7 +453,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
                0;
  }
  
-@@ -2053,6 +2288,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2055,6 +2290,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
        struct ip6_tnl *tunnel = netdev_priv(dev);
        struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -463,7 +463,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
        if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
            nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2061,9 +2299,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2063,9 +2301,27 @@ static int ip6_tnl_fill_info(struct sk_b
            nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
            nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
            nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
@@ -492,7 +492,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
            nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
            nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2101,6 +2357,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2103,6 +2359,7 @@ static const struct nla_policy ip6_tnl_p
        [IFLA_IPTUN_ENCAP_SPORT]        = { .type = NLA_U16 },
        [IFLA_IPTUN_ENCAP_DPORT]        = { .type = NLA_U16 },
        [IFLA_IPTUN_COLLECT_METADATA]   = { .type = NLA_FLAG },
index 7c5cb45a34571bc76478851608eb61c1694a5ad5..7e6dd493f9647bb368833aceaaf940cd36c6a800 100644 (file)
@@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__refcnt       = ATOMIC_INIT(1),
-@@ -1953,6 +1970,11 @@ static struct rt6_info *ip6_route_info_c
+@@ -1957,6 +1974,11 @@ static struct rt6_info *ip6_route_info_c
                        rt->dst.output = ip6_pkt_prohibit_out;
                        rt->dst.input = ip6_pkt_prohibit;
                        break;
@@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                case RTN_THROW:
                case RTN_UNREACHABLE:
                default:
-@@ -2594,6 +2616,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -2600,6 +2622,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 <jogo@openwrt.org>
  /*
   *    Allocate a dst for local (unicast / anycast) address.
   */
-@@ -2829,7 +2862,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -2835,7 +2868,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 <jogo@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
+@@ -3213,6 +3247,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 <jogo@openwrt.org>
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
-@@ -3480,6 +3517,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3489,6 +3526,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 <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
-@@ -3696,6 +3735,17 @@ static int __net_init ip6_route_net_init
+@@ -3711,6 +3750,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 <jogo@openwrt.org>
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
-@@ -3714,6 +3764,8 @@ out:
+@@ -3729,6 +3779,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@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
+@@ -3746,6 +3798,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 <jogo@openwrt.org>
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -3828,6 +3881,9 @@ int __init ip6_route_init(void)
+@@ -3819,6 +3872,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);
@@ -245,5 +245,5 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 +      init_net.ipv6.ip6_policy_failed_entry->rt6i_idev =
 +              in6_dev_get(init_net.loopback_dev);
    #endif
-       ret = fib6_init();
-       if (ret)
+ }
index 6c49fb49d36ea7bab97b098d2cfd9c1e2093debe..95e2c8249dbf1b1c2542f00a5ddc13d3637559ef 100644 (file)
@@ -53,7 +53,7 @@
   * @phydev: the phy_device struct
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -812,6 +812,7 @@ int phy_ethtool_ksettings_get(struct phy
+@@ -813,6 +813,7 @@ int phy_ethtool_ksettings_get(struct phy
                              struct ethtool_link_ksettings *cmd);
  int phy_ethtool_ksettings_set(struct phy_device *phydev,
                              const struct ethtool_link_ksettings *cmd);
index 32c2e32a47d84cd7981efed205566d3aad5b6f41..08c094b62983a3c283bfb613cf87f14756233006 100644 (file)
@@ -50,7 +50,7 @@
                phy_device_free(phydev);
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -855,6 +855,23 @@ void mdio_bus_exit(void);
+@@ -856,6 +856,23 @@ void mdio_bus_exit(void);
  
  extern struct bus_type mdio_bus_type;
  
index 99ffb5e3a0a37cdaacbe22e18f4f111cb3db015c..cb9fa1935beb1319906f3ada3d02f08540326ea2 100644 (file)
@@ -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);
  
index 91a3870936dfd6c08cde2b4c3fe989581c5c4f4e..25c9851c5be9340e1b39daa1a12c14b7f0e07507 100644 (file)
@@ -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 (file)
index f97e829..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From 9f327845358d3dd0d8a5a7a5436b0aa5c432e757 Mon Sep 17 00:00:00 2001
-From: Haibo Chen <haibo.chen@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 <tharvey@gateworks.com>
-Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
-Cc: stable@vger.kernel.org # v4.4+
-Acked-by: Dong Aisheng <aisheng.dong@nxp.com>
-Acked-by: Adrian Hunter <adrian.hunter@intel.com>
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Tim Harvey <tharvey@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
-
index 261836e2c32be29c3259a6884a5eb92de92bd606..a15a0d3a9cb9b74e2c35c1962c62a808cbe20229 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Andy Gross <agross@codeaurora.org>
 
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
-@@ -489,4 +489,16 @@ config PHY_NS2_PCIE
+@@ -490,4 +490,16 @@ config PHY_NS2_PCIE
        help
          Enable this to support the Broadcom Northstar2 PCIe PHY.
          If unsure, say N.
index 40656d193487de28074242936034709b7b7f8f54..c6a0470ea9c3983ae883a703a3c6bd35799d1865 100644 (file)
@@ -45,7 +45,7 @@ Signed-off-by: Ajay Kishore <akisho@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;
  }
index 55255037faa1f0f50760f13f1ccdb0dc7cb75b5c..f36a79a83be1ed5fed04bcf1d43857c4f881e3b2 100644 (file)
@@ -176,7 +176,7 @@ Signed-off-by: John Crispin <blogic@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
index a25e87a9cc025dbd26618e24d87204256e54dd77..fbd5a0436f165e535585ed56cd9b4c4f60934856 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -1000,7 +1000,8 @@ void phy_state_machine(struct work_struc
+@@ -1032,7 +1032,8 @@ void phy_state_machine(struct work_struc
                /* If the link is down, give up on negotiation for now */
                if (!phydev->link) {
                        phydev->state = PHY_NOLINK;
@@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                        phydev->adjust_link(phydev->attached_dev);
                        break;
                }
-@@ -1083,7 +1084,8 @@ void phy_state_machine(struct work_struc
+@@ -1115,7 +1116,8 @@ void phy_state_machine(struct work_struc
                        netif_carrier_on(phydev->attached_dev);
                } else {
                        phydev->state = PHY_NOLINK;
@@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                }
  
                phydev->adjust_link(phydev->attached_dev);
-@@ -1095,7 +1097,8 @@ void phy_state_machine(struct work_struc
+@@ -1127,7 +1129,8 @@ void phy_state_machine(struct work_struc
        case PHY_HALTED:
                if (phydev->link) {
                        phydev->link = 0;
index d79b4010f86177f0d45c0d58490eba72ac0218e8..d875c55fb8cd13e97776f13dadf10fb7ed8224a2 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: John Crispin <blogic@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
index 92ff5eb3ee5abbab8f394d49b1912ed6d9d2a91d..e3347be9a2a7f87a0078a2da5edc4eac8f71f2dd 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -1000,7 +1000,8 @@ void phy_state_machine(struct work_struc
+@@ -1032,7 +1032,8 @@ void phy_state_machine(struct work_struc
                /* If the link is down, give up on negotiation for now */
                if (!phydev->link) {
                        phydev->state = PHY_NOLINK;
@@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                        phydev->adjust_link(phydev->attached_dev);
                        break;
                }
-@@ -1083,7 +1084,8 @@ void phy_state_machine(struct work_struc
+@@ -1115,7 +1116,8 @@ void phy_state_machine(struct work_struc
                        netif_carrier_on(phydev->attached_dev);
                } else {
                        phydev->state = PHY_NOLINK;
@@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                }
  
                phydev->adjust_link(phydev->attached_dev);
-@@ -1095,7 +1097,8 @@ void phy_state_machine(struct work_struc
+@@ -1127,7 +1129,8 @@ void phy_state_machine(struct work_struc
        case PHY_HALTED:
                if (phydev->link) {
                        phydev->link = 0;
index 28b3d7f17c2e01886c39f1366238dfcf43c40e47..ce38640ab97e3d4f439572ac4fcea48683936ddf 100644 (file)
@@ -16,10 +16,8 @@ Signed-off-by: Matthias Brugger <matthias.bgg@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.
index 4c9e790d46292c5eb601fe9a05b9f8ce4294963f..0786e52ba648de28a26d8471b4e6be8f3c7326b3 100644 (file)
@@ -12,8 +12,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@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
-
index c56a8a974f6f24a630be467d8e37107db10bbdff..51471496a8d74bb67588b18b901f792b6c26198c 100644 (file)
@@ -17,10 +17,8 @@ Signed-off-by: Matthias Brugger <matthias.bgg@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>
index cf604f4cd04ccbde3ecf7f33bf1c8938dc212179..19be772a142424e26d18a133cf2fa3ae079b0cae 100644 (file)
@@ -13,10 +13,8 @@ Signed-off-by: John Crispin <john@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
index a72da69e00ad46bb4e6b05e8c56e983838c65ba1..f743e10243dbef2bb5084837e7ebefe1e8792a48 100644 (file)
@@ -26,11 +26,9 @@ Signed-off-by: Sean Wang <sean.wang@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"
        },
index 96662dd89441692f00b31a09ad901cdc1a69cf07..dee31cdc8b37accc3e921b45de8fd9d2205b5335 100644 (file)
@@ -26,9 +26,6 @@ Signed-off-by: Sean Wang <sean.wang@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 @@
index 215b1b0d02195a0e796e4dc3d7e1557c2c374f5a..2edb4ba23def5172175a9fa90be180960a51659e 100644 (file)
@@ -26,11 +26,9 @@ Signed-off-by: Sean Wang <sean.wang@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
index f3bc921e3d18e15aba8acbefd2adca96bc4fa485..f0d706cd44d303b99cfcc85c899075c17e8edbce 100644 (file)
@@ -30,10 +30,8 @@ Reviewed-by: Jacek Anaszewski <jacek.anaszewski@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
index 701dcec962f9e554f1c5bf4bcc17cfab60943da0..888218bbdc7ad6babd235aec199165ab622f992b 100644 (file)
@@ -28,11 +28,9 @@ Acked-by: Lee Jones <lee.jones@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"
index c9bad9362d7e47c8bf5e9022f9a70d39e6b93389..ffc63dcc7cbdb39ae7b8c1e5e8d61a415e5caec1 100644 (file)
@@ -27,9 +27,6 @@ Acked-by: Rob Herring <robh@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 @@
index 5ae90e353fb61af38de9c6c8cb1a9994dd36d258..6e65d27359ceeb641ad9248592974ef8b10cd47c 100644 (file)
@@ -16,10 +16,8 @@ Signed-off-by: John Crispin <john@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)));
index 84e5cb43f7d812415a32cf5fd93ad10995b287ef..a5b4242eb6122ec1753111b7c59cb3e88f916ead 100644 (file)
@@ -36,11 +36,9 @@ Reviewed-by: Florian Fainelli <f.fainelli@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 @@
index 7c4dc4f35c0e8293b73f773c10e0e75f612c6910..385add1e3a9983b6e452728874190903ab42b37a 100644 (file)
@@ -33,11 +33,9 @@ Reviewed-by: Florian Fainelli <f.fainelli@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
        /* Enable RX VLan Offloading */
        mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
  
-diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-index 99b1c8e..996024d 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 @@ -70,6 +70,10 @@
index d67b4a9e616751021cecbc0840ed4f74fb2ab4be..4daebfbc103b140a2d06999d1a5e549c9c471472 100644 (file)
@@ -31,11 +31,9 @@ Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
  drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 ++
  1 file changed, 2 insertions(+)
 
-diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index c21ed99..84b09a4 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -2323,6 +2323,8 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
+@@ -2333,6 +2333,8 @@ static int mtk_add_mac(struct mtk_eth *e
        eth->netdev[id]->ethtool_ops = &mtk_ethtool_ops;
  
        eth->netdev[id]->irq = eth->irq[0];
index 6c101377c30f72f7560209e9988392648404bf56..63a40d00de5da3fcca17b79b315c72176e6c42dc 100644 (file)
@@ -49,8 +49,6 @@ Signed-off-by: Landen Chao <Landen.Chao@mediatek.com>
  create mode 100644 drivers/net/dsa/mt7530.c
  create mode 100644 drivers/net/dsa/mt7530.h
 
-diff --git a/drivers/net/dsa/Kconfig b/drivers/net/dsa/Kconfig
-index 0659846..5b322b4 100644
 --- a/drivers/net/dsa/Kconfig
 +++ b/drivers/net/dsa/Kconfig
 @@ -34,4 +34,12 @@ config NET_DSA_QCA8K
@@ -66,21 +64,16 @@ index 0659846..5b322b4 100644
 +        chip.
 +
  endmenu
-diff --git a/drivers/net/dsa/Makefile b/drivers/net/dsa/Makefile
-index a3c9416..8e629c1 100644
 --- a/drivers/net/dsa/Makefile
 +++ b/drivers/net/dsa/Makefile
-@@ -2,6 +2,6 @@ obj-$(CONFIG_NET_DSA_MV88E6060) += mv88e6060.o
- obj-$(CONFIG_NET_DSA_BCM_SF2) += bcm-sf2.o
bcm-sf2-objs                  := bcm_sf2.o bcm_sf2_cfp.o
+@@ -1,6 +1,6 @@
+ obj-$(CONFIG_NET_DSA_MV88E6060) += mv88e6060.o
obj-$(CONFIG_NET_DSA_BCM_SF2) += bcm_sf2.o
  obj-$(CONFIG_NET_DSA_QCA8K)   += qca8k.o
 -
 +obj-$(CONFIG_NET_DSA_MT7530) += mt7530.o
  obj-y                         += b53/
  obj-y                         += mv88e6xxx/
-diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
-new file mode 100644
-index 0000000..ad2e6f8
 --- /dev/null
 +++ b/drivers/net/dsa/mt7530.c
 @@ -0,0 +1,1126 @@
@@ -1210,9 +1203,6 @@ index 0000000..ad2e6f8
 +MODULE_DESCRIPTION("Driver for Mediatek MT7530 Switch");
 +MODULE_LICENSE("GPL");
 +MODULE_ALIAS("platform:mediatek-mt7530");
-diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
-new file mode 100644
-index 0000000..05a612f
 --- /dev/null
 +++ b/drivers/net/dsa/mt7530.h
 @@ -0,0 +1,390 @@
index ca36d4c0d646784d43c54c460dee2b9cc6870024..f69078cb4c5c63dccbb7946d12afacaf36073add 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-4.9.17/drivers/net/dsa/mt7530.c
-===================================================================
---- linux-4.9.17.orig/drivers/net/dsa/mt7530.c
-+++ linux-4.9.17/drivers/net/dsa/mt7530.c
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
 @@ -834,6 +834,7 @@ mt7530_port_bridge_join(struct dsa_switc
        int i;
  
@@ -70,10 +68,8 @@ Index: linux-4.9.17/drivers/net/dsa/mt7530.c
  }
  
  static void
-Index: linux-4.9.17/drivers/net/dsa/mt7530.h
-===================================================================
---- linux-4.9.17.orig/drivers/net/dsa/mt7530.h
-+++ linux-4.9.17/drivers/net/dsa/mt7530.h
+--- a/drivers/net/dsa/mt7530.h
++++ b/drivers/net/dsa/mt7530.h
 @@ -379,6 +379,8 @@ struct mt7530_priv {
        struct mt7530_port      ports[MT7530_NUM_PORTS];
        /* protect among processes for registers access*/
@@ -83,10 +79,8 @@ Index: linux-4.9.17/drivers/net/dsa/mt7530.h
  };
  
  struct mt7530_hw_stats {
-Index: linux-4.9.17/net/dsa/tag_mtk.c
-===================================================================
---- linux-4.9.17.orig/net/dsa/tag_mtk.c
-+++ linux-4.9.17/net/dsa/tag_mtk.c
+--- a/net/dsa/tag_mtk.c
++++ b/net/dsa/tag_mtk.c
 @@ -35,7 +35,7 @@ static struct sk_buff *mtk_tag_xmit(stru
        /* Build the tag after the MAC Source Address */
        mtk_tag = skb->data + 2 * ETH_ALEN;
index 8e51bdd6237f9e750929b3aec29421cc83d1cb9c..0c468fbceb13c5f364157cd260ffb5a609c6f104 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-4.9.17/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-===================================================================
---- linux-4.9.17.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-+++ linux-4.9.17/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
 @@ -2459,15 +2459,23 @@ static int mtk_probe(struct platform_dev
                        goto err_deinit_hw;
        }
@@ -26,10 +24,8 @@ Index: linux-4.9.17/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  
        err = mtk_mdio_init(eth);
        if (err)
-Index: linux-4.9.17/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-===================================================================
---- linux-4.9.17.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-+++ linux-4.9.17/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 @@ -539,6 +539,7 @@ struct mtk_eth {
        struct net_device               *netdev[MTK_MAX_DEVS];
        struct mtk_mac                  *mac[MTK_MAX_DEVS];
index 52d8299077331f0577adddfca0a3b9e5505a4db7..dc88ca2ccd1246a42e87c862ba535fa07007b723 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-4.9.20/drivers/net/dsa/mt7530.c
-===================================================================
---- linux-4.9.20.orig/drivers/net/dsa/mt7530.c
-+++ linux-4.9.20/drivers/net/dsa/mt7530.c
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
 @@ -629,6 +629,11 @@ mt7530_setup(struct dsa_switch *ds)
        val = mt7530_read(priv, MT7530_MHWTRAP);
        val &= ~MHWTRAP_P6_DIS & ~MHWTRAP_PHY_ACCESS;
@@ -14,10 +12,8 @@ Index: linux-4.9.20/drivers/net/dsa/mt7530.c
        mt7530_write(priv, MT7530_MHWTRAP, val);
  
        /* Enable and reset MIB counters */
-Index: linux-4.9.20/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-===================================================================
---- linux-4.9.20.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-+++ linux-4.9.20/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
 @@ -221,6 +221,9 @@ static void mtk_phy_link_adjust(struct n
                netif_carrier_on(dev);
        else
index 2a562e1d1c0951db39ddcae787b9d7c9e588a6fa..1a74e6387e2d3d8941de12bf695397295da5f600 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-4.9.20/drivers/net/dsa/mt7530.c
-===================================================================
---- linux-4.9.20.orig/drivers/net/dsa/mt7530.c
-+++ linux-4.9.20/drivers/net/dsa/mt7530.c
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
 @@ -996,15 +996,7 @@ err:
  static enum dsa_tag_protocol
  mtk_get_tag_protocol(struct dsa_switch *ds)
@@ -19,10 +17,8 @@ Index: linux-4.9.20/drivers/net/dsa/mt7530.c
  }
  
  static struct dsa_switch_ops mt7530_switch_ops = {
-Index: linux-4.9.20/include/net/dsa.h
-===================================================================
---- linux-4.9.20.orig/include/net/dsa.h
-+++ linux-4.9.20/include/net/dsa.h
+--- a/include/net/dsa.h
++++ b/include/net/dsa.h
 @@ -145,6 +145,8 @@ struct dsa_port {
        struct device_node      *dn;
        unsigned int            ageing_time;
@@ -72,10 +68,8 @@ Index: linux-4.9.20/include/net/dsa.h
  struct switchdev_trans;
  struct switchdev_obj;
  struct switchdev_obj_port_fdb;
-Index: linux-4.9.20/net/dsa/dsa2.c
-===================================================================
---- linux-4.9.20.orig/net/dsa/dsa2.c
-+++ linux-4.9.20/net/dsa/dsa2.c
+--- a/net/dsa/dsa2.c
++++ b/net/dsa/dsa2.c
 @@ -248,8 +248,6 @@ static int dsa_cpu_port_apply(struct dev
                return err;
        }
@@ -151,10 +145,8 @@ Index: linux-4.9.20/net/dsa/dsa2.c
        }
  
        pr_info("DSA: switch %d %d parsed\n", dst->tree, ds->index);
-Index: linux-4.9.20/net/dsa/dsa_priv.h
-===================================================================
---- linux-4.9.20.orig/net/dsa/dsa_priv.h
-+++ linux-4.9.20/net/dsa/dsa_priv.h
+--- a/net/dsa/dsa_priv.h
++++ b/net/dsa/dsa_priv.h
 @@ -43,6 +43,7 @@ struct dsa_slave_priv {
        int                     old_duplex;
  
@@ -163,10 +155,8 @@ Index: linux-4.9.20/net/dsa/dsa_priv.h
  #ifdef CONFIG_NET_POLL_CONTROLLER
        struct netpoll          *netpoll;
  #endif
-Index: linux-4.9.20/net/dsa/slave.c
-===================================================================
---- linux-4.9.20.orig/net/dsa/slave.c
-+++ linux-4.9.20/net/dsa/slave.c
+--- a/net/dsa/slave.c
++++ b/net/dsa/slave.c
 @@ -61,7 +61,7 @@ static int dsa_slave_get_iflink(const st
  {
        struct dsa_slave_priv *p = netdev_priv(dev);
index 9f785ddca227061add732929857b3fc91d66262e..26eff60003889092a5cd8ee46c107d243d700ece 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-4.9.20/drivers/net/dsa/mt7530.c
-===================================================================
---- linux-4.9.20.orig/drivers/net/dsa/mt7530.c
-+++ linux-4.9.20/drivers/net/dsa/mt7530.c
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
 @@ -627,7 +627,7 @@ mt7530_setup(struct dsa_switch *ds)
  
        /* Enable Port 6 only; P5 as GMAC5 which currently is not supported */
index e65ac426dc5af03e6f4502a1009257b12a54a310..58c4be60070a9e9ea11d2bfcd2733fbcd55719bf 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/powerpc/platforms/85xx/common.c
 +++ b/arch/powerpc/platforms/85xx/common.c
-@@ -33,6 +33,7 @@ static const struct of_device_id mpc85xx_common_ids[] __initconst = {
+@@ -33,6 +33,7 @@ static const struct of_device_id mpc85xx
        { .compatible = "fsl,mpc8548-guts", },
        /* Probably unnecessary? */
        { .compatible = "gpio-leds", },
index f11f4d6e7d04d64e656332d69ba41ca9f1e97bdc..bfe8100a2fa477fa7339e4341bc9afc8ef488b98 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/arch/powerpc/boot/Makefile
 +++ b/arch/powerpc/boot/Makefile
-@@ -137,6 +137,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pseries-head.S
+@@ -137,6 +137,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
  src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
  src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
  src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
@@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  
  src-wlib := $(sort $(src-wlib-y))
  src-plat := $(sort $(src-plat-y))
-@@ -320,6 +321,7 @@ image-$(CONFIG_TQM8555)                    += cuImage.tqm8555
+@@ -320,6 +321,7 @@ image-$(CONFIG_TQM8555)                    += cuImage.tqm
  image-$(CONFIG_TQM8560)                       += cuImage.tqm8560
  image-$(CONFIG_SBC8548)                       += cuImage.sbc8548
  image-$(CONFIG_KSI8560)                       += cuImage.ksi8560
index 1f57cde97fff5566e32a89056f12f838a928be7c..268243c0fb2537376eed9114f1f1197a895bea13 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -959,6 +959,16 @@ void phy_start(struct phy_device *phydev
+@@ -991,6 +991,16 @@ void phy_start(struct phy_device *phydev
  }
  EXPORT_SYMBOL(phy_start);
  
@@ -33,7 +33,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  /**
   * phy_state_machine - Handle the state machine
   * @work: work_struct that describes the work to be done
-@@ -1000,8 +1010,7 @@ void phy_state_machine(struct work_struc
+@@ -1032,8 +1042,7 @@ void phy_state_machine(struct work_struc
                /* If the link is down, give up on negotiation for now */
                if (!phydev->link) {
                        phydev->state = PHY_NOLINK;
@@ -43,7 +43,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                        break;
                }
  
-@@ -1013,9 +1022,7 @@ void phy_state_machine(struct work_struc
+@@ -1045,9 +1054,7 @@ void phy_state_machine(struct work_struc
                /* If AN is done, we're running */
                if (err > 0) {
                        phydev->state = PHY_RUNNING;
@@ -54,7 +54,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                } else if (0 == phydev->link_timeout--)
                        needs_aneg = true;
                break;
-@@ -1040,8 +1047,7 @@ void phy_state_machine(struct work_struc
+@@ -1072,8 +1079,7 @@ void phy_state_machine(struct work_struc
                                }
                        }
                        phydev->state = PHY_RUNNING;
@@ -64,7 +64,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                }
                break;
        case PHY_FORCING:
-@@ -1051,13 +1057,12 @@ void phy_state_machine(struct work_struc
+@@ -1083,13 +1089,12 @@ void phy_state_machine(struct work_struc
  
                if (phydev->link) {
                        phydev->state = PHY_RUNNING;
@@ -80,7 +80,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                break;
        case PHY_RUNNING:
                /* Only register a CHANGE if we are polling and link changed
-@@ -1080,14 +1085,12 @@ void phy_state_machine(struct work_struc
+@@ -1112,14 +1117,12 @@ void phy_state_machine(struct work_struc
  
                if (phydev->link) {
                        phydev->state = PHY_RUNNING;
@@ -97,7 +97,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                if (phy_interrupt_is_valid(phydev))
                        err = phy_config_interrupt(phydev,
                                                   PHY_INTERRUPT_ENABLED);
-@@ -1095,8 +1098,7 @@ void phy_state_machine(struct work_struc
+@@ -1127,8 +1130,7 @@ void phy_state_machine(struct work_struc
        case PHY_HALTED:
                if (phydev->link) {
                        phydev->link = 0;
@@ -107,7 +107,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                        do_suspend = true;
                }
                break;
-@@ -1116,11 +1118,11 @@ void phy_state_machine(struct work_struc
+@@ -1148,11 +1150,11 @@ void phy_state_machine(struct work_struc
  
                                if (phydev->link) {
                                        phydev->state = PHY_RUNNING;
@@ -121,7 +121,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                        } else {
                                phydev->state = PHY_AN;
                                phydev->link_timeout = PHY_AN_TIMEOUT;
-@@ -1132,11 +1134,11 @@ void phy_state_machine(struct work_struc
+@@ -1164,11 +1166,11 @@ void phy_state_machine(struct work_struc
  
                        if (phydev->link) {
                                phydev->state = PHY_RUNNING;
index 40d0afd71d45af4df0effef3bb2a79713e05d6a8..a0352e20d937081a0e1ca63e805a51a0413c5cd8 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  obj-$(CONFIG_MDIO_BOARDINFO)  += mdio-boardinfo.o
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -1175,91 +1175,6 @@ void phy_mac_interrupt(struct phy_device
+@@ -1207,91 +1207,6 @@ void phy_mac_interrupt(struct phy_device
  }
  EXPORT_SYMBOL(phy_mac_interrupt);
  
index 421a3082069f1c769692b9e19dadb34e0f346ff3..ecf7a26fa12845bf26239496329b33cccb639f40 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -1311,11 +1311,16 @@ EXPORT_SYMBOL(phy_ethtool_get_eee);
+@@ -1343,11 +1343,16 @@ EXPORT_SYMBOL(phy_ethtool_get_eee);
   */
  int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data)
  {
index 7c25c2467c45aace2f2b45f7e632c26d16a0630d..72951e8a3a8ee6189d83426beaa5c1fc81c5769a 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -1311,16 +1311,33 @@ EXPORT_SYMBOL(phy_ethtool_get_eee);
+@@ -1343,16 +1343,33 @@ EXPORT_SYMBOL(phy_ethtool_get_eee);
   */
  int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data)
  {
index 51d62595d2f6a2eca7013181033e05985e458a15..ec6571f60a3b8270d6d593551b14bd96c6d65e42 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -1195,6 +1195,7 @@ int phy_init_eee(struct phy_device *phyd
+@@ -1227,6 +1227,7 @@ int phy_init_eee(struct phy_device *phyd
        if ((phydev->duplex == DUPLEX_FULL) &&
            ((phydev->interface == PHY_INTERFACE_MODE_MII) ||
            (phydev->interface == PHY_INTERFACE_MODE_GMII) ||
index d3ee1180c64d43d31b6187c369762871f6096824..32922c1a9c2342c427f8417df05da985902b337c 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  
  /**
   * phy_aneg_done - return auto-negotiation status
-@@ -1407,3 +1425,14 @@ int phy_ethtool_set_link_ksettings(struc
+@@ -1439,3 +1457,14 @@ int phy_ethtool_set_link_ksettings(struc
        return phy_ethtool_ksettings_set(phydev, cmd);
  }
  EXPORT_SYMBOL(phy_ethtool_set_link_ksettings);
index 93f979ab53067feb049692d58dd5a781f618b6c3..44cf92439d684c34e7c388b2e18d8c9467bcb073 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -580,6 +580,7 @@ void phy_start_machine(struct phy_device
+@@ -612,6 +612,7 @@ void phy_start_machine(struct phy_device
  {
        queue_delayed_work(system_power_efficient_wq, &phydev->state_queue, HZ);
  }
index 5c901f994dcd8abd8d923cffdab29dd84bb715d3..e11cc7a5ec9c6b815d7c5051ec016c56faf50135 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -1000,7 +1000,8 @@ void phy_state_machine(struct work_struc
+@@ -1032,7 +1032,8 @@ void phy_state_machine(struct work_struc
                /* If the link is down, give up on negotiation for now */
                if (!phydev->link) {
                        phydev->state = PHY_NOLINK;
@@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                        phydev->adjust_link(phydev->attached_dev);
                        break;
                }
-@@ -1083,7 +1084,8 @@ void phy_state_machine(struct work_struc
+@@ -1115,7 +1116,8 @@ void phy_state_machine(struct work_struc
                        netif_carrier_on(phydev->attached_dev);
                } else {
                        phydev->state = PHY_NOLINK;
@@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                }
  
                phydev->adjust_link(phydev->attached_dev);
-@@ -1095,7 +1097,8 @@ void phy_state_machine(struct work_struc
+@@ -1127,7 +1129,8 @@ void phy_state_machine(struct work_struc
        case PHY_HALTED:
                if (phydev->link) {
                        phydev->link = 0;
diff --git a/target/linux/ramips/patches-4.9/200-rt3883-fix-pinctrl-typo.patch b/target/linux/ramips/patches-4.9/200-rt3883-fix-pinctrl-typo.patch
deleted file mode 100644 (file)
index aa55fd9..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-From 2583143af8111d430bdca0268b6cdb7ccc7c3f9d Mon Sep 17 00:00:00 2001
-From: Daniel Golle <daniel@makrotopia.org>
-Date: Fri, 13 Jan 2017 05:40:04 +0100
-Subject: [PATCH] mips: ralink/rt3883: fix typo in pinctrl lna_g_func
-
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
----
- arch/mips/ralink/rt3883.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/mips/ralink/rt3883.c
-+++ b/arch/mips/ralink/rt3883.c
-@@ -36,7 +36,7 @@ static struct rt2880_pmx_func uartlite_f
- static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 5) };
- static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) };
- static struct rt2880_pmx_func lna_a_func[] = { FUNC("lna a", 0, 32, 3) };
--static struct rt2880_pmx_func lna_g_func[] = { FUNC("lna a", 0, 35, 3) };
-+static struct rt2880_pmx_func lna_g_func[] = { FUNC("lna g", 0, 35, 3) };
- static struct rt2880_pmx_func pci_func[] = {
-       FUNC("pci-dev", 0, 40, 32),
-       FUNC("pci-host2", 1, 40, 32),
index a04a674be1d71b2614be3cd0b9f0e04d403fa069..14e0ef9d5da9907efa8692f515cca7959a5bf693 100644 (file)
@@ -1,8 +1,6 @@
-diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
-index 697007afb99c..4a4e0b4c077c 100644
 --- a/drivers/hwmon/w83627ehf.c
 +++ b/drivers/hwmon/w83627ehf.c
-@@ -2707,8 +2707,8 @@ static int __init w83627ehf_find(int sioaddr, unsigned short *addr,
+@@ -2707,8 +2707,8 @@ static int __init w83627ehf_find(int sio
        static const char sio_name_W83627UHG[] __initconst = "W83627UHG";
        static const char sio_name_W83667HG[] __initconst = "W83667HG";
        static const char sio_name_W83667HG_B[] __initconst = "W83667HG-B";
@@ -13,7 +11,7 @@ index 697007afb99c..4a4e0b4c077c 100644
  
        u16 val;
        const char *sio_name;
-@@ -2749,14 +2749,14 @@ static int __init w83627ehf_find(int sioaddr, unsigned short *addr,
+@@ -2749,14 +2749,14 @@ static int __init w83627ehf_find(int sio
                sio_data->kind = w83667hg_b;
                sio_name = sio_name_W83667HG_B;
                break;