kernel/3.10: refresh all target patches

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 38182
v19.07.3_mercusys_ac12_duma
Gabor Juhos 11 years ago
parent 76a1617063
commit 0380904acb

@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -176,6 +176,12 @@ config MTD_BCM47XX_PARTS
@@ -208,6 +208,12 @@ config MTD_BCM47XX_PARTS
This provides partitions parser for devices based on BCM47xx
boards.
@ -15,7 +15,7 @@
depends on ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX || ATH79
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o

@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -178,7 +178,7 @@ config MTD_BCM47XX_PARTS
@@ -210,7 +210,7 @@ config MTD_BCM47XX_PARTS
config MTD_WRT160NL_PARTS
tristate "Linksys WRT160NL partitioning support"
@ -9,7 +9,7 @@
---help---
Linksys WRT160NL partitioning support
@@ -198,6 +198,12 @@ config MTD_MYLOADER_PARTS
@@ -230,6 +230,12 @@ config MTD_MYLOADER_PARTS
You will still need the parsing functions to be called by the driver
for your particular device. It won't happen automatically.
@ -24,7 +24,7 @@
config MTD_BLKDEVS
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o

@ -202,7 +202,7 @@
+module_exit(exit_ar2315_wdt);
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -1104,6 +1104,12 @@ config LANTIQ_WDT
@@ -1113,6 +1113,12 @@ config LANTIQ_WDT
help
Hardware driver for the Lantiq SoC Watchdog Timer.
@ -217,7 +217,7 @@
# POWERPC Architecture
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -130,6 +130,7 @@ obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o
@@ -131,6 +131,7 @@ obj-$(CONFIG_GPIO_WDT) += gpio_wdt.o
obj-$(CONFIG_PNX833X_WDT) += pnx833x_wdt.o
obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
obj-$(CONFIG_AR7_WDT) += ar7_wdt.o

@ -45,11 +45,9 @@ Signed-off-by: Jason Cooper <jason@lakedaemon.net>
include/linux/of_address.h | 48 +++++++++++++++++++++++++++++++++
2 files changed, 115 insertions(+)
diff --git a/drivers/of/address.c b/drivers/of/address.c
index 04da786..fdd0636 100644
--- a/drivers/of/address.c
+++ b/drivers/of/address.c
@@ -227,6 +227,73 @@ int of_pci_address_to_resource(struct device_node *dev, int bar,
@@ -231,6 +231,73 @@ int of_pci_address_to_resource(struct de
return __of_address_to_resource(dev, addrp, size, flags, NULL, r);
}
EXPORT_SYMBOL_GPL(of_pci_address_to_resource);
@ -123,8 +121,6 @@ index 04da786..fdd0636 100644
#endif /* CONFIG_PCI */
/*
diff --git a/include/linux/of_address.h b/include/linux/of_address.h
index 0506eb5..4c2e6f2 100644
--- a/include/linux/of_address.h
+++ b/include/linux/of_address.h
@@ -4,6 +4,36 @@
@ -164,7 +160,7 @@ index 0506eb5..4c2e6f2 100644
#ifdef CONFIG_OF_ADDRESS
extern u64 of_translate_address(struct device_node *np, const __be32 *addr);
extern bool of_can_translate_address(struct device_node *dev);
@@ -27,6 +57,11 @@ static inline unsigned long pci_address_to_pio(phys_addr_t addr) { return -1; }
@@ -27,6 +57,11 @@ static inline unsigned long pci_address_
#define pci_address_to_pio pci_address_to_pio
#endif
@ -176,7 +172,7 @@ index 0506eb5..4c2e6f2 100644
#else /* CONFIG_OF_ADDRESS */
#ifndef of_address_to_resource
static inline int of_address_to_resource(struct device_node *dev, int index,
@@ -53,6 +88,19 @@ static inline const __be32 *of_get_address(struct device_node *dev, int index,
@@ -53,6 +88,19 @@ static inline const __be32 *of_get_addre
{
return NULL;
}
@ -196,6 +192,3 @@ index 0506eb5..4c2e6f2 100644
#endif /* CONFIG_OF_ADDRESS */
--
1.8.4

@ -10,8 +10,6 @@ Signed-off-by: Sean Cross <xobs@kosagi.com>
arch/arm/mach-imx/clk-imx6q.c | 20 +++++++++++++++++++-
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
index 9181a24..d94be84 100644
--- a/arch/arm/mach-imx/clk-imx6q.c
+++ b/arch/arm/mach-imx/clk-imx6q.c
@@ -205,6 +205,11 @@ static const char *vpu_axi_sels[] = { "a
@ -36,7 +34,7 @@ index 9181a24..d94be84 100644
};
static struct clk *clk[clk_max];
@@ -340,6 +347,18 @@ int __init mx6q_clocks_init(void)
@@ -340,6 +346,18 @@ int __init mx6q_clocks_init(void)
base + 0xe0, 0, 2, 0, clk_enet_ref_table,
&imx_ccm_lock);

@ -8,8 +8,6 @@ Signed-off-by: Sean Cross <xobs@kosagi.com>
include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
index b6bdcd6..e00e9f3 100644
--- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
+++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
@@ -241,6 +241,12 @@

@ -17,12 +17,10 @@ Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
7 files changed, 611 insertions(+), 1 deletion(-)
create mode 100644 drivers/pci/host/pci-imx6.c
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index ccd55c2..125202e 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -116,6 +116,22 @@
arm,data-latency = <4 2 3>;
@@ -108,6 +108,22 @@
cache-level = <2>;
};
+ pcie: pcie@0x01000000 {
@ -44,11 +42,9 @@ index ccd55c2..125202e 100644
pmu {
compatible = "arm,cortex-a9-pmu";
interrupts = <0 94 0x04>;
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 29a8af6..e6ac281 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -801,6 +801,8 @@ config SOC_IMX6Q
@@ -806,6 +806,8 @@ config SOC_IMX6Q
select HAVE_IMX_SRC
select HAVE_SMP
select MFD_SYSCON
@ -57,13 +53,11 @@ index 29a8af6..e6ac281 100644
select PINCTRL
select PINCTRL_IMX6Q
select PL310_ERRATA_588369 if CACHE_PL310
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
index d94be84..6956995 100644
--- a/arch/arm/mach-imx/clk-imx6q.c
+++ b/arch/arm/mach-imx/clk-imx6q.c
@@ -621,6 +621,10 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
if (ret)
pr_warn("failed to set up CLKO: %d\n", ret);
@@ -586,6 +586,10 @@ int __init mx6q_clocks_init(void)
clk_prepare_enable(clk[usbphy2_gate]);
}
+ /* All existing boards with PCIe use LVDS1 */
+ if (IS_ENABLED(CONFIG_PCI_IMX6))

@ -11,7 +11,7 @@
};
--- a/drivers/pci/host/pci-imx6.c
+++ b/drivers/pci/host/pci-imx6.c
@@ -200,12 +200,6 @@
@@ -200,12 +200,6 @@ static int pcie_phy_write(void __iomem *
static int imx6q_pcie_abort_handler(unsigned long addr,
unsigned int fsr, struct pt_regs *regs)
{
@ -24,7 +24,7 @@
return 0;
}
@@ -322,7 +316,7 @@
@@ -322,7 +316,7 @@ static void imx6_pcie_host_init(struct p
IMX6Q_GPR12_PCIE_CTL_2, 1 << 10);
while (!dw_pcie_link_up(pp)) {

@ -38,8 +38,6 @@ Subject: [PATCH 01/34] MIPS: lantiq: add pcie driver
create mode 100644 arch/mips/pci/ifxmips_pcie_vr9.h
create mode 100644 arch/mips/pci/pcie-lantiq.h
diff --git a/arch/mips/lantiq/Kconfig b/arch/mips/lantiq/Kconfig
index c002191..1621b1d 100644
--- a/arch/mips/lantiq/Kconfig
+++ b/arch/mips/lantiq/Kconfig
@@ -17,6 +17,7 @@ config SOC_XWAY
@ -66,8 +64,6 @@ index c002191..1621b1d 100644
config XRX200_PHY_FW
bool "XRX200 PHY firmware loader"
depends on SOC_XWAY
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index c24924f..e30dde8 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -377,6 +377,8 @@ void __init ltq_soc_init(void)
@ -79,11 +75,9 @@ index c24924f..e30dde8 100644
} else if (of_machine_is_compatible("lantiq,ar9")) {
clkdev_add_static(ltq_ar9_cpu_hz(), ltq_ar9_fpi_hz(),
ltq_ar9_fpi_hz(), CLOCK_250M);
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index 2cb1d31..8ba7fff 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -41,6 +41,8 @@ obj-$(CONFIG_SIBYTE_BCM1x80) += pci-bcm1480.o pci-bcm1480ht.o
@@ -41,6 +41,8 @@ obj-$(CONFIG_SIBYTE_BCM1x80) += pci-bcm1
obj-$(CONFIG_SNI_RM) += fixup-sni.o ops-sni.o
obj-$(CONFIG_LANTIQ) += fixup-lantiq.o
obj-$(CONFIG_PCI_LANTIQ) += pci-lantiq.o ops-lantiq.o
@ -92,9 +86,6 @@ index 2cb1d31..8ba7fff 100644
obj-$(CONFIG_TANBAC_TB0219) += fixup-tb0219.o
obj-$(CONFIG_TANBAC_TB0226) += fixup-tb0226.o
obj-$(CONFIG_TANBAC_TB0287) += fixup-tb0287.o
diff --git a/arch/mips/pci/fixup-lantiq-pcie.c b/arch/mips/pci/fixup-lantiq-pcie.c
new file mode 100644
index 0000000..3325e24
--- /dev/null
+++ b/arch/mips/pci/fixup-lantiq-pcie.c
@@ -0,0 +1,82 @@
@ -180,8 +171,6 @@ index 0000000..3325e24
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LANTIQ, PCI_DEVICE_ID_LANTIQ_PCIE,
+ ifx_pcie_rc_class_early_fixup);
diff --git a/arch/mips/pci/fixup-lantiq.c b/arch/mips/pci/fixup-lantiq.c
index 6c829df..50ec0b5 100644
--- a/arch/mips/pci/fixup-lantiq.c
+++ b/arch/mips/pci/fixup-lantiq.c
@@ -11,11 +11,12 @@
@ -198,7 +187,7 @@ index 6c829df..50ec0b5 100644
if (ltq_pci_plat_dev_init)
return ltq_pci_plat_dev_init(dev);
@@ -28,6 +29,8 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
@@ -28,6 +29,8 @@ int __init pcibios_map_irq(const struct
struct of_irq dev_irq;
int irq;
@ -207,9 +196,6 @@ index 6c829df..50ec0b5 100644
if (of_irq_map_pci(dev, &dev_irq)) {
dev_err(&dev->dev, "trying to map irq for unknown slot:%d pin:%d\n",
slot, pin);
diff --git a/arch/mips/pci/ifxmips_pci_common.h b/arch/mips/pci/ifxmips_pci_common.h
new file mode 100644
index 0000000..46f4cb2
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pci_common.h
@@ -0,0 +1,57 @@
@ -270,9 +256,6 @@ index 0000000..46f4cb2
+
+#endif /* IFXMIPS_PCI_COMMON_H */
+
diff --git a/arch/mips/pci/ifxmips_pcie.c b/arch/mips/pci/ifxmips_pcie.c
new file mode 100644
index 0000000..4128898
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie.c
@@ -0,0 +1,1099 @@
@ -1375,9 +1358,6 @@ index 0000000..4128898
+MODULE_SUPPORTED_DEVICE("Infineon builtin PCIe RC module");
+MODULE_DESCRIPTION("Infineon builtin PCIe RC driver");
+
diff --git a/arch/mips/pci/ifxmips_pcie.h b/arch/mips/pci/ifxmips_pcie.h
new file mode 100644
index 0000000..c6f92f5
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie.h
@@ -0,0 +1,135 @@
@ -1516,9 +1496,6 @@ index 0000000..c6f92f5
+
+#endif /* IFXMIPS_PCIE_H */
+
diff --git a/arch/mips/pci/ifxmips_pcie_ar10.h b/arch/mips/pci/ifxmips_pcie_ar10.h
new file mode 100644
index 0000000..99ff463
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_ar10.h
@@ -0,0 +1,290 @@
@ -1812,9 +1789,6 @@ index 0000000..99ff463
+}
+
+#endif /* IFXMIPS_PCIE_AR10_H */
diff --git a/arch/mips/pci/ifxmips_pcie_msi.c b/arch/mips/pci/ifxmips_pcie_msi.c
new file mode 100644
index 0000000..bffd6fa
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_msi.c
@@ -0,0 +1,392 @@
@ -2210,9 +2184,6 @@ index 0000000..bffd6fa
+MODULE_SUPPORTED_DEVICE("Infineon PCIe IP builtin MSI PIC module");
+MODULE_DESCRIPTION("Infineon PCIe IP builtin MSI PIC driver");
+
diff --git a/arch/mips/pci/ifxmips_pcie_phy.c b/arch/mips/pci/ifxmips_pcie_phy.c
new file mode 100644
index 0000000..f5b0f13
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_phy.c
@@ -0,0 +1,478 @@
@ -2694,9 +2665,6 @@ index 0000000..f5b0f13
+#endif
+}
+
diff --git a/arch/mips/pci/ifxmips_pcie_pm.c b/arch/mips/pci/ifxmips_pcie_pm.c
new file mode 100644
index 0000000..a10ecad
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_pm.c
@@ -0,0 +1,176 @@
@ -2876,9 +2844,6 @@ index 0000000..a10ecad
+ ifx_pmcu_unregister(&pmcuUnRegister);
+}
+
diff --git a/arch/mips/pci/ifxmips_pcie_pm.h b/arch/mips/pci/ifxmips_pcie_pm.h
new file mode 100644
index 0000000..6ece20d
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_pm.h
@@ -0,0 +1,36 @@
@ -2918,9 +2883,6 @@ index 0000000..6ece20d
+
+#endif /* IFXMIPS_PCIE_PM_H */
+
diff --git a/arch/mips/pci/ifxmips_pcie_reg.h b/arch/mips/pci/ifxmips_pcie_reg.h
new file mode 100644
index 0000000..e7e4b6c
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_reg.h
@@ -0,0 +1,1001 @@
@ -3925,9 +3887,6 @@ index 0000000..e7e4b6c
+
+#endif /* IFXMIPS_PCIE_REG_H */
+
diff --git a/arch/mips/pci/ifxmips_pcie_vr9.h b/arch/mips/pci/ifxmips_pcie_vr9.h
new file mode 100644
index 0000000..57d9368
--- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_vr9.h
@@ -0,0 +1,271 @@
@ -4202,8 +4161,6 @@ index 0000000..57d9368
+
+#endif /* IFXMIPS_PCIE_VR9_H */
+
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index 594e60d..2e75400 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -266,6 +266,31 @@ static int __init pcibios_init(void)
@ -4238,9 +4195,6 @@ index 594e60d..2e75400 100644
static int pcibios_enable_resources(struct pci_dev *dev, int mask)
{
u16 cmd, old_cmd;
diff --git a/arch/mips/pci/pcie-lantiq.h b/arch/mips/pci/pcie-lantiq.h
new file mode 100644
index 0000000..d877c23
--- /dev/null
+++ b/arch/mips/pci/pcie-lantiq.h
@@ -0,0 +1,1305 @@
@ -5549,8 +5503,6 @@ index 0000000..d877c23
+
+#endif /* IFXMIPS_PCIE_VR9_H */
+
diff --git a/drivers/pci/pcie/aer/Kconfig b/drivers/pci/pcie/aer/Kconfig
index 50e94e0..4bf848f 100644
--- a/drivers/pci/pcie/aer/Kconfig
+++ b/drivers/pci/pcie/aer/Kconfig
@@ -5,7 +5,7 @@
@ -5562,11 +5514,9 @@ index 50e94e0..4bf848f 100644
help
This enables PCI Express Root Port Advanced Error Reporting
(AER) driver support. Error reporting messages sent to Root
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 3a24e4f..25b0349 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1082,6 +1082,8 @@ void pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *),
@@ -1082,6 +1082,8 @@ void pci_walk_bus(struct pci_bus *top, i
int pci_cfg_space_size_ext(struct pci_dev *dev);
int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
@ -5575,8 +5525,6 @@ index 3a24e4f..25b0349 100644
void pci_setup_bridge(struct pci_bus *bus);
resource_size_t pcibios_window_alignment(struct pci_bus *bus,
unsigned long type);
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index c129162..c503ac9 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1042,6 +1042,12 @@
@ -5592,6 +5540,3 @@ index c129162..c503ac9 100644
#define PCI_VENDOR_ID_WINBOND 0x10ad
#define PCI_DEVICE_ID_WINBOND_82C105 0x0105
#define PCI_DEVICE_ID_WINBOND_83C553 0x0565
--
1.7.10.4

@ -15,8 +15,6 @@ Patchwork: http://patchwork.linux-mips.org/patch/5677/
2 files changed, 64 insertions(+), 1 deletion(-)
create mode 100644 arch/mips/lantiq/xway/dcdc.c
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index 7a13660..087497d 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,3 +1,3 @@
@ -24,9 +22,6 @@ index 7a13660..087497d 100644
+obj-y := prom.o sysctrl.o clk.o reset.o dma.o gptu.o dcdc.o
obj-$(CONFIG_XRX200_PHY_FW) += xrx200_phy_fw.o
diff --git a/arch/mips/lantiq/xway/dcdc.c b/arch/mips/lantiq/xway/dcdc.c
new file mode 100644
index 0000000..7688ac0
--- /dev/null
+++ b/arch/mips/lantiq/xway/dcdc.c
@@ -0,0 +1,63 @@
@ -93,6 +88,3 @@ index 0000000..7688ac0
+}
+
+arch_initcall(dcdc_init);
--
1.7.10.4

@ -15,9 +15,6 @@ Patchwork: http://patchwork.linux-mips.org/patch/5658/
1 file changed, 58 insertions(+)
create mode 100644 arch/mips/include/asm/mach-lantiq/falcon/cpu-feature-overrides.h
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/cpu-feature-overrides.h b/arch/mips/include/asm/mach-lantiq/falcon/cpu-feature-overrides.h
new file mode 100644
index 0000000..096a100
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/falcon/cpu-feature-overrides.h
@@ -0,0 +1,58 @@
@ -79,6 +76,3 @@ index 0000000..096a100
+#define cpu_icache_line_size() 32
+
+#endif /* __ASM_MACH_FALCON_CPU_FEATURE_OVERRIDES_H */
--
1.7.10.4

@ -14,8 +14,6 @@ Patchwork: http://patchwork.linux-mips.org/patch/5659/
arch/mips/lantiq/falcon/sysctrl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/mips/lantiq/falcon/sysctrl.c b/arch/mips/lantiq/falcon/sysctrl.c
index ff4894a..8f1866d 100644
--- a/arch/mips/lantiq/falcon/sysctrl.c
+++ b/arch/mips/lantiq/falcon/sysctrl.c
@@ -48,6 +48,7 @@
@ -26,7 +24,7 @@ index ff4894a..8f1866d 100644
#define ACTS_ASC1_ACT 0x00000800
#define ACTS_I2C_ACT 0x00004000
#define ACTS_P0 0x00010000
@@ -108,6 +109,7 @@ static void sysctl_deactivate(struct clk *clk)
@@ -108,6 +109,7 @@ static void sysctl_deactivate(struct clk
static int sysctl_clken(struct clk *clk)
{
sysctl_w32(clk->module, clk->bits, SYSCTL_CLKEN);
@ -43,6 +41,3 @@ index ff4894a..8f1866d 100644
+ clkdev_add_sys("1e100c00.serial", SYSCTL_SYS1, ACTS_ASC0_ACT);
clkdev_add_sys("1e200000.i2c", SYSCTL_SYS1, ACTS_I2C_ACT);
}
--
1.7.10.4

@ -9,8 +9,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/prom.c | 4 +++-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/mips/lantiq/Makefile b/arch/mips/lantiq/Makefile
index d6bdc57..690257a 100644
--- a/arch/mips/lantiq/Makefile
+++ b/arch/mips/lantiq/Makefile
@@ -6,8 +6,6 @@
@ -22,11 +20,9 @@ index d6bdc57..690257a 100644
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-$(CONFIG_SOC_TYPE_XWAY) += xway/
diff --git a/arch/mips/lantiq/prom.c b/arch/mips/lantiq/prom.c
index 9f9e875..72b183a 100644
--- a/arch/mips/lantiq/prom.c
+++ b/arch/mips/lantiq/prom.c
@@ -57,6 +57,8 @@ static void __init prom_init_cmdline(void)
@@ -57,6 +57,8 @@ static void __init prom_init_cmdline(voi
}
}
@ -44,6 +40,3 @@ index 9f9e875..72b183a 100644
}
void __init device_tree_init(void)
--
1.7.10.4

@ -10,8 +10,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
2 files changed, 65 insertions(+)
create mode 100644 arch/mips/lantiq/xway/vmmc.c
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index 087497d..a2edc53 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,3 +1,5 @@
@ -20,9 +18,6 @@ index 087497d..a2edc53 100644
+obj-y += vmmc.o
+
obj-$(CONFIG_XRX200_PHY_FW) += xrx200_phy_fw.o
diff --git a/arch/mips/lantiq/xway/vmmc.c b/arch/mips/lantiq/xway/vmmc.c
new file mode 100644
index 0000000..6dedf77
--- /dev/null
+++ b/arch/mips/lantiq/xway/vmmc.c
@@ -0,0 +1,63 @@
@ -89,6 +84,3 @@ index 0000000..6dedf77
+};
+
+module_platform_driver(vmmc_driver);
--
1.7.10.4

@ -16,9 +16,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
create mode 100644 arch/mips/include/asm/mach-lantiq/lantiq_atm.h
create mode 100644 arch/mips/include/asm/mach-lantiq/lantiq_ptm.h
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq_atm.h b/arch/mips/include/asm/mach-lantiq/lantiq_atm.h
new file mode 100644
index 0000000..bf045a9
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/lantiq_atm.h
@@ -0,0 +1,196 @@
@ -218,9 +215,6 @@ index 0000000..bf045a9
+
+#endif // IFX_ATM_H
+
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq_ptm.h b/arch/mips/include/asm/mach-lantiq/lantiq_ptm.h
new file mode 100644
index 0000000..698e5c3
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/lantiq_ptm.h
@@ -0,0 +1,203 @@
@ -427,8 +421,6 @@ index 0000000..698e5c3
+
+#endif // IFX_PTM_H
+
diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c
index 5119487..6d2c486 100644
--- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c
@@ -14,6 +14,7 @@
@ -439,7 +431,7 @@ index 5119487..6d2c486 100644
#include <asm/bootinfo.h>
#include <asm/irq_cpu.h>
@@ -99,6 +100,7 @@ void ltq_mask_and_ack_irq(struct irq_data *d)
@@ -99,6 +100,7 @@ void ltq_mask_and_ack_irq(struct irq_dat
ltq_icu_w32(im, ltq_icu_r32(im, ier) & ~BIT(offset), ier);
ltq_icu_w32(im, BIT(offset), isr);
}
@ -447,11 +439,9 @@ index 5119487..6d2c486 100644
static void ltq_ack_irq(struct irq_data *d)
{
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 5aeb3eb..11aa4e6 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -58,6 +58,8 @@ void (*_dma_cache_wback)(unsigned long start, unsigned long size);
@@ -59,6 +59,8 @@ void (*_dma_cache_wback)(unsigned long s
void (*_dma_cache_inv)(unsigned long start, unsigned long size);
EXPORT_SYMBOL(_dma_cache_wback_inv);
@ -460,8 +450,6 @@ index 5aeb3eb..11aa4e6 100644
#endif /* CONFIG_DMA_NONCOHERENT */
diff --git a/include/uapi/linux/atm.h b/include/uapi/linux/atm.h
index 88399db..78c8bbc 100644
--- a/include/uapi/linux/atm.h
+++ b/include/uapi/linux/atm.h
@@ -130,8 +130,14 @@
@ -479,11 +467,9 @@ index 88399db..78c8bbc 100644
struct atm_trafprm {
unsigned char traffic_class; /* traffic class (ATM_UBR, ...) */
int max_pcr; /* maximum PCR in cells per second */
diff --git a/net/atm/common.c b/net/atm/common.c
index 737bef5..959008d 100644
--- a/net/atm/common.c
+++ b/net/atm/common.c
@@ -62,11 +62,17 @@ static void vcc_remove_socket(struct sock *sk)
@@ -62,11 +62,17 @@ static void vcc_remove_socket(struct soc
write_unlock_irq(&vcc_sklist_lock);
}
@ -501,11 +487,9 @@ index 737bef5..959008d 100644
if (sk_wmem_alloc_get(sk) && !atm_may_send(vcc, size)) {
pr_debug("Sorry: wmem_alloc = %d, size = %d, sndbuf = %d\n",
sk_wmem_alloc_get(sk), size, sk->sk_sndbuf);
diff --git a/net/atm/proc.c b/net/atm/proc.c
index bbb6461..ecb584a 100644
--- a/net/atm/proc.c
+++ b/net/atm/proc.c
@@ -154,7 +154,7 @@ static void *vcc_seq_next(struct seq_file *seq, void *v, loff_t *pos)
@@ -154,7 +154,7 @@ static void *vcc_seq_next(struct seq_fil
static void pvc_info(struct seq_file *seq, struct atm_vcc *vcc)
{
static const char *const class_name[] = {
@ -514,6 +498,3 @@ index bbb6461..ecb584a 100644
static const char *const aal_name[] = {
"---", "1", "2", "3/4", /* 0- 3 */
"???", "5", "???", "???", /* 4- 7 */
--
1.7.10.4

@ -17,10 +17,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
create mode 100644 arch/mips/lantiq/xway/pci-ath-fixup.c
create mode 100644 arch/mips/lantiq/xway/rt_eep.c
Index: linux-3.10.12/arch/mips/include/asm/mach-lantiq/pci-ath-fixup.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.10.12/arch/mips/include/asm/mach-lantiq/pci-ath-fixup.h 2013-09-17 22:32:50.385021711 +0200
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/pci-ath-fixup.h
@@ -0,0 +1,6 @@
+#ifndef _PCI_ATH_FIXUP
+#define _PCI_ATH_FIXUP
@ -28,11 +26,9 @@ Index: linux-3.10.12/arch/mips/include/asm/mach-lantiq/pci-ath-fixup.h
+void ltq_pci_ath_fixup(unsigned slot, u16 *cal_data) __init;
+
+#endif /* _PCI_ATH_FIXUP */
Index: linux-3.10.12/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
===================================================================
--- linux-3.10.12.orig/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h 2013-09-14 15:55:12.000000000 +0200
+++ linux-3.10.12/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h 2013-09-17 22:32:50.389021711 +0200
@@ -90,5 +90,8 @@
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -90,5 +90,8 @@ int xrx200_gphy_boot(struct device *dev,
extern void ltq_pmu_enable(unsigned int module);
extern void ltq_pmu_disable(unsigned int module);
@ -41,21 +37,17 @@ Index: linux-3.10.12/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+
#endif /* CONFIG_SOC_TYPE_XWAY */
#endif /* _LTQ_XWAY_H__ */
Index: linux-3.10.12/arch/mips/lantiq/xway/Makefile
===================================================================
--- linux-3.10.12.orig/arch/mips/lantiq/xway/Makefile 2013-09-17 22:32:50.305021707 +0200
+++ linux-3.10.12/arch/mips/lantiq/xway/Makefile 2013-09-18 02:41:31.613659574 +0200
@@ -2,4 +2,6 @@
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -2,4 +2,6 @@ obj-y := prom.o sysctrl.o clk.o reset.o
obj-y += vmmc.o
+obj-$(CONFIG_PCI) += ath_eep.o rt_eep.o pci-ath-fixup.o
+
obj-$(CONFIG_XRX200_PHY_FW) += xrx200_phy_fw.o
Index: linux-3.10.12/arch/mips/lantiq/xway/ath_eep.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.10.12/arch/mips/lantiq/xway/ath_eep.c 2013-09-18 02:41:28.525659442 +0200
--- /dev/null
+++ b/arch/mips/lantiq/xway/ath_eep.c
@@ -0,0 +1,250 @@
+/*
+ * Copyright (C) 2011 Luca Olivetti <luca@ventoso.org>
@ -307,10 +299,8 @@ Index: linux-3.10.12/arch/mips/lantiq/xway/ath_eep.c
+ return platform_driver_probe(&ath5k_eeprom_driver, of_ath5k_eeprom_probe);
+}
+device_initcall(of_ath5k_eeprom_init);
Index: linux-3.10.12/arch/mips/lantiq/xway/pci-ath-fixup.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.10.12/arch/mips/lantiq/xway/pci-ath-fixup.c 2013-09-17 22:32:50.389021711 +0200
--- /dev/null
+++ b/arch/mips/lantiq/xway/pci-ath-fixup.c
@@ -0,0 +1,109 @@
+/*
+ * Atheros AP94 reference board PCI initialization
@ -421,10 +411,8 @@ Index: linux-3.10.12/arch/mips/lantiq/xway/pci-ath-fixup.c
+ ath_fixups[ath_num_fixups].cal_data = cal_data;
+ ath_num_fixups++;
+}
Index: linux-3.10.12/arch/mips/lantiq/xway/rt_eep.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.10.12/arch/mips/lantiq/xway/rt_eep.c 2013-09-17 22:32:50.389021711 +0200
--- /dev/null
+++ b/arch/mips/lantiq/xway/rt_eep.c
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2011 John Crispin <blogic@openwrt.org>

@ -11,8 +11,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/xway/reset.c | 61 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/arch/mips/lantiq/xway/reset.c b/arch/mips/lantiq/xway/reset.c
index 1fa0f17..a1e06b7 100644
--- a/arch/mips/lantiq/xway/reset.c
+++ b/arch/mips/lantiq/xway/reset.c
@@ -14,6 +14,7 @@
@ -23,7 +21,7 @@ index 1fa0f17..a1e06b7 100644
#include <asm/reboot.h>
@@ -113,6 +114,66 @@ void ltq_reset_once(unsigned int module, ulong u)
@@ -113,6 +114,66 @@ void ltq_reset_once(unsigned int module,
ltq_rcu_w32(ltq_rcu_r32(RCU_RST_REQ) & ~module, RCU_RST_REQ);
}
@ -90,6 +88,3 @@ index 1fa0f17..a1e06b7 100644
static void ltq_machine_restart(char *command)
{
local_irq_disable();
--
1.7.10.4

@ -12,11 +12,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/mtd/devices/m25p80.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 2f3d2a5..1828704 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -909,10 +909,13 @@ static int m25p_probe(struct spi_device *spi)
@@ -925,10 +925,13 @@ static int m25p_probe(struct spi_device
unsigned i;
struct mtd_part_parser_data ppdata;
struct device_node __maybe_unused *np = spi->dev.of_node;
@ -30,7 +28,7 @@ index 2f3d2a5..1828704 100644
#endif
/* Platform data helps sort out which chip type we have, as
@@ -988,6 +991,8 @@ static int m25p_probe(struct spi_device *spi)
@@ -1004,6 +1007,8 @@ static int m25p_probe(struct spi_device
if (data && data->name)
flash->mtd.name = data->name;
@ -39,6 +37,3 @@ index 2f3d2a5..1828704 100644
else
flash->mtd.name = dev_name(&spi->dev);
--
1.7.10.4

@ -16,8 +16,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
3 files changed, 92 insertions(+)
create mode 100644 drivers/mtd/nand/falcon_nand.c
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index a60f6c1..74b1323 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -544,4 +544,12 @@ config MTD_NAND_XWAY
@ -33,20 +31,15 @@ index a60f6c1..74b1323 100644
+ attached to the External Bus Unit (EBU).
+
endif # MTD_NAND
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
index bb81891..feb7c9d 100644
--- a/drivers/mtd/nand/Makefile
+++ b/drivers/mtd/nand/Makefile
@@ -50,5 +50,6 @@ obj-$(CONFIG_MTD_NAND_JZ4740) += jz4740_nand.o
@@ -50,5 +50,6 @@ obj-$(CONFIG_MTD_NAND_JZ4740) += jz4740
obj-$(CONFIG_MTD_NAND_GPMI_NAND) += gpmi-nand/
obj-$(CONFIG_MTD_NAND_XWAY) += xway_nand.o
obj-$(CONFIG_MTD_NAND_BCM47XXNFLASH) += bcm47xxnflash/
+obj-$(CONFIG_MTD_NAND_FALCON) += falcon_nand.o
nand-objs := nand_base.o nand_bbt.o
diff --git a/drivers/mtd/nand/falcon_nand.c b/drivers/mtd/nand/falcon_nand.c
new file mode 100644
index 0000000..13458d3
--- /dev/null
+++ b/drivers/mtd/nand/falcon_nand.c
@@ -0,0 +1,83 @@
@ -133,6 +126,3 @@ index 0000000..13458d3
+}
+
+arch_initcall(falcon_register_nand);
--
1.7.10.4

@ -7,11 +7,9 @@ Subject: [PATCH 14/34] MTD: lantiq: handle NO_XIP on cfi0001 flash
drivers/mtd/maps/lantiq-flash.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/maps/lantiq-flash.c b/drivers/mtd/maps/lantiq-flash.c
index d7ac65d..95b155a 100644
--- a/drivers/mtd/maps/lantiq-flash.c
+++ b/drivers/mtd/maps/lantiq-flash.c
@@ -134,7 +134,11 @@ ltq_mtd_probe(struct platform_device *pdev)
@@ -134,7 +134,11 @@ ltq_mtd_probe(struct platform_device *pd
}
ltq_mtd->map = kzalloc(sizeof(struct map_info), GFP_KERNEL);
@ -24,6 +22,3 @@ index d7ac65d..95b155a 100644
ltq_mtd->map->size = resource_size(ltq_mtd->res);
ltq_mtd->map->virt = devm_ioremap_resource(&pdev->dev, ltq_mtd->res);
if (IS_ERR(ltq_mtd->map->virt)) {
--
1.7.10.4

@ -11,11 +11,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/mtd/nand/xway_nand.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c
index 3f81dc8..169a91d 100644
--- a/drivers/mtd/nand/xway_nand.c
+++ b/drivers/mtd/nand/xway_nand.c
@@ -124,7 +124,7 @@ static unsigned char xway_read_byte(struct mtd_info *mtd)
@@ -124,7 +124,7 @@ static unsigned char xway_read_byte(stru
int ret;
spin_lock_irqsave(&ebu_lock, flags);
@ -24,6 +22,3 @@ index 3f81dc8..169a91d 100644
spin_unlock_irqrestore(&ebu_lock, flags);
return ret;
--
1.7.10.4

@ -9,8 +9,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/mtd/nand/xway_nand.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c
index 169a91d..7f2bdd1 100644
--- a/drivers/mtd/nand/xway_nand.c
+++ b/drivers/mtd/nand/xway_nand.c
@@ -54,6 +54,8 @@
@ -22,7 +20,7 @@ index 169a91d..7f2bdd1 100644
static void xway_reset_chip(struct nand_chip *chip)
{
unsigned long nandaddr = (unsigned long) chip->IO_ADDR_W;
@@ -94,17 +96,15 @@ static void xway_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
@@ -94,17 +96,15 @@ static void xway_cmd_ctrl(struct mtd_inf
unsigned long flags;
if (ctrl & NAND_CTRL_CHANGE) {
@ -44,6 +42,3 @@ index 169a91d..7f2bdd1 100644
while ((ltq_ebu_r32(EBU_NAND_WAIT) & NAND_WAIT_WR_C) == 0)
;
spin_unlock_irqrestore(&ebu_lock, flags);
--
1.7.10.4

@ -12,8 +12,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/mtd/nand/xway_nand.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c
index 7f2bdd1..8d14f1b 100644
--- a/drivers/mtd/nand/xway_nand.c
+++ b/drivers/mtd/nand/xway_nand.c
@@ -59,16 +59,22 @@ static u32 xway_latchcmd;
@ -41,6 +39,3 @@ index 7f2bdd1..8d14f1b 100644
spin_unlock_irqrestore(&ebu_lock, flags);
}
--
1.7.10.4

@ -9,11 +9,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/mtd/nand/xway_nand.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c
index 8d14f1b..f813a55 100644
--- a/drivers/mtd/nand/xway_nand.c
+++ b/drivers/mtd/nand/xway_nand.c
@@ -136,6 +136,32 @@ static unsigned char xway_read_byte(struct mtd_info *mtd)
@@ -136,6 +136,32 @@ static unsigned char xway_read_byte(stru
return ret;
}
@ -46,7 +44,7 @@ index 8d14f1b..f813a55 100644
static int xway_nand_probe(struct platform_device *pdev)
{
struct nand_chip *this = platform_get_drvdata(pdev);
@@ -181,6 +207,8 @@ static struct platform_nand_data xway_nand_data = {
@@ -181,6 +207,8 @@ static struct platform_nand_data xway_na
.dev_ready = xway_dev_ready,
.select_chip = xway_select_chip,
.read_byte = xway_read_byte,
@ -55,6 +53,3 @@ index 8d14f1b..f813a55 100644
}
};
--
1.7.10.4

@ -12,11 +12,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
create mode 100644 firmware/lantiq/COPYING
create mode 100644 firmware/lantiq/README
diff --git a/firmware/Makefile b/firmware/Makefile
index cbb09ce..c8697df 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -134,6 +134,9 @@ fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw
@@ -134,6 +134,9 @@ fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_P
fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw
fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw
fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin
@ -26,9 +24,6 @@ index cbb09ce..c8697df 100644
fw-shipped-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin
fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-)
diff --git a/firmware/lantiq/COPYING b/firmware/lantiq/COPYING
new file mode 100644
index 0000000..5ec70b2
--- /dev/null
+++ b/firmware/lantiq/COPYING
@@ -0,0 +1,286 @@
@ -318,9 +313,6 @@ index 0000000..5ec70b2
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
diff --git a/firmware/lantiq/README b/firmware/lantiq/README
new file mode 100644
index 0000000..cb1a10a
--- /dev/null
+++ b/firmware/lantiq/README
@@ -0,0 +1,45 @@
@ -369,6 +361,3 @@ index 0000000..cb1a10a
+# GPHY core on Lantiq XWAY VR9 v1.1
+lantiq/vr9_phy11g_a2x.bin
+lantiq/vr9_phy22f_a2x.bin
--
1.7.10.4

@ -12,8 +12,6 @@ Subject: [PATCH 20/34] NET: MIPS: lantiq: adds xrx200-net
create mode 100644 drivers/net/ethernet/lantiq_pce.h
create mode 100644 drivers/net/ethernet/lantiq_xrx200.c
diff --git a/drivers/net/ethernet/Kconfig b/drivers/net/ethernet/Kconfig
index ed956e0..9261fe4 100644
--- a/drivers/net/ethernet/Kconfig
+++ b/drivers/net/ethernet/Kconfig
@@ -83,7 +83,13 @@ config LANTIQ_ETOP
@ -31,8 +29,6 @@ index ed956e0..9261fe4 100644
source "drivers/net/ethernet/marvell/Kconfig"
source "drivers/net/ethernet/mellanox/Kconfig"
diff --git a/drivers/net/ethernet/Makefile b/drivers/net/ethernet/Makefile
index 8268d85..e8410d8 100644
--- a/drivers/net/ethernet/Makefile
+++ b/drivers/net/ethernet/Makefile
@@ -36,6 +36,7 @@ obj-$(CONFIG_IP1000) += icplus/
@ -43,9 +39,6 @@ index 8268d85..e8410d8 100644
obj-$(CONFIG_NET_VENDOR_MARVELL) += marvell/
obj-$(CONFIG_NET_VENDOR_MELLANOX) += mellanox/
obj-$(CONFIG_NET_VENDOR_MICREL) += micrel/
diff --git a/drivers/net/ethernet/lantiq_pce.h b/drivers/net/ethernet/lantiq_pce.h
new file mode 100644
index 0000000..0c38efe
--- /dev/null
+++ b/drivers/net/ethernet/lantiq_pce.h
@@ -0,0 +1,163 @@
@ -212,9 +205,6 @@ index 0000000..0c38efe
+ MC_ENTRY(0x0000, 0x0000, 39, OUT_NONE, 0, INSTR, FLAG_END, 0),
+ MC_ENTRY(0x0000, 0x0000, 39, OUT_NONE, 0, INSTR, FLAG_END, 0),
+};
diff --git a/drivers/net/ethernet/lantiq_xrx200.c b/drivers/net/ethernet/lantiq_xrx200.c
new file mode 100644
index 0000000..2d40c64
--- /dev/null
+++ b/drivers/net/ethernet/lantiq_xrx200.c
@@ -0,0 +1,1203 @@
@ -1421,6 +1411,3 @@ index 0000000..2d40c64
+MODULE_AUTHOR("John Crispin <blogic@openwrt.org>");
+MODULE_DESCRIPTION("Lantiq SoC XRX200 ethernet");
+MODULE_LICENSE("GPL");
--
1.7.10.4

@ -7,8 +7,6 @@ Subject: [PATCH 21/34] NET: MIPS: lantiq: update etop driver for devicetree
drivers/net/ethernet/lantiq_etop.c | 501 +++++++++++++++++++++++++-----------
1 file changed, 355 insertions(+), 146 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index bfdb0686..cdc0c0e 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -12,7 +12,7 @@
@ -35,15 +33,13 @@ index bfdb0686..cdc0c0e 100644
#define ETOP_MII_REVERSE 0xe
#define ETOP_PLEN_UNDER 0x40
#define ETOP_CGEN 0x800
-
+#define ETOP_CFG_MII0 0x01
-/* use 2 static channels for TX/RX */
-#define LTQ_ETOP_TX_CHANNEL 1
-#define LTQ_ETOP_RX_CHANNEL 6
-#define IS_TX(x) (x == LTQ_ETOP_TX_CHANNEL)
-#define IS_RX(x) (x == LTQ_ETOP_RX_CHANNEL)
-
+#define ETOP_CFG_MII0 0x01
+
+#define LTQ_GBIT_MDIO_CTL 0xCC
+#define LTQ_GBIT_MDIO_DATA 0xd0
+#define LTQ_GBIT_GCTL0 0x68
@ -74,7 +70,7 @@ index bfdb0686..cdc0c0e 100644
+#define MDIO_XR9_REG_OFFSET 0
+#define MDIO_XR9_ADDR_OFFSET 5
+#define MDIO_XR9_WR_OFFSET 16
+
+#define LTQ_DMA_ETOP ((of_machine_is_compatible("lantiq,ase")) ? \
+ (INT_NUM_IM3_IRL0) : (INT_NUM_IM2_IRL0))
+
@ -142,7 +138,7 @@ index bfdb0686..cdc0c0e 100644
if (!ch->skb[ch->dma.desc])
return -ENOMEM;
ch->dma.desc_base[ch->dma.desc].addr = dma_map_single(NULL,
@@ -149,8 +202,11 @@ ltq_etop_hw_receive(struct ltq_etop_chan *ch)
@@ -149,8 +202,11 @@ ltq_etop_hw_receive(struct ltq_etop_chan
spin_unlock_irqrestore(&priv->lock, flags);
skb_put(skb, len);
@ -154,7 +150,7 @@ index bfdb0686..cdc0c0e 100644
}
static int
@@ -158,8 +214,10 @@ ltq_etop_poll_rx(struct napi_struct *napi, int budget)
@@ -158,8 +214,10 @@ ltq_etop_poll_rx(struct napi_struct *nap
{
struct ltq_etop_chan *ch = container_of(napi,
struct ltq_etop_chan, napi);
@ -165,7 +161,7 @@ index bfdb0686..cdc0c0e 100644
while ((rx < budget) && !complete) {
struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc];
@@ -173,7 +231,9 @@ ltq_etop_poll_rx(struct napi_struct *napi, int budget)
@@ -173,7 +231,9 @@ ltq_etop_poll_rx(struct napi_struct *nap
}
if (complete || !rx) {
napi_complete(&ch->napi);
@ -175,7 +171,7 @@ index bfdb0686..cdc0c0e 100644
}
return rx;
}
@@ -185,12 +245,14 @@ ltq_etop_poll_tx(struct napi_struct *napi, int budget)
@@ -185,12 +245,14 @@ ltq_etop_poll_tx(struct napi_struct *nap
container_of(napi, struct ltq_etop_chan, napi);
struct ltq_etop_priv *priv = netdev_priv(ch->netdev);
struct netdev_queue *txq =
@ -191,7 +187,7 @@ index bfdb0686..cdc0c0e 100644
dev_kfree_skb_any(ch->skb[ch->tx_free]);
ch->skb[ch->tx_free] = NULL;
memset(&ch->dma.desc_base[ch->tx_free], 0,
@@ -203,7 +265,9 @@ ltq_etop_poll_tx(struct napi_struct *napi, int budget)
@@ -203,7 +265,9 @@ ltq_etop_poll_tx(struct napi_struct *nap
if (netif_tx_queue_stopped(txq))
netif_tx_start_queue(txq);
napi_complete(&ch->napi);
@ -215,7 +211,7 @@ index bfdb0686..cdc0c0e 100644
return IRQ_HANDLED;
}
@@ -225,7 +290,7 @@ ltq_etop_free_channel(struct net_device *dev, struct ltq_etop_chan *ch)
@@ -225,7 +290,7 @@ ltq_etop_free_channel(struct net_device
ltq_dma_free(&ch->dma);
if (ch->dma.irq)
free_irq(ch->dma.irq, priv);
@ -280,17 +276,17 @@ index bfdb0686..cdc0c0e 100644
struct ltq_etop_priv *priv = netdev_priv(dev);
- int i;
+ int mii_mode = priv->mii_mode;
+
+ clk_enable(priv->clk_ppe);
- ltq_pmu_enable(PMU_PPE);
+ clk_enable(priv->clk_ppe);
- switch (priv->pldata->mii_mode) {
+ if (of_machine_is_compatible("lantiq,ar9")) {
+ ltq_etop_gbit_init(dev);
+ /* force the etops link to the gbit to MII */
+ mii_mode = PHY_INTERFACE_MODE_MII;
+ }
- switch (priv->pldata->mii_mode) {
+
+ switch (mii_mode) {
case PHY_INTERFACE_MODE_RMII:
ltq_etop_w32_mask(ETOP_MII_MASK,
@ -386,7 +382,7 @@ index bfdb0686..cdc0c0e 100644
}
static void
@@ -312,7 +445,10 @@ ltq_etop_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
@@ -312,7 +445,10 @@ ltq_etop_get_settings(struct net_device
{
struct ltq_etop_priv *priv = netdev_priv(dev);
@ -398,7 +394,7 @@ index bfdb0686..cdc0c0e 100644
}
static int
@@ -320,7 +456,10 @@ ltq_etop_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
@@ -320,7 +456,10 @@ ltq_etop_set_settings(struct net_device
{
struct ltq_etop_priv *priv = netdev_priv(dev);
@ -410,7 +406,7 @@ index bfdb0686..cdc0c0e 100644
}
static int
@@ -328,7 +467,10 @@ ltq_etop_nway_reset(struct net_device *dev)
@@ -328,7 +467,10 @@ ltq_etop_nway_reset(struct net_device *d
{
struct ltq_etop_priv *priv = netdev_priv(dev);
@ -422,7 +418,7 @@ index bfdb0686..cdc0c0e 100644
}
static const struct ethtool_ops ltq_etop_ethtool_ops = {
@@ -339,6 +481,39 @@ static const struct ethtool_ops ltq_etop_ethtool_ops = {
@@ -339,6 +481,39 @@ static const struct ethtool_ops ltq_etop
};
static int
@ -462,18 +458,11 @@ index bfdb0686..cdc0c0e 100644
ltq_etop_mdio_wr(struct mii_bus *bus, int phy_addr, int phy_reg, u16 phy_data)
{
u32 val = MDIO_REQUEST |
@@ -379,14 +554,18 @@ ltq_etop_mdio_probe(struct net_device *dev)
@@ -379,14 +554,18 @@ ltq_etop_mdio_probe(struct net_device *d
{
struct ltq_etop_priv *priv = netdev_priv(dev);
struct phy_device *phydev = NULL;
- int phy_addr;
-
- for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
- if (priv->mii_bus->phy_map[phy_addr]) {
- phydev = priv->mii_bus->phy_map[phy_addr];
- break;
- }
- }
+ u32 phy_supported = (SUPPORTED_10baseT_Half
+ | SUPPORTED_10baseT_Full
+ | SUPPORTED_100baseT_Half
@ -481,7 +470,13 @@ index bfdb0686..cdc0c0e 100644
+ | SUPPORTED_Autoneg
+ | SUPPORTED_MII
+ | SUPPORTED_TP);
+
- for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
- if (priv->mii_bus->phy_map[phy_addr]) {
- phydev = priv->mii_bus->phy_map[phy_addr];
- break;
- }
- }
+ if (of_machine_is_compatible("lantiq,ase"))
+ phydev = priv->mii_bus->phy_map[8];
+ else
@ -489,7 +484,7 @@ index bfdb0686..cdc0c0e 100644
if (!phydev) {
netdev_err(dev, "no PHY found\n");
@@ -394,21 +573,18 @@ ltq_etop_mdio_probe(struct net_device *dev)
@@ -394,21 +573,18 @@ ltq_etop_mdio_probe(struct net_device *d
}
phydev = phy_connect(dev, dev_name(&phydev->dev),
@ -516,7 +511,7 @@ index bfdb0686..cdc0c0e 100644
phydev->advertising = phydev->supported;
priv->phydev = phydev;
pr_info("%s: attached PHY [%s] (phy_addr=%s, irq=%d)\n",
@@ -433,8 +609,13 @@ ltq_etop_mdio_init(struct net_device *dev)
@@ -433,8 +609,13 @@ ltq_etop_mdio_init(struct net_device *de
}
priv->mii_bus->priv = dev;
@ -572,6 +567,12 @@ index bfdb0686..cdc0c0e 100644
- phy_stop(priv->phydev);
- for (i = 0; i < MAX_DMA_CHAN; i++) {
- struct ltq_etop_chan *ch = &priv->ch[i];
-
- if (!IS_RX(i) && !IS_TX(i))
- continue;
- napi_disable(&ch->napi);
- ltq_dma_close(&ch->dma);
- }
+ if (priv->phydev)
+ phy_stop(priv->phydev);
+ napi_disable(&priv->txch.napi);
@ -581,16 +582,11 @@ index bfdb0686..cdc0c0e 100644
+ ltq_dma_close(&priv->txch.dma);
+ ltq_dma_close(&priv->rxch.dma);
+ spin_unlock_irqrestore(&priv->lock, flags);
- if (!IS_RX(i) && !IS_TX(i))
- continue;
- napi_disable(&ch->napi);
- ltq_dma_close(&ch->dma);
- }
+
return 0;
}
@@ -523,16 +707,16 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev)
@@ -523,16 +707,16 @@ ltq_etop_tx(struct sk_buff *skb, struct
int queue = skb_get_queue_mapping(skb);
struct netdev_queue *txq = netdev_get_tx_queue(dev, queue);
struct ltq_etop_priv *priv = netdev_priv(dev);
@ -612,7 +608,7 @@ index bfdb0686..cdc0c0e 100644
netdev_err(dev, "tx ring full\n");
netif_tx_stop_queue(txq);
return NETDEV_TX_BUSY;
@@ -540,7 +724,7 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev)
@@ -540,7 +724,7 @@ ltq_etop_tx(struct sk_buff *skb, struct
/* dma needs to start on a 16 byte aligned address */
byte_offset = CPHYSADDR(skb->data) % 16;
@ -621,7 +617,7 @@ index bfdb0686..cdc0c0e 100644
dev->trans_start = jiffies;
@@ -550,11 +734,11 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev)
@@ -550,11 +734,11 @@ ltq_etop_tx(struct sk_buff *skb, struct
wmb();
desc->ctl = LTQ_DMA_OWN | LTQ_DMA_SOP | LTQ_DMA_EOP |
LTQ_DMA_TX_OFFSET(byte_offset) | (len & LTQ_DMA_SIZE_MASK);
@ -682,7 +678,7 @@ index bfdb0686..cdc0c0e 100644
return 0;
err_netdev:
@@ -680,6 +863,9 @@ ltq_etop_tx_timeout(struct net_device *dev)
@@ -680,6 +863,9 @@ ltq_etop_tx_timeout(struct net_device *d
err = ltq_etop_hw_init(dev);
if (err)
goto err_hw;
@ -692,7 +688,7 @@ index bfdb0686..cdc0c0e 100644
dev->trans_start = jiffies;
netif_wake_queue(dev);
return;
@@ -703,14 +889,18 @@ static const struct net_device_ops ltq_eth_netdev_ops = {
@@ -703,14 +889,18 @@ static const struct net_device_ops ltq_e
.ndo_tx_timeout = ltq_etop_tx_timeout,
};
@ -715,7 +711,7 @@ index bfdb0686..cdc0c0e 100644
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
@@ -736,30 +926,58 @@ ltq_etop_probe(struct platform_device *pdev)
@@ -736,30 +926,58 @@ ltq_etop_probe(struct platform_device *p
goto err_out;
}
@ -789,7 +785,7 @@ index bfdb0686..cdc0c0e 100644
err = register_netdev(dev);
if (err)
@@ -788,32 +1006,23 @@ ltq_etop_remove(struct platform_device *pdev)
@@ -788,32 +1006,23 @@ ltq_etop_remove(struct platform_device *
return 0;
}
@ -831,6 +827,3 @@ index bfdb0686..cdc0c0e 100644
MODULE_AUTHOR("John Crispin <blogic@openwrt.org>");
MODULE_DESCRIPTION("Lantiq SoC ETOP");
--
1.7.10.4

@ -9,11 +9,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
include/linux/phy.h | 2 +-
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 38f0b31..ad64a75 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -773,7 +773,8 @@ void phy_state_machine(struct work_struct *work)
@@ -820,7 +820,8 @@ void phy_state_machine(struct work_struc
* negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
@ -23,7 +21,7 @@ index 38f0b31..ad64a75 100644
phydev->adjust_link(phydev->attached_dev);
break;
}
@@ -843,7 +844,8 @@ void phy_state_machine(struct work_struct *work)
@@ -890,7 +891,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev);
} else {
phydev->state = PHY_NOLINK;
@ -33,7 +31,7 @@ index 38f0b31..ad64a75 100644
}
phydev->adjust_link(phydev->attached_dev);
@@ -855,7 +857,8 @@ void phy_state_machine(struct work_struct *work)
@@ -902,7 +904,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
@ -43,8 +41,6 @@ index 38f0b31..ad64a75 100644
phydev->adjust_link(phydev->attached_dev);
}
break;
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 9e11039..9a8ca78 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -298,7 +298,7 @@ struct phy_device {
@ -56,6 +52,3 @@ index 9e11039..9a8ca78 100644
enum phy_state state;
u32 dev_flags;
--
1.7.10.4

@ -14,8 +14,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
include/linux/of_net.h | 1 +
2 files changed, 38 insertions(+)
diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
index ffab033..15f4a71 100644
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -10,6 +10,7 @@
@ -26,7 +24,7 @@ index ffab033..15f4a71 100644
/**
* It maps 'enum phy_interface_t' found in include/linux/phy.h
@@ -92,3 +93,39 @@ const void *of_get_mac_address(struct device_node *np)
@@ -92,3 +93,39 @@ const void *of_get_mac_address(struct de
return NULL;
}
EXPORT_SYMBOL(of_get_mac_address);
@ -66,8 +64,6 @@ index ffab033..15f4a71 100644
+ return ret;
+}
+EXPORT_SYMBOL_GPL(of_get_mac_address_mtd);
diff --git a/include/linux/of_net.h b/include/linux/of_net.h
index 61bf53b..6e6b4a9 100644
--- a/include/linux/of_net.h
+++ b/include/linux/of_net.h
@@ -11,6 +11,7 @@
@ -78,6 +74,3 @@ index 61bf53b..6e6b4a9 100644
#else
static inline const int of_get_phy_mode(struct device_node *np)
{
--
1.7.10.4

@ -17,8 +17,6 @@ Cc: linux-gpio@vger.kernel.org
3 files changed, 354 insertions(+)
create mode 100644 drivers/gpio/gpio-falcon.c
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 573c449..59b8764 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -135,6 +135,11 @@ config GPIO_EP93XX
@ -33,11 +31,9 @@ index 573c449..59b8764 100644
config GPIO_MM_LANTIQ
bool "Lantiq Memory mapped GPIOs"
depends on LANTIQ && SOC_XWAY
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 0cb2d65..542960d 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -24,6 +24,7 @@ obj-$(CONFIG_GPIO_DA9055) += gpio-da9055.o
@@ -24,6 +24,7 @@ obj-$(CONFIG_GPIO_DA9055) += gpio-da9055
obj-$(CONFIG_ARCH_DAVINCI) += gpio-davinci.o
obj-$(CONFIG_GPIO_EM) += gpio-em.o
obj-$(CONFIG_GPIO_EP93XX) += gpio-ep93xx.o
@ -45,9 +41,6 @@ index 0cb2d65..542960d 100644
obj-$(CONFIG_GPIO_GE_FPGA) += gpio-ge.o
obj-$(CONFIG_GPIO_GRGPIO) += gpio-grgpio.o
obj-$(CONFIG_GPIO_ICH) += gpio-ich.o
diff --git a/drivers/gpio/gpio-falcon.c b/drivers/gpio/gpio-falcon.c
new file mode 100644
index 0000000..ae3bdfb
--- /dev/null
+++ b/drivers/gpio/gpio-falcon.c
@@ -0,0 +1,348 @@
@ -399,6 +392,3 @@ index 0000000..ae3bdfb
+}
+
+subsys_initcall(falcon_gpio_init);
--
1.7.10.4

@ -14,8 +14,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
include/linux/gpio.h | 26 ++++++++-
5 files changed, 172 insertions(+), 12 deletions(-)
diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt
index d933af3..c264748 100644
--- a/Documentation/devicetree/bindings/gpio/gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio.txt
@@ -112,3 +112,63 @@ where,
@ -82,8 +80,6 @@ index d933af3..c264748 100644
+ gpio-export,output = <1>;
+ };
+};
diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
index 665f953..15ec5e5 100644
--- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c
@@ -21,6 +21,8 @@
@ -95,7 +91,7 @@ index 665f953..15ec5e5 100644
/* Private data structure for of_gpiochip_find_and_xlate */
struct gg_data {
@@ -242,3 +244,69 @@ void of_gpiochip_remove(struct gpio_chip *chip)
@@ -242,3 +244,69 @@ void of_gpiochip_remove(struct gpio_chip
if (chip->of_node)
of_node_put(chip->of_node);
}
@ -165,11 +161,9 @@ index 665f953..15ec5e5 100644
+ return platform_driver_probe(&gpio_export_driver, of_gpio_export_probe);
+}
+device_initcall(of_gpio_export_init);
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index c2534d6..8697c82 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -96,7 +96,7 @@ static int gpiod_get_value(const struct gpio_desc *desc);
@@ -96,7 +96,7 @@ static int gpiod_get_value(const struct
static void gpiod_set_value(struct gpio_desc *desc, int value);
static int gpiod_cansleep(const struct gpio_desc *desc);
static int gpiod_to_irq(const struct gpio_desc *desc);
@ -178,7 +172,7 @@ index c2534d6..8697c82 100644
static int gpiod_export_link(struct device *dev, const char *name,
struct gpio_desc *desc);
static int gpiod_sysfs_set_active_low(struct gpio_desc *desc, int value);
@@ -674,7 +674,7 @@ static ssize_t export_store(struct class *class,
@@ -674,7 +674,7 @@ static ssize_t export_store(struct class
status = -ENODEV;
goto done;
}
@ -208,7 +202,7 @@ index c2534d6..8697c82 100644
{
unsigned long flags;
int status;
@@ -783,6 +784,8 @@ static int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
@@ -783,6 +784,8 @@ static int gpiod_export(struct gpio_desc
goto fail_unlock;
}
@ -232,7 +226,7 @@ index c2534d6..8697c82 100644
static int match_export(struct device *dev, const void *data)
{
@@ -1092,7 +1095,7 @@ static inline void gpiochip_unexport(struct gpio_chip *chip)
@@ -1092,7 +1095,7 @@ static inline void gpiochip_unexport(str
}
static inline int gpiod_export(struct gpio_desc *desc,
@ -241,7 +235,7 @@ index c2534d6..8697c82 100644
{
return -ENOSYS;
}
@@ -1521,6 +1524,9 @@ int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
@@ -1521,6 +1524,9 @@ int gpio_request_one(unsigned gpio, unsi
if (flags & GPIOF_OPEN_SOURCE)
set_bit(FLAG_OPEN_SOURCE, &desc->flags);
@ -251,7 +245,7 @@ index c2534d6..8697c82 100644
if (flags & GPIOF_DIR_IN)
err = gpiod_direction_input(desc);
else
@@ -1531,7 +1537,7 @@ int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
@@ -1531,7 +1537,7 @@ int gpio_request_one(unsigned gpio, unsi
goto free_gpio;
if (flags & GPIOF_EXPORT) {
@ -260,11 +254,9 @@ index c2534d6..8697c82 100644
if (err)
goto free_gpio;
}
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h
index bde6469..3290572 100644
--- a/include/asm-generic/gpio.h
+++ b/include/asm-generic/gpio.h
@@ -202,7 +202,8 @@ extern void gpio_free_array(const struct gpio *array, size_t num);
@@ -202,7 +202,8 @@ extern void gpio_free_array(const struct
* A sysfs interface can be exported by individual drivers if they want,
* but more typically is configured entirely from userspace.
*/
@ -284,8 +276,6 @@ index bde6469..3290572 100644
{
return -ENOSYS;
}
diff --git a/include/linux/gpio.h b/include/linux/gpio.h
index 552e3f4..07bbbcc7 100644
--- a/include/linux/gpio.h
+++ b/include/linux/gpio.h
@@ -27,6 +27,9 @@
@ -298,7 +288,7 @@ index 552e3f4..07bbbcc7 100644
/**
* struct gpio - a structure describing a GPIO with configuration
* @gpio: the GPIO number
@@ -169,7 +172,8 @@ static inline void gpio_set_value_cansleep(unsigned gpio, int value)
@@ -169,7 +172,8 @@ static inline void gpio_set_value_cansle
WARN_ON(1);
}
@ -308,7 +298,7 @@ index 552e3f4..07bbbcc7 100644
{
/* GPIO can never have been requested or set as {in,out}put */
WARN_ON(1);
@@ -236,4 +240,24 @@ int devm_gpio_request_one(struct device *dev, unsigned gpio,
@@ -236,4 +240,24 @@ int devm_gpio_request_one(struct device
unsigned long flags, const char *label);
void devm_gpio_free(struct device *dev, unsigned int gpio);
@ -333,6 +323,3 @@ index 552e3f4..07bbbcc7 100644
+}
+
#endif /* __LINUX_GPIO_H */
--
1.7.10.4

@ -10,11 +10,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/pinctrl/pinctrl-xway.c | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c
index e92132c..e40b2e6 100644
--- a/drivers/pinctrl/pinctrl-xway.c
+++ b/drivers/pinctrl/pinctrl-xway.c
@@ -564,10 +564,9 @@ static struct pinctrl_desc xway_pctrl_desc = {
@@ -564,10 +564,9 @@ static struct pinctrl_desc xway_pctrl_de
.confops = &xway_pinconf_ops,
};
@ -26,7 +24,7 @@ index e92132c..e40b2e6 100644
int port = PORT(pin);
u32 alt1_reg = GPIO_ALT1(pin);
@@ -587,6 +586,14 @@ static inline int xway_mux_apply(struct pinctrl_dev *pctrldev,
@@ -587,6 +586,14 @@ static inline int xway_mux_apply(struct
return 0;
}
@ -41,7 +39,7 @@ index e92132c..e40b2e6 100644
static const struct ltq_cfg_param xway_cfg_params[] = {
{"lantiq,pull", LTQ_PINCONF_PARAM_PULL},
{"lantiq,open-drain", LTQ_PINCONF_PARAM_OPEN_DRAIN},
@@ -631,6 +638,10 @@ static int xway_gpio_dir_out(struct gpio_chip *chip, unsigned int pin, int val)
@@ -631,6 +638,10 @@ static int xway_gpio_dir_out(struct gpio
{
struct ltq_pinmux_info *info = dev_get_drvdata(chip->dev);
@ -52,7 +50,7 @@ index e92132c..e40b2e6 100644
gpio_setbit(info->membase[0], GPIO_DIR(pin), PORT_PIN(pin));
xway_gpio_set(chip, pin, val);
@@ -651,6 +662,18 @@ static void xway_gpio_free(struct gpio_chip *chip, unsigned offset)
@@ -651,6 +662,18 @@ static void xway_gpio_free(struct gpio_c
pinctrl_free_gpio(gpio);
}
@ -79,6 +77,3 @@ index e92132c..e40b2e6 100644
.base = -1,
};
--
1.7.10.4

@ -10,8 +10,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/pinctrl/pinctrl-xway.c | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c
index e40b2e6..b159fd5 100644
--- a/drivers/pinctrl/pinctrl-xway.c
+++ b/drivers/pinctrl/pinctrl-xway.c
@@ -102,6 +102,7 @@ enum xway_mux {
@ -22,7 +20,7 @@ index e40b2e6..b159fd5 100644
XWAY_MUX_NONE = 0xffff,
};
@@ -109,12 +110,12 @@ static const struct ltq_mfp_pin xway_mfp[] = {
@@ -109,12 +110,12 @@ static const struct ltq_mfp_pin xway_mfp
/* pin f0 f1 f2 f3 */
MFP_XWAY(GPIO0, GPIO, EXIN, NONE, TDM),
MFP_XWAY(GPIO1, GPIO, EXIN, NONE, NONE),
@ -38,7 +36,7 @@ index e40b2e6..b159fd5 100644
MFP_XWAY(GPIO8, GPIO, CGU, NMI, NONE),
MFP_XWAY(GPIO9, GPIO, ASC, SPI, EXIN),
MFP_XWAY(GPIO10, GPIO, ASC, SPI, NONE),
@@ -151,10 +152,10 @@ static const struct ltq_mfp_pin xway_mfp[] = {
@@ -151,10 +152,10 @@ static const struct ltq_mfp_pin xway_mfp
MFP_XWAY(GPIO41, GPIO, NONE, NONE, NONE),
MFP_XWAY(GPIO42, GPIO, MDIO, NONE, NONE),
MFP_XWAY(GPIO43, GPIO, MDIO, NONE, NONE),
@ -52,7 +50,7 @@ index e40b2e6..b159fd5 100644
MFP_XWAY(GPIO48, GPIO, EBU, NONE, NONE),
MFP_XWAY(GPIO49, GPIO, EBU, NONE, NONE),
MFP_XWAY(GPIO50, GPIO, NONE, NONE, NONE),
@@ -208,6 +209,13 @@ static const unsigned pins_stp[] = {GPIO4, GPIO5, GPIO6};
@@ -208,6 +209,13 @@ static const unsigned pins_stp[] = {GPIO
static const unsigned pins_nmi[] = {GPIO8};
static const unsigned pins_mdio[] = {GPIO42, GPIO43};
@ -66,7 +64,7 @@ index e40b2e6..b159fd5 100644
static const unsigned pins_ebu_a24[] = {GPIO13};
static const unsigned pins_ebu_clk[] = {GPIO21};
static const unsigned pins_ebu_cs1[] = {GPIO23};
@@ -322,6 +330,12 @@ static const struct ltq_pin_group xway_grps[] = {
@@ -322,6 +330,12 @@ static const struct ltq_pin_group xway_g
GRP_MUX("gnt4", PCI, pins_pci_gnt4),
GRP_MUX("req4", PCI, pins_pci_gnt4),
GRP_MUX("mdio", MDIO, pins_mdio),
@ -79,7 +77,7 @@ index e40b2e6..b159fd5 100644
};
static const struct ltq_pin_group ase_grps[] = {
@@ -365,6 +379,9 @@ static const char * const xway_nmi_grps[] = {"nmi"};
@@ -365,6 +379,9 @@ static const char * const xway_nmi_grps[
/* ar9/vr9/gr9 */
static const char * const xrx_mdio_grps[] = {"mdio"};
@ -89,7 +87,7 @@ index e40b2e6..b159fd5 100644
static const char * const xrx_ebu_grps[] = {"ebu a23", "ebu a24",
"ebu a25", "ebu cs1",
"ebu wait", "ebu clk",
@@ -414,6 +431,7 @@ static const struct ltq_pmx_func xrx_funcs[] = {
@@ -414,6 +431,7 @@ static const struct ltq_pmx_func xrx_fun
{"pci", ARRAY_AND_SIZE(xrx_pci_grps)},
{"ebu", ARRAY_AND_SIZE(xrx_ebu_grps)},
{"mdio", ARRAY_AND_SIZE(xrx_mdio_grps)},
@ -97,6 +95,3 @@ index e40b2e6..b159fd5 100644
};
static const struct ltq_pmx_func ase_funcs[] = {
--
1.7.10.4

@ -12,8 +12,6 @@ Acked-by: John Crispin <blogic@openwrt.org>
drivers/pinctrl/pinctrl-falcon.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-falcon.c b/drivers/pinctrl/pinctrl-falcon.c
index f9b2a1d..4e731f2 100644
--- a/drivers/pinctrl/pinctrl-falcon.c
+++ b/drivers/pinctrl/pinctrl-falcon.c
@@ -75,6 +75,7 @@ enum falcon_mux {
@ -24,7 +22,7 @@ index f9b2a1d..4e731f2 100644
FALCON_MUX_MDIO,
FALCON_MUX_LED,
FALCON_MUX_SPI,
@@ -114,7 +115,7 @@ static struct ltq_mfp_pin falcon_mfp[] = {
@@ -114,7 +115,7 @@ static struct ltq_mfp_pin falcon_mfp[] =
MFP_FALCON(GPIO2, GPIO, GPIO, NONE, NONE),
MFP_FALCON(GPIO3, GPIO, GPIO, NONE, NONE),
MFP_FALCON(GPIO4, NTR, GPIO, NONE, NONE),
@ -33,7 +31,7 @@ index f9b2a1d..4e731f2 100644
MFP_FALCON(GPIO6, RST, GPIO, NONE, NONE),
MFP_FALCON(GPIO7, MDIO, GPIO, NONE, NONE),
MFP_FALCON(GPIO8, MDIO, GPIO, NONE, NONE),
@@ -168,6 +169,7 @@ static struct ltq_mfp_pin falcon_mfp[] = {
@@ -168,6 +169,7 @@ static struct ltq_mfp_pin falcon_mfp[] =
static const unsigned pins_por[] = {GPIO0};
static const unsigned pins_ntr[] = {GPIO4};
static const unsigned pins_ntr8k[] = {GPIO5};
@ -41,7 +39,7 @@ index f9b2a1d..4e731f2 100644
static const unsigned pins_hrst[] = {GPIO6};
static const unsigned pins_mdio[] = {GPIO7, GPIO8};
static const unsigned pins_bled[] = {GPIO9, GPIO10, GPIO11,
@@ -186,6 +188,7 @@ static struct ltq_pin_group falcon_grps[] = {
@@ -186,6 +188,7 @@ static struct ltq_pin_group falcon_grps[
GRP_MUX("por", RST, pins_por),
GRP_MUX("ntr", NTR, pins_ntr),
GRP_MUX("ntr8k", NTR, pins_ntr8k),
@ -49,7 +47,7 @@ index f9b2a1d..4e731f2 100644
GRP_MUX("hrst", RST, pins_hrst),
GRP_MUX("mdio", MDIO, pins_mdio),
GRP_MUX("bootled", LED, pins_bled),
@@ -201,7 +204,7 @@ static struct ltq_pin_group falcon_grps[] = {
@@ -201,7 +204,7 @@ static struct ltq_pin_group falcon_grps[
};
static const char * const ltq_rst_grps[] = {"por", "hrst"};
@ -58,6 +56,3 @@ index f9b2a1d..4e731f2 100644
static const char * const ltq_mdio_grps[] = {"mdio"};
static const char * const ltq_bled_grps[] = {"bootled"};
static const char * const ltq_asc_grps[] = {"asc0", "asc1"};
--
1.7.10.4

@ -11,11 +11,9 @@ Acked-by: John Crispin <blogic@openwrt.org>
drivers/tty/serial/lantiq.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/tty/serial/lantiq.c b/drivers/tty/serial/lantiq.c
index 15733da..93ac046 100644
--- a/drivers/tty/serial/lantiq.c
+++ b/drivers/tty/serial/lantiq.c
@@ -636,6 +636,9 @@ lqasc_console_setup(struct console *co, char *options)
@@ -636,6 +636,9 @@ lqasc_console_setup(struct console *co,
port = &ltq_port->port;
@ -25,6 +23,3 @@ index 15733da..93ac046 100644
port->uartclk = clk_get_rate(ltq_port->fpiclk);
if (options)
--
1.7.10.4

@ -10,8 +10,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/tty/serial/lantiq.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/lantiq.c b/drivers/tty/serial/lantiq.c
index 93ac046..88d01e0 100644
--- a/drivers/tty/serial/lantiq.c
+++ b/drivers/tty/serial/lantiq.c
@@ -318,7 +318,7 @@ lqasc_startup(struct uart_port *port)
@ -32,6 +30,3 @@ index 93ac046..88d01e0 100644
clk_disable(ltq_port->clk);
}
--
1.7.10.4

@ -16,11 +16,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
create mode 100644 drivers/i2c/busses/i2c-lantiq.c
create mode 100644 drivers/i2c/busses/i2c-lantiq.h
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 631736e..0f0522b 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -494,6 +494,16 @@ config I2C_IOP3XX
@@ -495,6 +495,16 @@ config I2C_IOP3XX
This driver can also be built as a module. If so, the module
will be called i2c-iop3xx.
@ -37,11 +35,9 @@ index 631736e..0f0522b 100644
config I2C_MPC
tristate "MPC107/824x/85xx/512x/52xx/83xx/86xx"
depends on PPC
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 8f4fc23..3273061 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -48,6 +48,7 @@ obj-$(CONFIG_I2C_IBM_IIC) += i2c-ibm_iic.o
@@ -48,6 +48,7 @@ obj-$(CONFIG_I2C_IBM_IIC) += i2c-ibm_iic
obj-$(CONFIG_I2C_IMX) += i2c-imx.o
obj-$(CONFIG_I2C_INTEL_MID) += i2c-intel-mid.o
obj-$(CONFIG_I2C_IOP3XX) += i2c-iop3xx.o
@ -49,9 +45,6 @@ index 8f4fc23..3273061 100644
obj-$(CONFIG_I2C_MPC) += i2c-mpc.o
obj-$(CONFIG_I2C_MV64XXX) += i2c-mv64xxx.o
obj-$(CONFIG_I2C_MXS) += i2c-mxs.o
diff --git a/drivers/i2c/busses/i2c-lantiq.c b/drivers/i2c/busses/i2c-lantiq.c
new file mode 100644
index 0000000..9a5f58b
--- /dev/null
+++ b/drivers/i2c/busses/i2c-lantiq.c
@@ -0,0 +1,747 @@
@ -802,9 +795,6 @@ index 0000000..9a5f58b
+MODULE_ALIAS("platform:" DRV_NAME);
+MODULE_LICENSE("GPL");
+MODULE_VERSION(DRV_VERSION);
diff --git a/drivers/i2c/busses/i2c-lantiq.h b/drivers/i2c/busses/i2c-lantiq.h
new file mode 100644
index 0000000..7a86b89
--- /dev/null
+++ b/drivers/i2c/busses/i2c-lantiq.h
@@ -0,0 +1,234 @@
@ -1042,6 +1032,3 @@ index 0000000..7a86b89
+
+
+#endif /* I2C_LANTIQ_H */
--
1.7.10.4

@ -8,8 +8,6 @@ Subject: [PATCH 32/34] USB: fix roothub for IFXHCD
drivers/usb/core/hub.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/mips/lantiq/Kconfig b/arch/mips/lantiq/Kconfig
index 1621b1d..4c9a241 100644
--- a/arch/mips/lantiq/Kconfig
+++ b/arch/mips/lantiq/Kconfig
@@ -3,6 +3,7 @@ if LANTIQ
@ -20,11 +18,9 @@ index 1621b1d..4c9a241 100644
default n
choice
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index feef935..db4fb8e 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -4009,7 +4009,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
@@ -4041,7 +4041,7 @@ hub_port_init (struct usb_hub *hub, stru
udev->ttport = hdev->ttport;
} else if (udev->speed != USB_SPEED_HIGH
&& hdev->speed == USB_SPEED_HIGH) {
@ -33,6 +29,3 @@ index feef935..db4fb8e 100644
dev_err(&udev->dev, "parent hub has no TT\n");
retval = -EINVAL;
goto fail;
--
1.7.10.4

@ -16,11 +16,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
3 files changed, 986 insertions(+)
create mode 100644 drivers/spi/spi-xway.c
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index 92a9345..954c19f 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -487,6 +487,14 @@ config SPI_NUC900
@@ -496,6 +496,14 @@ config SPI_NUC900
help
SPI driver for Nuvoton NUC900 series ARM SoCs
@ -35,18 +33,13 @@ index 92a9345..954c19f 100644
#
# Add new SPI master controllers in alphabetical order above this line
#
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index 33f9c09..0574edf 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -74,3 +74,4 @@ obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-topcliff-pch.o
@@ -75,3 +75,4 @@ obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-t
obj-$(CONFIG_SPI_TXX9) += spi-txx9.o
obj-$(CONFIG_SPI_XCOMM) += spi-xcomm.o
obj-$(CONFIG_SPI_XILINX) += spi-xilinx.o
+obj-$(CONFIG_SPI_XWAY) += spi-xway.o
diff --git a/drivers/spi/spi-xway.c b/drivers/spi/spi-xway.c
new file mode 100644
index 0000000..61532e3
--- /dev/null
+++ b/drivers/spi/spi-xway.c
@@ -0,0 +1,977 @@
@ -1027,6 +1020,3 @@ index 0000000..61532e3
+MODULE_AUTHOR("Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:spi-xway");
--
1.7.10.4

@ -17,8 +17,6 @@ Cc: Gabor Juhos <juhosg@openwrt.org>
include/linux/reset.h | 43 ++++++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+)
diff --git a/include/linux/reset-controller.h b/include/linux/reset-controller.h
index 2f61311..068f073 100644
--- a/include/linux/reset-controller.h
+++ b/include/linux/reset-controller.h
@@ -45,7 +45,23 @@ struct reset_controller_dev {
@ -45,8 +43,6 @@ index 2f61311..068f073 100644
+#endif
+
#endif
diff --git a/include/linux/reset.h b/include/linux/reset.h
index 6082247..1b36c9e 100644
--- a/include/linux/reset.h
+++ b/include/linux/reset.h
@@ -1,9 +1,13 @@
@ -63,7 +59,7 @@ index 6082247..1b36c9e 100644
int reset_control_reset(struct reset_control *rstc);
int reset_control_assert(struct reset_control *rstc);
int reset_control_deassert(struct reset_control *rstc);
@@ -14,4 +18,43 @@ struct reset_control *devm_reset_control_get(struct device *dev, const char *id)
@@ -14,4 +18,43 @@ struct reset_control *devm_reset_control
int device_reset(struct device *dev);
@ -107,6 +103,3 @@ index 6082247..1b36c9e 100644
+#endif
+
#endif
--
1.7.10.4

@ -12,9 +12,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
create mode 100644 arch/mips/include/asm/mach-lantiq/lantiq_timer.h
create mode 100644 arch/mips/lantiq/xway/timer.c
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq_timer.h b/arch/mips/include/asm/mach-lantiq/lantiq_timer.h
new file mode 100644
index 0000000..ef564ab
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/lantiq_timer.h
@@ -0,0 +1,155 @@
@ -173,19 +170,14 @@ index 0000000..ef564ab
+ u32 reload, unsigned long arg1, unsigned long arg2);
+
+#endif /* __DANUBE_GPTU_DEV_H__2005_07_26__10_19__ */
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index a2edc53..da51fe0 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,4 +1,4 @@
-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
obj-y += vmmc.o mtd_split.o
diff --git a/arch/mips/lantiq/xway/timer.c b/arch/mips/lantiq/xway/timer.c
new file mode 100644
index 0000000..1c0fdb8
--- /dev/null
+++ b/arch/mips/lantiq/xway/timer.c
@@ -0,0 +1,845 @@
@ -1034,6 +1026,3 @@ index 0000000..1c0fdb8
+module_exit(lq_gptu_exit);
+
+#endif
--
1.7.10.4

@ -17,7 +17,7 @@ Cc: linux-mips@linux-mips.org
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -1104,6 +1104,13 @@ config LANTIQ_WDT
@@ -1113,6 +1113,13 @@ config LANTIQ_WDT
help
Hardware driver for the Lantiq SoC Watchdog Timer.
@ -33,7 +33,7 @@ Cc: linux-mips@linux-mips.org
# POWERPC Architecture
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -134,6 +134,7 @@ obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
@@ -135,6 +135,7 @@ obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
obj-$(CONFIG_OCTEON_WDT) += octeon-wdt.o
octeon-wdt-y := octeon-wdt-main.o octeon-wdt-nmi.o
obj-$(CONFIG_LANTIQ_WDT) += lantiq_wdt.o

@ -19,11 +19,9 @@ Cc: linux-gpio@vger.kernel.org
create mode 100644 arch/mips/include/asm/mach-ralink/gpio.h
create mode 100644 drivers/gpio/gpio-ralink.c
Index: linux-3.10.9/arch/mips/Kconfig
===================================================================
--- linux-3.10.9.orig/arch/mips/Kconfig 2013-08-26 17:48:27.481164281 +0200
+++ linux-3.10.9/arch/mips/Kconfig 2013-08-27 23:15:40.751965869 +0200
@@ -444,6 +444,7 @@
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -444,6 +444,7 @@ config RALINK
select SYS_HAS_EARLY_PRINTK
select HAVE_MACH_CLKDEV
select CLKDEV_LOOKUP
@ -31,10 +29,8 @@ Index: linux-3.10.9/arch/mips/Kconfig
config SGI_IP22
bool "SGI IP22 (Indy/Indigo2)"
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/gpio.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.10.9/arch/mips/include/asm/mach-ralink/gpio.h 2013-08-26 17:48:30.941164428 +0200
--- /dev/null
+++ b/arch/mips/include/asm/mach-ralink/gpio.h
@@ -0,0 +1,24 @@
+/*
+ * Ralink SoC GPIO API support
@ -60,11 +56,9 @@ Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/gpio.h
+#define gpio_to_irq __gpio_to_irq
+
+#endif /* __ASM_MACH_RALINK_GPIO_H */
Index: linux-3.10.9/drivers/gpio/Kconfig
===================================================================
--- linux-3.10.9.orig/drivers/gpio/Kconfig 2013-08-21 00:40:47.000000000 +0200
+++ linux-3.10.9/drivers/gpio/Kconfig 2013-08-26 17:48:30.941164428 +0200
@@ -209,6 +209,12 @@
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -209,6 +209,12 @@ config GPIO_RCAR
help
Say yes here to support GPIO on Renesas R-Car SoCs.
@ -77,11 +71,9 @@ Index: linux-3.10.9/drivers/gpio/Kconfig
config GPIO_SPEAR_SPICS
bool "ST SPEAr13xx SPI Chip Select as GPIO support"
depends on PLAT_SPEAR
Index: linux-3.10.9/drivers/gpio/Makefile
===================================================================
--- linux-3.10.9.orig/drivers/gpio/Makefile 2013-08-21 00:40:47.000000000 +0200
+++ linux-3.10.9/drivers/gpio/Makefile 2013-08-26 17:48:30.941164428 +0200
@@ -56,6 +56,7 @@
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -56,6 +56,7 @@ obj-$(CONFIG_GPIO_PCF857X) += gpio-pcf85
obj-$(CONFIG_GPIO_PCH) += gpio-pch.o
obj-$(CONFIG_GPIO_PL061) += gpio-pl061.o
obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o
@ -89,10 +81,8 @@ Index: linux-3.10.9/drivers/gpio/Makefile
obj-$(CONFIG_GPIO_RC5T583) += gpio-rc5t583.o
obj-$(CONFIG_GPIO_RDC321X) += gpio-rdc321x.o
obj-$(CONFIG_GPIO_RCAR) += gpio-rcar.o
Index: linux-3.10.9/drivers/gpio/gpio-ralink.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.10.9/drivers/gpio/gpio-ralink.c 2013-08-27 22:37:34.999868257 +0200
--- /dev/null
+++ b/drivers/gpio/gpio-ralink.c
@@ -0,0 +1,345 @@
+/*
+ * This program is free software; you can redistribute it and/or modify it

@ -14,11 +14,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
6 files changed, 385 insertions(+), 19 deletions(-)
create mode 100644 drivers/pinctrl/pinctrl-rt2880.c
Index: linux-3.10.9/arch/mips/Kconfig
===================================================================
--- linux-3.10.9.orig/arch/mips/Kconfig 2013-08-28 16:34:42.449951676 +0200
+++ linux-3.10.9/arch/mips/Kconfig 2013-08-28 16:34:43.361951711 +0200
@@ -446,6 +446,8 @@
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -446,6 +446,8 @@ config RALINK
select HAVE_MACH_CLKDEV
select CLKDEV_LOOKUP
select ARCH_REQUIRE_GPIOLIB
@ -27,11 +25,9 @@ Index: linux-3.10.9/arch/mips/Kconfig
config SGI_IP22
bool "SGI IP22 (Indy/Indigo2)"
Index: linux-3.10.9/drivers/pinctrl/Kconfig
===================================================================
--- linux-3.10.9.orig/drivers/pinctrl/Kconfig 2013-08-21 00:40:47.000000000 +0200
+++ linux-3.10.9/drivers/pinctrl/Kconfig 2013-08-28 16:34:43.361951711 +0200
@@ -114,6 +114,11 @@
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -114,6 +114,11 @@ config PINCTRL_LANTIQ
select PINMUX
select PINCONF
@ -43,11 +39,9 @@ Index: linux-3.10.9/drivers/pinctrl/Kconfig
config PINCTRL_FALCON
bool
depends on SOC_FALCON
Index: linux-3.10.9/drivers/pinctrl/Makefile
===================================================================
--- linux-3.10.9.orig/drivers/pinctrl/Makefile 2013-08-21 00:40:47.000000000 +0200
+++ linux-3.10.9/drivers/pinctrl/Makefile 2013-08-28 16:34:43.361951711 +0200
@@ -45,6 +45,7 @@
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -45,6 +45,7 @@ obj-$(CONFIG_PINCTRL_EXYNOS5440) += pinc
obj-$(CONFIG_PINCTRL_S3C64XX) += pinctrl-s3c64xx.o
obj-$(CONFIG_PINCTRL_XWAY) += pinctrl-xway.o
obj-$(CONFIG_PINCTRL_LANTIQ) += pinctrl-lantiq.o
@ -55,10 +49,8 @@ Index: linux-3.10.9/drivers/pinctrl/Makefile
obj-$(CONFIG_PLAT_ORION) += mvebu/
obj-$(CONFIG_ARCH_SHMOBILE) += sh-pfc/
Index: linux-3.10.9/drivers/pinctrl/pinctrl-rt2880.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.10.9/drivers/pinctrl/pinctrl-rt2880.c 2013-08-28 16:34:43.361951711 +0200
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-rt2880.c
@@ -0,0 +1,456 @@
+/*
+ * linux/drivers/pinctrl/pinctrl-rt2880.c
@ -516,10 +508,8 @@ Index: linux-3.10.9/drivers/pinctrl/pinctrl-rt2880.c
+}
+
+core_initcall_sync(rt2880_pinmux_init);
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/pinmux.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.10.9/arch/mips/include/asm/mach-ralink/pinmux.h 2013-08-28 16:34:43.361951711 +0200
--- /dev/null
+++ b/arch/mips/include/asm/mach-ralink/pinmux.h
@@ -0,0 +1,47 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
@ -568,10 +558,8 @@ Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/pinmux.h
+extern struct rt2880_pmx_group *rt2880_pinmux_data;
+
+#endif
Index: linux-3.10.9/arch/mips/ralink/mt7620.c
===================================================================
--- linux-3.10.9.orig/arch/mips/ralink/mt7620.c 2013-08-28 16:34:42.829951688 +0200
+++ linux-3.10.9/arch/mips/ralink/mt7620.c 2013-08-28 16:34:43.361951711 +0200
--- a/arch/mips/ralink/mt7620.c
+++ b/arch/mips/ralink/mt7620.c
@@ -17,6 +17,7 @@
#include <asm/mipsregs.h>
#include <asm/mach-ralink/ralink_regs.h>
@ -580,7 +568,7 @@ Index: linux-3.10.9/arch/mips/ralink/mt7620.c
#include "common.h"
@@ -48,118 +49,40 @@
@@ -48,118 +49,40 @@ static int dram_type;
/* the pll dividers */
static u32 mt7620_clk_divider[] = { 2, 3, 4, 8 };
@ -732,17 +720,15 @@ Index: linux-3.10.9/arch/mips/ralink/mt7620.c
};
void __init ralink_clk_init(void)
@@ -281,4 +204,6 @@
@@ -281,4 +204,6 @@ void prom_soc_init(struct ralink_soc_inf
(pmu0 & PMU_SW_SET) ? ("sw") : ("hw"));
pr_info("Digital PMU set to %s control\n",
(pmu1 & DIG_SW_SEL) ? ("sw") : ("hw"));
+
+ rt2880_pinmux_data = mt7620a_pinmux_data;
}
Index: linux-3.10.9/arch/mips/ralink/rt305x.c
===================================================================
--- linux-3.10.9.orig/arch/mips/ralink/rt305x.c 2013-08-28 16:34:43.061951698 +0200
+++ linux-3.10.9/arch/mips/ralink/rt305x.c 2013-08-28 16:34:43.365951713 +0200
--- a/arch/mips/ralink/rt305x.c
+++ b/arch/mips/ralink/rt305x.c
@@ -17,90 +17,71 @@
#include <asm/mipsregs.h>
#include <asm/mach-ralink/ralink_regs.h>
@ -892,7 +878,7 @@ Index: linux-3.10.9/arch/mips/ralink/rt305x.c
};
static void rt305x_wdt_reset(void)
@@ -114,14 +95,6 @@
@@ -114,14 +95,6 @@ static void rt305x_wdt_reset(void)
rt_sysc_w32(t, SYSC_REG_SYSTEM_CONFIG);
}
@ -907,7 +893,7 @@ Index: linux-3.10.9/arch/mips/ralink/rt305x.c
static unsigned long rt5350_get_mem_size(void)
{
void __iomem *sysc = (void __iomem *) KSEG1ADDR(RT305X_SYSC_BASE);
@@ -291,11 +264,14 @@
@@ -291,11 +264,14 @@ void prom_soc_init(struct ralink_soc_inf
soc_info->mem_base = RT305X_SDRAM_BASE;
if (soc_is_rt5350()) {
soc_info->mem_size = rt5350_get_mem_size();
@ -922,11 +908,9 @@ Index: linux-3.10.9/arch/mips/ralink/rt305x.c
+ rt2880_pinmux_data = rt3352_pinmux_data;
}
}
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/rt305x.h
===================================================================
--- linux-3.10.9.orig/arch/mips/include/asm/mach-ralink/rt305x.h 2013-08-21 00:40:47.000000000 +0200
+++ linux-3.10.9/arch/mips/include/asm/mach-ralink/rt305x.h 2013-08-28 16:34:43.365951713 +0200
@@ -125,24 +125,28 @@
--- a/arch/mips/include/asm/mach-ralink/rt305x.h
+++ b/arch/mips/include/asm/mach-ralink/rt305x.h
@@ -125,24 +125,28 @@ static inline int soc_is_rt5350(void)
#define RT305X_GPIO_GE0_TXD0 40
#define RT305X_GPIO_GE0_RXCLK 51
@ -970,10 +954,8 @@ Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/rt305x.h
#define RT3352_SYSC_REG_SYSCFG0 0x010
#define RT3352_SYSC_REG_SYSCFG1 0x014
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/mt7620.h
===================================================================
--- linux-3.10.9.orig/arch/mips/include/asm/mach-ralink/mt7620.h 2013-08-28 16:34:42.625951682 +0200
+++ linux-3.10.9/arch/mips/include/asm/mach-ralink/mt7620.h 2013-08-28 18:32:38.370254386 +0200
--- a/arch/mips/include/asm/mach-ralink/mt7620.h
+++ b/arch/mips/include/asm/mach-ralink/mt7620.h
@@ -59,7 +59,6 @@
#define MT7620_DDR2_SIZE_MIN 32
#define MT7620_DDR2_SIZE_MAX 256
@ -1010,10 +992,8 @@ Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/mt7620.h
+#define MT7620_GPIO_MODE_WDT 22
#endif
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/rt3883.h
===================================================================
--- linux-3.10.9.orig/arch/mips/include/asm/mach-ralink/rt3883.h 2013-08-21 00:40:47.000000000 +0200
+++ linux-3.10.9/arch/mips/include/asm/mach-ralink/rt3883.h 2013-08-28 18:33:57.554258201 +0200
--- a/arch/mips/include/asm/mach-ralink/rt3883.h
+++ b/arch/mips/include/asm/mach-ralink/rt3883.h
@@ -112,8 +112,6 @@
#define RT3883_CLKCFG1_PCI_CLK_EN BIT(19)
#define RT3883_CLKCFG1_UPHY0_CLK_EN BIT(18)
@ -1044,10 +1024,8 @@ Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/rt3883.h
#define RT3883_GPIO_MODE_PCI_SHIFT 11
#define RT3883_GPIO_MODE_PCI_MASK 0x7
#define RT3883_GPIO_MODE_PCI (RT3883_GPIO_MODE_PCI_MASK << RT3883_GPIO_MODE_PCI_SHIFT)
Index: linux-3.10.9/arch/mips/ralink/common.h
===================================================================
--- linux-3.10.9.orig/arch/mips/ralink/common.h 2013-08-28 16:34:42.453951675 +0200
+++ linux-3.10.9/arch/mips/ralink/common.h 2013-08-28 18:10:55.014197854 +0200
--- a/arch/mips/ralink/common.h
+++ b/arch/mips/ralink/common.h
@@ -11,25 +11,6 @@
#define RAMIPS_SYS_TYPE_LEN 32
@ -1074,10 +1052,8 @@ Index: linux-3.10.9/arch/mips/ralink/common.h
struct ralink_soc_info {
unsigned char sys_type[RAMIPS_SYS_TYPE_LEN];
unsigned char *compatible;
Index: linux-3.10.9/arch/mips/ralink/rt3883.c
===================================================================
--- linux-3.10.9.orig/arch/mips/ralink/rt3883.c 2013-08-21 00:40:47.000000000 +0200
+++ linux-3.10.9/arch/mips/ralink/rt3883.c 2013-08-28 18:47:07.442290690 +0200
--- a/arch/mips/ralink/rt3883.c
+++ b/arch/mips/ralink/rt3883.c
@@ -17,132 +17,50 @@
#include <asm/mipsregs.h>
#include <asm/mach-ralink/ralink_regs.h>
@ -1249,7 +1225,7 @@ Index: linux-3.10.9/arch/mips/ralink/rt3883.c
};
static void rt3883_wdt_reset(void)
@@ -155,17 +73,6 @@
@@ -155,17 +73,6 @@ static void rt3883_wdt_reset(void)
rt_sysc_w32(t, RT3883_SYSC_REG_SYSCFG1);
}
@ -1267,7 +1243,7 @@ Index: linux-3.10.9/arch/mips/ralink/rt3883.c
void __init ralink_clk_init(void)
{
unsigned long cpu_rate, sys_rate;
@@ -243,4 +150,6 @@
@@ -243,4 +150,6 @@ void prom_soc_init(struct ralink_soc_inf
soc_info->mem_base = RT3883_SDRAM_BASE;
soc_info->mem_size_min = RT3883_MEM_SIZE_MIN;
soc_info->mem_size_max = RT3883_MEM_SIZE_MAX;

@ -49,9 +49,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -126,6 +126,8 @@ source "drivers/usb/core/Kconfig"
@@ -126,6 +126,8 @@ if USB
source "drivers/usb/dwc3/Kconfig"
source "drivers/usb/core/Kconfig"
+source "drivers/usb/dwc_otg/Kconfig"
+
@ -60,8 +60,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
source "drivers/usb/wusbcore/Kconfig"
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_USB) += core/
obj-$(CONFIG_USB_OTG_UTILS) += otg/
@@ -7,6 +7,7 @@
obj-$(CONFIG_USB) += core/
obj-$(CONFIG_USB_DWC3) += dwc3/
+obj-$(CONFIG_DWC_OTG) += dwc_otg/

@ -1,6 +1,6 @@
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -808,10 +808,6 @@ static void split_uimage(struct mtd_info
@@ -806,10 +806,6 @@ static void split_uimage(struct mtd_info
return;
len = be32_to_cpu(hdr.size) + 0x40;

@ -12,11 +12,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/media/usb/uvc/uvcvideo.h | 3 +++
5 files changed, 61 insertions(+), 7 deletions(-)
Index: linux-3.10.12/drivers/media/usb/uvc/uvc_driver.c
===================================================================
--- linux-3.10.12.orig/drivers/media/usb/uvc/uvc_driver.c 2013-09-14 15:55:12.000000000 +0200
+++ linux-3.10.12/drivers/media/usb/uvc/uvc_driver.c 2013-09-19 04:30:11.825592123 +0200
@@ -2420,6 +2420,20 @@
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2420,6 +2420,20 @@ static struct usb_device_id uvc_ids[] =
.bInterfaceProtocol = 0,
.driver_info = UVC_QUIRK_PROBE_MINMAX
| UVC_QUIRK_IGNORE_SELECTOR_UNIT },
@ -37,11 +35,9 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvc_driver.c
/* Generic USB Video Class */
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) },
{}
Index: linux-3.10.12/drivers/media/usb/uvc/uvc_status.c
===================================================================
--- linux-3.10.12.orig/drivers/media/usb/uvc/uvc_status.c 2013-09-14 15:55:12.000000000 +0200
+++ linux-3.10.12/drivers/media/usb/uvc/uvc_status.c 2013-09-19 01:52:55.721188742 +0200
@@ -139,6 +139,7 @@
--- a/drivers/media/usb/uvc/uvc_status.c
+++ b/drivers/media/usb/uvc/uvc_status.c
@@ -139,6 +139,7 @@ static void uvc_status_complete(struct u
switch (dev->status[0] & 0x0f) {
case UVC_STATUS_TYPE_CONTROL:
uvc_event_control(dev, dev->status, len);
@ -49,7 +45,7 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvc_status.c
break;
case UVC_STATUS_TYPE_STREAMING:
@@ -182,6 +183,7 @@
@@ -182,6 +183,7 @@ int uvc_status_init(struct uvc_device *d
}
pipe = usb_rcvintpipe(dev->udev, ep->desc.bEndpointAddress);
@ -57,10 +53,8 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvc_status.c
/* For high-speed interrupt endpoints, the bInterval value is used as
* an exponent of two. Some developers forgot about it.
Index: linux-3.10.12/drivers/media/usb/uvc/uvc_video.c
===================================================================
--- linux-3.10.12.orig/drivers/media/usb/uvc/uvc_video.c 2013-09-14 15:55:12.000000000 +0200
+++ linux-3.10.12/drivers/media/usb/uvc/uvc_video.c 2013-09-19 07:31:28.642057093 +0200
--- a/drivers/media/usb/uvc/uvc_video.c
+++ b/drivers/media/usb/uvc/uvc_video.c
@@ -21,6 +21,11 @@
#include <linux/wait.h>
#include <linux/atomic.h>
@ -73,7 +67,7 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvc_video.c
#include <media/v4l2-common.h>
@@ -1074,9 +1079,149 @@
@@ -1074,9 +1079,149 @@ static void uvc_video_decode_data(struct
}
}
@ -223,7 +217,7 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvc_video.c
/* Mark the buffer as done if the EOF marker is set. */
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
@@ -1477,6 +1622,8 @@
@@ -1477,6 +1622,8 @@ static int uvc_init_video_isoc(struct uv
if (npackets == 0)
return -ENOMEM;
@ -232,10 +226,8 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvc_video.c
size = npackets * psize;
for (i = 0; i < UVC_URBS; ++i) {
Index: linux-3.10.12/drivers/media/usb/uvc/uvcvideo.h
===================================================================
--- linux-3.10.12.orig/drivers/media/usb/uvc/uvcvideo.h 2013-09-14 15:55:12.000000000 +0200
+++ linux-3.10.12/drivers/media/usb/uvc/uvcvideo.h 2013-09-19 04:36:51.801609222 +0200
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -137,6 +137,8 @@
#define UVC_QUIRK_FIX_BANDWIDTH 0x00000080
#define UVC_QUIRK_PROBE_DEF 0x00000100
@ -245,7 +237,7 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvcvideo.h
/* Format flags */
#define UVC_FMT_FLAG_COMPRESSED 0x00000001
@@ -538,6 +540,7 @@
@@ -538,6 +540,7 @@ struct uvc_device {
__u8 *status;
struct input_dev *input;
char input_phys[64];

@ -11,7 +11,7 @@
struct erase_info erase;
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -391,6 +391,9 @@ extern void register_mtd_user (struct mt
@@ -409,6 +409,9 @@ extern void register_mtd_user (struct mt
extern int unregister_mtd_user (struct mtd_notifier *old);
void *mtd_kmalloc_up_to(const struct mtd_info *mtd, size_t *size);

Loading…
Cancel
Save