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 --- a/drivers/mtd/Kconfig
+++ b/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 This provides partitions parser for devices based on BCM47xx
boards. boards.
@ -15,7 +15,7 @@
depends on ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX || ATH79 depends on ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX || ATH79
--- a/drivers/mtd/Makefile --- a/drivers/mtd/Makefile
+++ b/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_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o

@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig --- a/drivers/mtd/Kconfig
+++ b/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 config MTD_WRT160NL_PARTS
tristate "Linksys WRT160NL partitioning support" tristate "Linksys WRT160NL partitioning support"
@ -9,7 +9,7 @@
---help--- ---help---
Linksys WRT160NL partitioning support 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 You will still need the parsing functions to be called by the driver
for your particular device. It won't happen automatically. for your particular device. It won't happen automatically.
@ -24,7 +24,7 @@
config MTD_BLKDEVS config MTD_BLKDEVS
--- a/drivers/mtd/Makefile --- a/drivers/mtd/Makefile
+++ b/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_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o

@ -202,7 +202,7 @@
+module_exit(exit_ar2315_wdt); +module_exit(exit_ar2315_wdt);
--- a/drivers/watchdog/Kconfig --- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig
@@ -1104,6 +1104,12 @@ config LANTIQ_WDT @@ -1113,6 +1113,12 @@ config LANTIQ_WDT
help help
Hardware driver for the Lantiq SoC Watchdog Timer. Hardware driver for the Lantiq SoC Watchdog Timer.
@ -217,7 +217,7 @@
# POWERPC Architecture # POWERPC Architecture
--- a/drivers/watchdog/Makefile --- a/drivers/watchdog/Makefile
+++ b/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_PNX833X_WDT) += pnx833x_wdt.o
obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
obj-$(CONFIG_AR7_WDT) += ar7_wdt.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 +++++++++++++++++++++++++++++++++ include/linux/of_address.h | 48 +++++++++++++++++++++++++++++++++
2 files changed, 115 insertions(+) 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 --- a/drivers/of/address.c
+++ b/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); return __of_address_to_resource(dev, addrp, size, flags, NULL, r);
} }
EXPORT_SYMBOL_GPL(of_pci_address_to_resource); EXPORT_SYMBOL_GPL(of_pci_address_to_resource);
@ -123,8 +121,6 @@ index 04da786..fdd0636 100644
#endif /* CONFIG_PCI */ #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 --- a/include/linux/of_address.h
+++ b/include/linux/of_address.h +++ b/include/linux/of_address.h
@@ -4,6 +4,36 @@ @@ -4,6 +4,36 @@
@ -164,7 +160,7 @@ index 0506eb5..4c2e6f2 100644
#ifdef CONFIG_OF_ADDRESS #ifdef CONFIG_OF_ADDRESS
extern u64 of_translate_address(struct device_node *np, const __be32 *addr); extern u64 of_translate_address(struct device_node *np, const __be32 *addr);
extern bool of_can_translate_address(struct device_node *dev); 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 #define pci_address_to_pio pci_address_to_pio
#endif #endif
@ -176,7 +172,7 @@ index 0506eb5..4c2e6f2 100644
#else /* CONFIG_OF_ADDRESS */ #else /* CONFIG_OF_ADDRESS */
#ifndef of_address_to_resource #ifndef of_address_to_resource
static inline int of_address_to_resource(struct device_node *dev, int index, 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; return NULL;
} }
@ -196,6 +192,3 @@ index 0506eb5..4c2e6f2 100644
#endif /* CONFIG_OF_ADDRESS */ #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 +++++++++++++++++++- arch/arm/mach-imx/clk-imx6q.c | 20 +++++++++++++++++++-
2 files changed, 23 insertions(+), 1 deletion(-) 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 --- a/arch/arm/mach-imx/clk-imx6q.c
+++ b/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 @@ -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]; 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, base + 0xe0, 0, 2, 0, clk_enet_ref_table,
&imx_ccm_lock); &imx_ccm_lock);

@ -8,8 +8,6 @@ Signed-off-by: Sean Cross <xobs@kosagi.com>
include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 8 ++++++++ include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 8 ++++++++
1 file changed, 8 insertions(+) 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 --- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
+++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h +++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
@@ -241,6 +241,12 @@ @@ -241,6 +241,12 @@

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

@ -11,7 +11,7 @@
}; };
--- a/drivers/pci/host/pci-imx6.c --- a/drivers/pci/host/pci-imx6.c
+++ b/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, static int imx6q_pcie_abort_handler(unsigned long addr,
unsigned int fsr, struct pt_regs *regs) unsigned int fsr, struct pt_regs *regs)
{ {
@ -24,7 +24,7 @@
return 0; 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); IMX6Q_GPR12_PCIE_CTL_2, 1 << 10);
while (!dw_pcie_link_up(pp)) { 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/ifxmips_pcie_vr9.h
create mode 100644 arch/mips/pci/pcie-lantiq.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 --- a/arch/mips/lantiq/Kconfig
+++ b/arch/mips/lantiq/Kconfig +++ b/arch/mips/lantiq/Kconfig
@@ -17,6 +17,7 @@ config SOC_XWAY @@ -17,6 +17,7 @@ config SOC_XWAY
@ -66,8 +64,6 @@ index c002191..1621b1d 100644
config XRX200_PHY_FW config XRX200_PHY_FW
bool "XRX200 PHY firmware loader" bool "XRX200 PHY firmware loader"
depends on SOC_XWAY 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 --- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c +++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -377,6 +377,8 @@ void __init ltq_soc_init(void) @@ -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")) { } else if (of_machine_is_compatible("lantiq,ar9")) {
clkdev_add_static(ltq_ar9_cpu_hz(), ltq_ar9_fpi_hz(), clkdev_add_static(ltq_ar9_cpu_hz(), ltq_ar9_fpi_hz(),
ltq_ar9_fpi_hz(), CLOCK_250M); 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 --- a/arch/mips/pci/Makefile
+++ b/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_SNI_RM) += fixup-sni.o ops-sni.o
obj-$(CONFIG_LANTIQ) += fixup-lantiq.o obj-$(CONFIG_LANTIQ) += fixup-lantiq.o
obj-$(CONFIG_PCI_LANTIQ) += pci-lantiq.o ops-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_TB0219) += fixup-tb0219.o
obj-$(CONFIG_TANBAC_TB0226) += fixup-tb0226.o obj-$(CONFIG_TANBAC_TB0226) += fixup-tb0226.o
obj-$(CONFIG_TANBAC_TB0287) += fixup-tb0287.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 --- /dev/null
+++ b/arch/mips/pci/fixup-lantiq-pcie.c +++ b/arch/mips/pci/fixup-lantiq-pcie.c
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
@ -180,8 +171,6 @@ index 0000000..3325e24
+ +
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LANTIQ, PCI_DEVICE_ID_LANTIQ_PCIE, +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LANTIQ, PCI_DEVICE_ID_LANTIQ_PCIE,
+ ifx_pcie_rc_class_early_fixup); + 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 --- a/arch/mips/pci/fixup-lantiq.c
+++ b/arch/mips/pci/fixup-lantiq.c +++ b/arch/mips/pci/fixup-lantiq.c
@@ -11,11 +11,12 @@ @@ -11,11 +11,12 @@
@ -198,7 +187,7 @@ index 6c829df..50ec0b5 100644
if (ltq_pci_plat_dev_init) if (ltq_pci_plat_dev_init)
return ltq_pci_plat_dev_init(dev); 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; struct of_irq dev_irq;
int irq; int irq;
@ -207,9 +196,6 @@ index 6c829df..50ec0b5 100644
if (of_irq_map_pci(dev, &dev_irq)) { if (of_irq_map_pci(dev, &dev_irq)) {
dev_err(&dev->dev, "trying to map irq for unknown slot:%d pin:%d\n", dev_err(&dev->dev, "trying to map irq for unknown slot:%d pin:%d\n",
slot, pin); 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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pci_common.h +++ b/arch/mips/pci/ifxmips_pci_common.h
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
@ -270,9 +256,6 @@ index 0000000..46f4cb2
+ +
+#endif /* IFXMIPS_PCI_COMMON_H */ +#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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie.c +++ b/arch/mips/pci/ifxmips_pcie.c
@@ -0,0 +1,1099 @@ @@ -0,0 +1,1099 @@
@ -1375,9 +1358,6 @@ index 0000000..4128898
+MODULE_SUPPORTED_DEVICE("Infineon builtin PCIe RC module"); +MODULE_SUPPORTED_DEVICE("Infineon builtin PCIe RC module");
+MODULE_DESCRIPTION("Infineon builtin PCIe RC driver"); +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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie.h +++ b/arch/mips/pci/ifxmips_pcie.h
@@ -0,0 +1,135 @@ @@ -0,0 +1,135 @@
@ -1516,9 +1496,6 @@ index 0000000..c6f92f5
+ +
+#endif /* IFXMIPS_PCIE_H */ +#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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_ar10.h +++ b/arch/mips/pci/ifxmips_pcie_ar10.h
@@ -0,0 +1,290 @@ @@ -0,0 +1,290 @@
@ -1812,9 +1789,6 @@ index 0000000..99ff463
+} +}
+ +
+#endif /* IFXMIPS_PCIE_AR10_H */ +#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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_msi.c +++ b/arch/mips/pci/ifxmips_pcie_msi.c
@@ -0,0 +1,392 @@ @@ -0,0 +1,392 @@
@ -2210,9 +2184,6 @@ index 0000000..bffd6fa
+MODULE_SUPPORTED_DEVICE("Infineon PCIe IP builtin MSI PIC module"); +MODULE_SUPPORTED_DEVICE("Infineon PCIe IP builtin MSI PIC module");
+MODULE_DESCRIPTION("Infineon PCIe IP builtin MSI PIC driver"); +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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_phy.c +++ b/arch/mips/pci/ifxmips_pcie_phy.c
@@ -0,0 +1,478 @@ @@ -0,0 +1,478 @@
@ -2694,9 +2665,6 @@ index 0000000..f5b0f13
+#endif +#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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_pm.c +++ b/arch/mips/pci/ifxmips_pcie_pm.c
@@ -0,0 +1,176 @@ @@ -0,0 +1,176 @@
@ -2876,9 +2844,6 @@ index 0000000..a10ecad
+ ifx_pmcu_unregister(&pmcuUnRegister); + 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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_pm.h +++ b/arch/mips/pci/ifxmips_pcie_pm.h
@@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
@ -2918,9 +2883,6 @@ index 0000000..6ece20d
+ +
+#endif /* IFXMIPS_PCIE_PM_H */ +#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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_reg.h +++ b/arch/mips/pci/ifxmips_pcie_reg.h
@@ -0,0 +1,1001 @@ @@ -0,0 +1,1001 @@
@ -3925,9 +3887,6 @@ index 0000000..e7e4b6c
+ +
+#endif /* IFXMIPS_PCIE_REG_H */ +#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 --- /dev/null
+++ b/arch/mips/pci/ifxmips_pcie_vr9.h +++ b/arch/mips/pci/ifxmips_pcie_vr9.h
@@ -0,0 +1,271 @@ @@ -0,0 +1,271 @@
@ -4202,8 +4161,6 @@ index 0000000..57d9368
+ +
+#endif /* IFXMIPS_PCIE_VR9_H */ +#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 --- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c
@@ -266,6 +266,31 @@ static int __init pcibios_init(void) @@ -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) static int pcibios_enable_resources(struct pci_dev *dev, int mask)
{ {
u16 cmd, old_cmd; 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 --- /dev/null
+++ b/arch/mips/pci/pcie-lantiq.h +++ b/arch/mips/pci/pcie-lantiq.h
@@ -0,0 +1,1305 @@ @@ -0,0 +1,1305 @@
@ -5549,8 +5503,6 @@ index 0000000..d877c23
+ +
+#endif /* IFXMIPS_PCIE_VR9_H */ +#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 --- a/drivers/pci/pcie/aer/Kconfig
+++ b/drivers/pci/pcie/aer/Kconfig +++ b/drivers/pci/pcie/aer/Kconfig
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
@ -5562,11 +5514,9 @@ index 50e94e0..4bf848f 100644
help help
This enables PCI Express Root Port Advanced Error Reporting This enables PCI Express Root Port Advanced Error Reporting
(AER) driver support. Error reporting messages sent to Root (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 --- a/include/linux/pci.h
+++ b/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_ext(struct pci_dev *dev);
int pci_cfg_space_size(struct pci_dev *dev); int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus); 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); void pci_setup_bridge(struct pci_bus *bus);
resource_size_t pcibios_window_alignment(struct pci_bus *bus, resource_size_t pcibios_window_alignment(struct pci_bus *bus,
unsigned long type); 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 --- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h
@@ -1042,6 +1042,12 @@ @@ -1042,6 +1042,12 @@
@ -5592,6 +5540,3 @@ index c129162..c503ac9 100644
#define PCI_VENDOR_ID_WINBOND 0x10ad #define PCI_VENDOR_ID_WINBOND 0x10ad
#define PCI_DEVICE_ID_WINBOND_82C105 0x0105 #define PCI_DEVICE_ID_WINBOND_82C105 0x0105
#define PCI_DEVICE_ID_WINBOND_83C553 0x0565 #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(-) 2 files changed, 64 insertions(+), 1 deletion(-)
create mode 100644 arch/mips/lantiq/xway/dcdc.c 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 --- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile +++ b/arch/mips/lantiq/xway/Makefile
@@ -1,3 +1,3 @@ @@ -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-y := prom.o sysctrl.o clk.o reset.o dma.o gptu.o dcdc.o
obj-$(CONFIG_XRX200_PHY_FW) += xrx200_phy_fw.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 --- /dev/null
+++ b/arch/mips/lantiq/xway/dcdc.c +++ b/arch/mips/lantiq/xway/dcdc.c
@@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
@ -93,6 +88,3 @@ index 0000000..7688ac0
+} +}
+ +
+arch_initcall(dcdc_init); +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(+) 1 file changed, 58 insertions(+)
create mode 100644 arch/mips/include/asm/mach-lantiq/falcon/cpu-feature-overrides.h 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 --- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/falcon/cpu-feature-overrides.h +++ b/arch/mips/include/asm/mach-lantiq/falcon/cpu-feature-overrides.h
@@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
@ -79,6 +76,3 @@ index 0000000..096a100
+#define cpu_icache_line_size() 32 +#define cpu_icache_line_size() 32
+ +
+#endif /* __ASM_MACH_FALCON_CPU_FEATURE_OVERRIDES_H */ +#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 ++++- arch/mips/lantiq/falcon/sysctrl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-) 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 --- a/arch/mips/lantiq/falcon/sysctrl.c
+++ b/arch/mips/lantiq/falcon/sysctrl.c +++ b/arch/mips/lantiq/falcon/sysctrl.c
@@ -48,6 +48,7 @@ @@ -48,6 +48,7 @@
@ -26,7 +24,7 @@ index ff4894a..8f1866d 100644
#define ACTS_ASC1_ACT 0x00000800 #define ACTS_ASC1_ACT 0x00000800
#define ACTS_I2C_ACT 0x00004000 #define ACTS_I2C_ACT 0x00004000
#define ACTS_P0 0x00010000 #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) static int sysctl_clken(struct clk *clk)
{ {
sysctl_w32(clk->module, clk->bits, SYSCTL_CLKEN); 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("1e100c00.serial", SYSCTL_SYS1, ACTS_ASC0_ACT);
clkdev_add_sys("1e200000.i2c", SYSCTL_SYS1, ACTS_I2C_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 +++- arch/mips/lantiq/prom.c | 4 +++-
2 files changed, 3 insertions(+), 3 deletions(-) 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 --- a/arch/mips/lantiq/Makefile
+++ b/arch/mips/lantiq/Makefile +++ b/arch/mips/lantiq/Makefile
@@ -6,8 +6,6 @@ @@ -6,8 +6,6 @@
@ -22,11 +20,9 @@ index d6bdc57..690257a 100644
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-$(CONFIG_SOC_TYPE_XWAY) += xway/ 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 --- a/arch/mips/lantiq/prom.c
+++ b/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) 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(+) 2 files changed, 65 insertions(+)
create mode 100644 arch/mips/lantiq/xway/vmmc.c 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 --- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile +++ b/arch/mips/lantiq/xway/Makefile
@@ -1,3 +1,5 @@ @@ -1,3 +1,5 @@
@ -20,9 +18,6 @@ index 087497d..a2edc53 100644
+obj-y += vmmc.o +obj-y += vmmc.o
+ +
obj-$(CONFIG_XRX200_PHY_FW) += xrx200_phy_fw.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 --- /dev/null
+++ b/arch/mips/lantiq/xway/vmmc.c +++ b/arch/mips/lantiq/xway/vmmc.c
@@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
@ -89,6 +84,3 @@ index 0000000..6dedf77
+}; +};
+ +
+module_platform_driver(vmmc_driver); +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_atm.h
create mode 100644 arch/mips/include/asm/mach-lantiq/lantiq_ptm.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 --- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/lantiq_atm.h +++ b/arch/mips/include/asm/mach-lantiq/lantiq_atm.h
@@ -0,0 +1,196 @@ @@ -0,0 +1,196 @@
@ -218,9 +215,6 @@ index 0000000..bf045a9
+ +
+#endif // IFX_ATM_H +#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 --- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/lantiq_ptm.h +++ b/arch/mips/include/asm/mach-lantiq/lantiq_ptm.h
@@ -0,0 +1,203 @@ @@ -0,0 +1,203 @@
@ -427,8 +421,6 @@ index 0000000..698e5c3
+ +
+#endif // IFX_PTM_H +#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 --- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c +++ b/arch/mips/lantiq/irq.c
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
@ -439,7 +431,7 @@ index 5119487..6d2c486 100644
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
#include <asm/irq_cpu.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, ltq_icu_r32(im, ier) & ~BIT(offset), ier);
ltq_icu_w32(im, BIT(offset), isr); ltq_icu_w32(im, BIT(offset), isr);
} }
@ -447,11 +439,9 @@ index 5119487..6d2c486 100644
static void ltq_ack_irq(struct irq_data *d) 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 --- a/arch/mips/mm/cache.c
+++ b/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); void (*_dma_cache_inv)(unsigned long start, unsigned long size);
EXPORT_SYMBOL(_dma_cache_wback_inv); EXPORT_SYMBOL(_dma_cache_wback_inv);
@ -460,8 +450,6 @@ index 5aeb3eb..11aa4e6 100644
#endif /* CONFIG_DMA_NONCOHERENT */ #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 --- a/include/uapi/linux/atm.h
+++ b/include/uapi/linux/atm.h +++ b/include/uapi/linux/atm.h
@@ -130,8 +130,14 @@ @@ -130,8 +130,14 @@
@ -479,11 +467,9 @@ index 88399db..78c8bbc 100644
struct atm_trafprm { struct atm_trafprm {
unsigned char traffic_class; /* traffic class (ATM_UBR, ...) */ unsigned char traffic_class; /* traffic class (ATM_UBR, ...) */
int max_pcr; /* maximum PCR in cells per second */ 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 --- a/net/atm/common.c
+++ b/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); 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)) { if (sk_wmem_alloc_get(sk) && !atm_may_send(vcc, size)) {
pr_debug("Sorry: wmem_alloc = %d, size = %d, sndbuf = %d\n", pr_debug("Sorry: wmem_alloc = %d, size = %d, sndbuf = %d\n",
sk_wmem_alloc_get(sk), size, sk->sk_sndbuf); 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 --- a/net/atm/proc.c
+++ b/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 void pvc_info(struct seq_file *seq, struct atm_vcc *vcc)
{ {
static const char *const class_name[] = { static const char *const class_name[] = {
@ -514,6 +498,3 @@ index bbb6461..ecb584a 100644
static const char *const aal_name[] = { static const char *const aal_name[] = {
"---", "1", "2", "3/4", /* 0- 3 */ "---", "1", "2", "3/4", /* 0- 3 */
"???", "5", "???", "???", /* 4- 7 */ "???", "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/pci-ath-fixup.c
create mode 100644 arch/mips/lantiq/xway/rt_eep.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
=================================================================== +++ b/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
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
+#ifndef _PCI_ATH_FIXUP +#ifndef _PCI_ATH_FIXUP
+#define _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; +void ltq_pci_ath_fixup(unsigned slot, u16 *cal_data) __init;
+ +
+#endif /* _PCI_ATH_FIXUP */ +#endif /* _PCI_ATH_FIXUP */
Index: linux-3.10.12/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h --- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
=================================================================== +++ b/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 @@ -90,5 +90,8 @@ int xrx200_gphy_boot(struct device *dev,
+++ 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 @@
extern void ltq_pmu_enable(unsigned int module); extern void ltq_pmu_enable(unsigned int module);
extern void ltq_pmu_disable(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 /* CONFIG_SOC_TYPE_XWAY */
#endif /* _LTQ_XWAY_H__ */ #endif /* _LTQ_XWAY_H__ */
Index: linux-3.10.12/arch/mips/lantiq/xway/Makefile --- a/arch/mips/lantiq/xway/Makefile
=================================================================== +++ b/arch/mips/lantiq/xway/Makefile
--- linux-3.10.12.orig/arch/mips/lantiq/xway/Makefile 2013-09-17 22:32:50.305021707 +0200 @@ -2,4 +2,6 @@ obj-y := prom.o sysctrl.o clk.o reset.o
+++ linux-3.10.12/arch/mips/lantiq/xway/Makefile 2013-09-18 02:41:31.613659574 +0200
@@ -2,4 +2,6 @@
obj-y += vmmc.o obj-y += vmmc.o
+obj-$(CONFIG_PCI) += ath_eep.o rt_eep.o pci-ath-fixup.o +obj-$(CONFIG_PCI) += ath_eep.o rt_eep.o pci-ath-fixup.o
+ +
obj-$(CONFIG_XRX200_PHY_FW) += xrx200_phy_fw.o obj-$(CONFIG_XRX200_PHY_FW) += xrx200_phy_fw.o
Index: linux-3.10.12/arch/mips/lantiq/xway/ath_eep.c --- /dev/null
=================================================================== +++ b/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
@@ -0,0 +1,250 @@ @@ -0,0 +1,250 @@
+/* +/*
+ * Copyright (C) 2011 Luca Olivetti <luca@ventoso.org> + * 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); + return platform_driver_probe(&ath5k_eeprom_driver, of_ath5k_eeprom_probe);
+} +}
+device_initcall(of_ath5k_eeprom_init); +device_initcall(of_ath5k_eeprom_init);
Index: linux-3.10.12/arch/mips/lantiq/xway/pci-ath-fixup.c --- /dev/null
=================================================================== +++ b/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
@@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
+/* +/*
+ * Atheros AP94 reference board PCI initialization + * 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_fixups[ath_num_fixups].cal_data = cal_data;
+ ath_num_fixups++; + ath_num_fixups++;
+} +}
Index: linux-3.10.12/arch/mips/lantiq/xway/rt_eep.c --- /dev/null
=================================================================== +++ b/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
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
+/* +/*
+ * Copyright (C) 2011 John Crispin <blogic@openwrt.org> + * 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 +++++++++++++++++++++++++++++++++++++++++ arch/mips/lantiq/xway/reset.c | 61 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+) 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 --- a/arch/mips/lantiq/xway/reset.c
+++ b/arch/mips/lantiq/xway/reset.c +++ b/arch/mips/lantiq/xway/reset.c
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
@ -23,7 +21,7 @@ index 1fa0f17..a1e06b7 100644
#include <asm/reboot.h> #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); 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) static void ltq_machine_restart(char *command)
{ {
local_irq_disable(); 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 +++++ drivers/mtd/devices/m25p80.c | 5 +++++
1 file changed, 5 insertions(+) 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 --- a/drivers/mtd/devices/m25p80.c
+++ b/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; unsigned i;
struct mtd_part_parser_data ppdata; struct mtd_part_parser_data ppdata;
struct device_node __maybe_unused *np = spi->dev.of_node; struct device_node __maybe_unused *np = spi->dev.of_node;
@ -30,7 +28,7 @@ index 2f3d2a5..1828704 100644
#endif #endif
/* Platform data helps sort out which chip type we have, as /* 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) if (data && data->name)
flash->mtd.name = data->name; flash->mtd.name = data->name;
@ -39,6 +37,3 @@ index 2f3d2a5..1828704 100644
else else
flash->mtd.name = dev_name(&spi->dev); 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(+) 3 files changed, 92 insertions(+)
create mode 100644 drivers/mtd/nand/falcon_nand.c 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 --- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig +++ b/drivers/mtd/nand/Kconfig
@@ -544,4 +544,12 @@ config MTD_NAND_XWAY @@ -544,4 +544,12 @@ config MTD_NAND_XWAY
@ -33,20 +31,15 @@ index a60f6c1..74b1323 100644
+ attached to the External Bus Unit (EBU). + attached to the External Bus Unit (EBU).
+ +
endif # MTD_NAND endif # MTD_NAND
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
index bb81891..feb7c9d 100644
--- a/drivers/mtd/nand/Makefile --- a/drivers/mtd/nand/Makefile
+++ b/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_GPMI_NAND) += gpmi-nand/
obj-$(CONFIG_MTD_NAND_XWAY) += xway_nand.o obj-$(CONFIG_MTD_NAND_XWAY) += xway_nand.o
obj-$(CONFIG_MTD_NAND_BCM47XXNFLASH) += bcm47xxnflash/ obj-$(CONFIG_MTD_NAND_BCM47XXNFLASH) += bcm47xxnflash/
+obj-$(CONFIG_MTD_NAND_FALCON) += falcon_nand.o +obj-$(CONFIG_MTD_NAND_FALCON) += falcon_nand.o
nand-objs := nand_base.o nand_bbt.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 --- /dev/null
+++ b/drivers/mtd/nand/falcon_nand.c +++ b/drivers/mtd/nand/falcon_nand.c
@@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
@ -133,6 +126,3 @@ index 0000000..13458d3
+} +}
+ +
+arch_initcall(falcon_register_nand); +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 +++++- drivers/mtd/maps/lantiq-flash.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-) 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 --- a/drivers/mtd/maps/lantiq-flash.c
+++ b/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); 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->size = resource_size(ltq_mtd->res);
ltq_mtd->map->virt = devm_ioremap_resource(&pdev->dev, ltq_mtd->res); ltq_mtd->map->virt = devm_ioremap_resource(&pdev->dev, ltq_mtd->res);
if (IS_ERR(ltq_mtd->map->virt)) { 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 +- drivers/mtd/nand/xway_nand.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 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 --- a/drivers/mtd/nand/xway_nand.c
+++ b/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; int ret;
spin_lock_irqsave(&ebu_lock, flags); spin_lock_irqsave(&ebu_lock, flags);
@ -24,6 +22,3 @@ index 3f81dc8..169a91d 100644
spin_unlock_irqrestore(&ebu_lock, flags); spin_unlock_irqrestore(&ebu_lock, flags);
return ret; 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 ++++++------ drivers/mtd/nand/xway_nand.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-) 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 --- a/drivers/mtd/nand/xway_nand.c
+++ b/drivers/mtd/nand/xway_nand.c +++ b/drivers/mtd/nand/xway_nand.c
@@ -54,6 +54,8 @@ @@ -54,6 +54,8 @@
@ -22,7 +20,7 @@ index 169a91d..7f2bdd1 100644
static void xway_reset_chip(struct nand_chip *chip) static void xway_reset_chip(struct nand_chip *chip)
{ {
unsigned long nandaddr = (unsigned long) chip->IO_ADDR_W; 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; unsigned long flags;
if (ctrl & NAND_CTRL_CHANGE) { 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) while ((ltq_ebu_r32(EBU_NAND_WAIT) & NAND_WAIT_WR_C) == 0)
; ;
spin_unlock_irqrestore(&ebu_lock, flags); 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 ++++++++-- drivers/mtd/nand/xway_nand.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-) 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 --- a/drivers/mtd/nand/xway_nand.c
+++ b/drivers/mtd/nand/xway_nand.c +++ b/drivers/mtd/nand/xway_nand.c
@@ -59,16 +59,22 @@ static u32 xway_latchcmd; @@ -59,16 +59,22 @@ static u32 xway_latchcmd;
@ -41,6 +39,3 @@ index 7f2bdd1..8d14f1b 100644
spin_unlock_irqrestore(&ebu_lock, flags); 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 ++++++++++++++++++++++++++++ drivers/mtd/nand/xway_nand.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+) 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 --- a/drivers/mtd/nand/xway_nand.c
+++ b/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; return ret;
} }
@ -46,7 +44,7 @@ index 8d14f1b..f813a55 100644
static int xway_nand_probe(struct platform_device *pdev) static int xway_nand_probe(struct platform_device *pdev)
{ {
struct nand_chip *this = platform_get_drvdata(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, .dev_ready = xway_dev_ready,
.select_chip = xway_select_chip, .select_chip = xway_select_chip,
.read_byte = xway_read_byte, .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/COPYING
create mode 100644 firmware/lantiq/README create mode 100644 firmware/lantiq/README
diff --git a/firmware/Makefile b/firmware/Makefile
index cbb09ce..c8697df 100644
--- a/firmware/Makefile --- a/firmware/Makefile
+++ b/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_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw
fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw
fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin 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-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin
fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) 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 --- /dev/null
+++ b/firmware/lantiq/COPYING +++ b/firmware/lantiq/COPYING
@@ -0,0 +1,286 @@ @@ -0,0 +1,286 @@
@ -318,9 +313,6 @@ index 0000000..5ec70b2
+POSSIBILITY OF SUCH DAMAGES. +POSSIBILITY OF SUCH DAMAGES.
+ +
+ END OF TERMS AND CONDITIONS + END OF TERMS AND CONDITIONS
diff --git a/firmware/lantiq/README b/firmware/lantiq/README
new file mode 100644
index 0000000..cb1a10a
--- /dev/null --- /dev/null
+++ b/firmware/lantiq/README +++ b/firmware/lantiq/README
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
@ -369,6 +361,3 @@ index 0000000..cb1a10a
+# GPHY core on Lantiq XWAY VR9 v1.1 +# GPHY core on Lantiq XWAY VR9 v1.1
+lantiq/vr9_phy11g_a2x.bin +lantiq/vr9_phy11g_a2x.bin
+lantiq/vr9_phy22f_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_pce.h
create mode 100644 drivers/net/ethernet/lantiq_xrx200.c 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 --- a/drivers/net/ethernet/Kconfig
+++ b/drivers/net/ethernet/Kconfig +++ b/drivers/net/ethernet/Kconfig
@@ -83,7 +83,13 @@ config LANTIQ_ETOP @@ -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/marvell/Kconfig"
source "drivers/net/ethernet/mellanox/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 --- a/drivers/net/ethernet/Makefile
+++ b/drivers/net/ethernet/Makefile +++ b/drivers/net/ethernet/Makefile
@@ -36,6 +36,7 @@ obj-$(CONFIG_IP1000) += icplus/ @@ -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_MARVELL) += marvell/
obj-$(CONFIG_NET_VENDOR_MELLANOX) += mellanox/ obj-$(CONFIG_NET_VENDOR_MELLANOX) += mellanox/
obj-$(CONFIG_NET_VENDOR_MICREL) += micrel/ 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 --- /dev/null
+++ b/drivers/net/ethernet/lantiq_pce.h +++ b/drivers/net/ethernet/lantiq_pce.h
@@ -0,0 +1,163 @@ @@ -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),
+ 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 --- /dev/null
+++ b/drivers/net/ethernet/lantiq_xrx200.c +++ b/drivers/net/ethernet/lantiq_xrx200.c
@@ -0,0 +1,1203 @@ @@ -0,0 +1,1203 @@
@ -1421,6 +1411,3 @@ index 0000000..2d40c64
+MODULE_AUTHOR("John Crispin <blogic@openwrt.org>"); +MODULE_AUTHOR("John Crispin <blogic@openwrt.org>");
+MODULE_DESCRIPTION("Lantiq SoC XRX200 ethernet"); +MODULE_DESCRIPTION("Lantiq SoC XRX200 ethernet");
+MODULE_LICENSE("GPL"); +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 +++++++++++++++++++++++++----------- drivers/net/ethernet/lantiq_etop.c | 501 +++++++++++++++++++++++++-----------
1 file changed, 355 insertions(+), 146 deletions(-) 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 --- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c +++ b/drivers/net/ethernet/lantiq_etop.c
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
@ -35,15 +33,13 @@ index bfdb0686..cdc0c0e 100644
#define ETOP_MII_REVERSE 0xe #define ETOP_MII_REVERSE 0xe
#define ETOP_PLEN_UNDER 0x40 #define ETOP_PLEN_UNDER 0x40
#define ETOP_CGEN 0x800 #define ETOP_CGEN 0x800
- +#define ETOP_CFG_MII0 0x01
-/* use 2 static channels for TX/RX */ -/* use 2 static channels for TX/RX */
-#define LTQ_ETOP_TX_CHANNEL 1 -#define LTQ_ETOP_TX_CHANNEL 1
-#define LTQ_ETOP_RX_CHANNEL 6 -#define LTQ_ETOP_RX_CHANNEL 6
-#define IS_TX(x) (x == LTQ_ETOP_TX_CHANNEL) -#define IS_TX(x) (x == LTQ_ETOP_TX_CHANNEL)
-#define IS_RX(x) (x == LTQ_ETOP_RX_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_CTL 0xCC
+#define LTQ_GBIT_MDIO_DATA 0xd0 +#define LTQ_GBIT_MDIO_DATA 0xd0
+#define LTQ_GBIT_GCTL0 0x68 +#define LTQ_GBIT_GCTL0 0x68
@ -74,7 +70,7 @@ index bfdb0686..cdc0c0e 100644
+#define MDIO_XR9_REG_OFFSET 0 +#define MDIO_XR9_REG_OFFSET 0
+#define MDIO_XR9_ADDR_OFFSET 5 +#define MDIO_XR9_ADDR_OFFSET 5
+#define MDIO_XR9_WR_OFFSET 16 +#define MDIO_XR9_WR_OFFSET 16
+
+#define LTQ_DMA_ETOP ((of_machine_is_compatible("lantiq,ase")) ? \ +#define LTQ_DMA_ETOP ((of_machine_is_compatible("lantiq,ase")) ? \
+ (INT_NUM_IM3_IRL0) : (INT_NUM_IM2_IRL0)) + (INT_NUM_IM3_IRL0) : (INT_NUM_IM2_IRL0))
+ +
@ -142,7 +138,7 @@ index bfdb0686..cdc0c0e 100644
if (!ch->skb[ch->dma.desc]) if (!ch->skb[ch->dma.desc])
return -ENOMEM; return -ENOMEM;
ch->dma.desc_base[ch->dma.desc].addr = dma_map_single(NULL, 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); spin_unlock_irqrestore(&priv->lock, flags);
skb_put(skb, len); skb_put(skb, len);
@ -154,7 +150,7 @@ index bfdb0686..cdc0c0e 100644
} }
static int 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 *ch = container_of(napi,
struct ltq_etop_chan, napi); struct ltq_etop_chan, napi);
@ -165,7 +161,7 @@ index bfdb0686..cdc0c0e 100644
while ((rx < budget) && !complete) { while ((rx < budget) && !complete) {
struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc]; 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) { if (complete || !rx) {
napi_complete(&ch->napi); napi_complete(&ch->napi);
@ -175,7 +171,7 @@ index bfdb0686..cdc0c0e 100644
} }
return rx; 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); container_of(napi, struct ltq_etop_chan, napi);
struct ltq_etop_priv *priv = netdev_priv(ch->netdev); struct ltq_etop_priv *priv = netdev_priv(ch->netdev);
struct netdev_queue *txq = struct netdev_queue *txq =
@ -191,7 +187,7 @@ index bfdb0686..cdc0c0e 100644
dev_kfree_skb_any(ch->skb[ch->tx_free]); dev_kfree_skb_any(ch->skb[ch->tx_free]);
ch->skb[ch->tx_free] = NULL; ch->skb[ch->tx_free] = NULL;
memset(&ch->dma.desc_base[ch->tx_free], 0, 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)) if (netif_tx_queue_stopped(txq))
netif_tx_start_queue(txq); netif_tx_start_queue(txq);
napi_complete(&ch->napi); napi_complete(&ch->napi);
@ -215,7 +211,7 @@ index bfdb0686..cdc0c0e 100644
return IRQ_HANDLED; 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); ltq_dma_free(&ch->dma);
if (ch->dma.irq) if (ch->dma.irq)
free_irq(ch->dma.irq, priv); free_irq(ch->dma.irq, priv);
@ -280,17 +276,17 @@ index bfdb0686..cdc0c0e 100644
struct ltq_etop_priv *priv = netdev_priv(dev); struct ltq_etop_priv *priv = netdev_priv(dev);
- int i; - int i;
+ int mii_mode = priv->mii_mode; + int mii_mode = priv->mii_mode;
+
+ clk_enable(priv->clk_ppe);
- ltq_pmu_enable(PMU_PPE); - ltq_pmu_enable(PMU_PPE);
+ clk_enable(priv->clk_ppe);
- switch (priv->pldata->mii_mode) {
+ if (of_machine_is_compatible("lantiq,ar9")) { + if (of_machine_is_compatible("lantiq,ar9")) {
+ ltq_etop_gbit_init(dev); + ltq_etop_gbit_init(dev);
+ /* force the etops link to the gbit to MII */ + /* force the etops link to the gbit to MII */
+ mii_mode = PHY_INTERFACE_MODE_MII; + mii_mode = PHY_INTERFACE_MODE_MII;
+ } + }
+
- switch (priv->pldata->mii_mode) {
+ switch (mii_mode) { + switch (mii_mode) {
case PHY_INTERFACE_MODE_RMII: case PHY_INTERFACE_MODE_RMII:
ltq_etop_w32_mask(ETOP_MII_MASK, ltq_etop_w32_mask(ETOP_MII_MASK,
@ -386,7 +382,7 @@ index bfdb0686..cdc0c0e 100644
} }
static void 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); struct ltq_etop_priv *priv = netdev_priv(dev);
@ -398,7 +394,7 @@ index bfdb0686..cdc0c0e 100644
} }
static int 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); struct ltq_etop_priv *priv = netdev_priv(dev);
@ -410,7 +406,7 @@ index bfdb0686..cdc0c0e 100644
} }
static int 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); 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 = { 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 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) ltq_etop_mdio_wr(struct mii_bus *bus, int phy_addr, int phy_reg, u16 phy_data)
{ {
u32 val = MDIO_REQUEST | 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 ltq_etop_priv *priv = netdev_priv(dev);
struct phy_device *phydev = NULL; struct phy_device *phydev = NULL;
- int phy_addr; - 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 + u32 phy_supported = (SUPPORTED_10baseT_Half
+ | SUPPORTED_10baseT_Full + | SUPPORTED_10baseT_Full
+ | SUPPORTED_100baseT_Half + | SUPPORTED_100baseT_Half
@ -481,7 +470,13 @@ index bfdb0686..cdc0c0e 100644
+ | SUPPORTED_Autoneg + | SUPPORTED_Autoneg
+ | SUPPORTED_MII + | SUPPORTED_MII
+ | SUPPORTED_TP); + | 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")) + if (of_machine_is_compatible("lantiq,ase"))
+ phydev = priv->mii_bus->phy_map[8]; + phydev = priv->mii_bus->phy_map[8];
+ else + else
@ -489,7 +484,7 @@ index bfdb0686..cdc0c0e 100644
if (!phydev) { if (!phydev) {
netdev_err(dev, "no PHY found\n"); 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), phydev = phy_connect(dev, dev_name(&phydev->dev),
@ -516,7 +511,7 @@ index bfdb0686..cdc0c0e 100644
phydev->advertising = phydev->supported; phydev->advertising = phydev->supported;
priv->phydev = phydev; priv->phydev = phydev;
pr_info("%s: attached PHY [%s] (phy_addr=%s, irq=%d)\n", 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; priv->mii_bus->priv = dev;
@ -572,6 +567,12 @@ index bfdb0686..cdc0c0e 100644
- phy_stop(priv->phydev); - phy_stop(priv->phydev);
- for (i = 0; i < MAX_DMA_CHAN; i++) { - for (i = 0; i < MAX_DMA_CHAN; i++) {
- struct ltq_etop_chan *ch = &priv->ch[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) + if (priv->phydev)
+ phy_stop(priv->phydev); + phy_stop(priv->phydev);
+ napi_disable(&priv->txch.napi); + napi_disable(&priv->txch.napi);
@ -581,16 +582,11 @@ index bfdb0686..cdc0c0e 100644
+ ltq_dma_close(&priv->txch.dma); + ltq_dma_close(&priv->txch.dma);
+ ltq_dma_close(&priv->rxch.dma); + ltq_dma_close(&priv->rxch.dma);
+ spin_unlock_irqrestore(&priv->lock, flags); + 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; 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); int queue = skb_get_queue_mapping(skb);
struct netdev_queue *txq = netdev_get_tx_queue(dev, queue); struct netdev_queue *txq = netdev_get_tx_queue(dev, queue);
struct ltq_etop_priv *priv = netdev_priv(dev); struct ltq_etop_priv *priv = netdev_priv(dev);
@ -612,7 +608,7 @@ index bfdb0686..cdc0c0e 100644
netdev_err(dev, "tx ring full\n"); netdev_err(dev, "tx ring full\n");
netif_tx_stop_queue(txq); netif_tx_stop_queue(txq);
return NETDEV_TX_BUSY; 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 */ /* dma needs to start on a 16 byte aligned address */
byte_offset = CPHYSADDR(skb->data) % 16; byte_offset = CPHYSADDR(skb->data) % 16;
@ -621,7 +617,7 @@ index bfdb0686..cdc0c0e 100644
dev->trans_start = jiffies; 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(); wmb();
desc->ctl = LTQ_DMA_OWN | LTQ_DMA_SOP | LTQ_DMA_EOP | desc->ctl = LTQ_DMA_OWN | LTQ_DMA_SOP | LTQ_DMA_EOP |
LTQ_DMA_TX_OFFSET(byte_offset) | (len & LTQ_DMA_SIZE_MASK); LTQ_DMA_TX_OFFSET(byte_offset) | (len & LTQ_DMA_SIZE_MASK);
@ -682,7 +678,7 @@ index bfdb0686..cdc0c0e 100644
return 0; return 0;
err_netdev: 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); err = ltq_etop_hw_init(dev);
if (err) if (err)
goto err_hw; goto err_hw;
@ -692,7 +688,7 @@ index bfdb0686..cdc0c0e 100644
dev->trans_start = jiffies; dev->trans_start = jiffies;
netif_wake_queue(dev); netif_wake_queue(dev);
return; 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, .ndo_tx_timeout = ltq_etop_tx_timeout,
}; };
@ -715,7 +711,7 @@ index bfdb0686..cdc0c0e 100644
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) { 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; goto err_out;
} }
@ -789,7 +785,7 @@ index bfdb0686..cdc0c0e 100644
err = register_netdev(dev); err = register_netdev(dev);
if (err) 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; return 0;
} }
@ -831,6 +827,3 @@ index bfdb0686..cdc0c0e 100644
MODULE_AUTHOR("John Crispin <blogic@openwrt.org>"); MODULE_AUTHOR("John Crispin <blogic@openwrt.org>");
MODULE_DESCRIPTION("Lantiq SoC ETOP"); 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 +- include/linux/phy.h | 2 +-
2 files changed, 7 insertions(+), 4 deletions(-) 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 --- a/drivers/net/phy/phy.c
+++ b/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 */ * negotiation for now */
if (!phydev->link) { if (!phydev->link) {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -23,7 +21,7 @@ index 38f0b31..ad64a75 100644
phydev->adjust_link(phydev->attached_dev); phydev->adjust_link(phydev->attached_dev);
break; 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); netif_carrier_on(phydev->attached_dev);
} else { } else {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -33,7 +31,7 @@ index 38f0b31..ad64a75 100644
} }
phydev->adjust_link(phydev->attached_dev); 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: case PHY_HALTED:
if (phydev->link) { if (phydev->link) {
phydev->link = 0; phydev->link = 0;
@ -43,8 +41,6 @@ index 38f0b31..ad64a75 100644
phydev->adjust_link(phydev->attached_dev); phydev->adjust_link(phydev->attached_dev);
} }
break; break;
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 9e11039..9a8ca78 100644
--- a/include/linux/phy.h --- a/include/linux/phy.h
+++ b/include/linux/phy.h +++ b/include/linux/phy.h
@@ -298,7 +298,7 @@ struct phy_device { @@ -298,7 +298,7 @@ struct phy_device {
@ -56,6 +52,3 @@ index 9e11039..9a8ca78 100644
enum phy_state state; enum phy_state state;
u32 dev_flags; 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 + include/linux/of_net.h | 1 +
2 files changed, 38 insertions(+) 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 --- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c +++ b/drivers/of/of_net.c
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
@ -26,7 +24,7 @@ index ffab033..15f4a71 100644
/** /**
* It maps 'enum phy_interface_t' found in include/linux/phy.h * 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; return NULL;
} }
EXPORT_SYMBOL(of_get_mac_address); EXPORT_SYMBOL(of_get_mac_address);
@ -66,8 +64,6 @@ index ffab033..15f4a71 100644
+ return ret; + return ret;
+} +}
+EXPORT_SYMBOL_GPL(of_get_mac_address_mtd); +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 --- a/include/linux/of_net.h
+++ b/include/linux/of_net.h +++ b/include/linux/of_net.h
@@ -11,6 +11,7 @@ @@ -11,6 +11,7 @@
@ -78,6 +74,3 @@ index 61bf53b..6e6b4a9 100644
#else #else
static inline const int of_get_phy_mode(struct device_node *np) 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(+) 3 files changed, 354 insertions(+)
create mode 100644 drivers/gpio/gpio-falcon.c 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 --- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig
@@ -135,6 +135,11 @@ config GPIO_EP93XX @@ -135,6 +135,11 @@ config GPIO_EP93XX
@ -33,11 +31,9 @@ index 573c449..59b8764 100644
config GPIO_MM_LANTIQ config GPIO_MM_LANTIQ
bool "Lantiq Memory mapped GPIOs" bool "Lantiq Memory mapped GPIOs"
depends on LANTIQ && SOC_XWAY depends on LANTIQ && SOC_XWAY
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 0cb2d65..542960d 100644
--- a/drivers/gpio/Makefile --- a/drivers/gpio/Makefile
+++ b/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_ARCH_DAVINCI) += gpio-davinci.o
obj-$(CONFIG_GPIO_EM) += gpio-em.o obj-$(CONFIG_GPIO_EM) += gpio-em.o
obj-$(CONFIG_GPIO_EP93XX) += gpio-ep93xx.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_GE_FPGA) += gpio-ge.o
obj-$(CONFIG_GPIO_GRGPIO) += gpio-grgpio.o obj-$(CONFIG_GPIO_GRGPIO) += gpio-grgpio.o
obj-$(CONFIG_GPIO_ICH) += gpio-ich.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 --- /dev/null
+++ b/drivers/gpio/gpio-falcon.c +++ b/drivers/gpio/gpio-falcon.c
@@ -0,0 +1,348 @@ @@ -0,0 +1,348 @@
@ -399,6 +392,3 @@ index 0000000..ae3bdfb
+} +}
+ +
+subsys_initcall(falcon_gpio_init); +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 ++++++++- include/linux/gpio.h | 26 ++++++++-
5 files changed, 172 insertions(+), 12 deletions(-) 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 --- a/Documentation/devicetree/bindings/gpio/gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio.txt +++ b/Documentation/devicetree/bindings/gpio/gpio.txt
@@ -112,3 +112,63 @@ where, @@ -112,3 +112,63 @@ where,
@ -82,8 +80,6 @@ index d933af3..c264748 100644
+ gpio-export,output = <1>; + 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 --- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c
@@ -21,6 +21,8 @@ @@ -21,6 +21,8 @@
@ -95,7 +91,7 @@ index 665f953..15ec5e5 100644
/* Private data structure for of_gpiochip_find_and_xlate */ /* Private data structure for of_gpiochip_find_and_xlate */
struct gg_data { 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) if (chip->of_node)
of_node_put(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); + return platform_driver_probe(&gpio_export_driver, of_gpio_export_probe);
+} +}
+device_initcall(of_gpio_export_init); +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 --- a/drivers/gpio/gpiolib.c
+++ b/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 void gpiod_set_value(struct gpio_desc *desc, int value);
static int gpiod_cansleep(const struct gpio_desc *desc); static int gpiod_cansleep(const struct gpio_desc *desc);
static int gpiod_to_irq(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, static int gpiod_export_link(struct device *dev, const char *name,
struct gpio_desc *desc); struct gpio_desc *desc);
static int gpiod_sysfs_set_active_low(struct gpio_desc *desc, int value); 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; status = -ENODEV;
goto done; goto done;
} }
@ -208,7 +202,7 @@ index c2534d6..8697c82 100644
{ {
unsigned long flags; unsigned long flags;
int status; 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; goto fail_unlock;
} }
@ -232,7 +226,7 @@ index c2534d6..8697c82 100644
static int match_export(struct device *dev, const void *data) 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, static inline int gpiod_export(struct gpio_desc *desc,
@ -241,7 +235,7 @@ index c2534d6..8697c82 100644
{ {
return -ENOSYS; 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) if (flags & GPIOF_OPEN_SOURCE)
set_bit(FLAG_OPEN_SOURCE, &desc->flags); set_bit(FLAG_OPEN_SOURCE, &desc->flags);
@ -251,7 +245,7 @@ index c2534d6..8697c82 100644
if (flags & GPIOF_DIR_IN) if (flags & GPIOF_DIR_IN)
err = gpiod_direction_input(desc); err = gpiod_direction_input(desc);
else 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; goto free_gpio;
if (flags & GPIOF_EXPORT) { if (flags & GPIOF_EXPORT) {
@ -260,11 +254,9 @@ index c2534d6..8697c82 100644
if (err) if (err)
goto free_gpio; 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 --- a/include/asm-generic/gpio.h
+++ b/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, * A sysfs interface can be exported by individual drivers if they want,
* but more typically is configured entirely from userspace. * but more typically is configured entirely from userspace.
*/ */
@ -284,8 +276,6 @@ index bde6469..3290572 100644
{ {
return -ENOSYS; return -ENOSYS;
} }
diff --git a/include/linux/gpio.h b/include/linux/gpio.h
index 552e3f4..07bbbcc7 100644
--- a/include/linux/gpio.h --- a/include/linux/gpio.h
+++ b/include/linux/gpio.h +++ b/include/linux/gpio.h
@@ -27,6 +27,9 @@ @@ -27,6 +27,9 @@
@ -298,7 +288,7 @@ index 552e3f4..07bbbcc7 100644
/** /**
* struct gpio - a structure describing a GPIO with configuration * struct gpio - a structure describing a GPIO with configuration
* @gpio: the GPIO number * @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); WARN_ON(1);
} }
@ -308,7 +298,7 @@ index 552e3f4..07bbbcc7 100644
{ {
/* GPIO can never have been requested or set as {in,out}put */ /* GPIO can never have been requested or set as {in,out}put */
WARN_ON(1); 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); unsigned long flags, const char *label);
void devm_gpio_free(struct device *dev, unsigned int gpio); void devm_gpio_free(struct device *dev, unsigned int gpio);
@ -333,6 +323,3 @@ index 552e3f4..07bbbcc7 100644
+} +}
+ +
#endif /* __LINUX_GPIO_H */ #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 ++++++++++++++++++++++++++-- drivers/pinctrl/pinctrl-xway.c | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-) 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 --- a/drivers/pinctrl/pinctrl-xway.c
+++ b/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, .confops = &xway_pinconf_ops,
}; };
@ -26,7 +24,7 @@ index e92132c..e40b2e6 100644
int port = PORT(pin); int port = PORT(pin);
u32 alt1_reg = GPIO_ALT1(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; return 0;
} }
@ -41,7 +39,7 @@ index e92132c..e40b2e6 100644
static const struct ltq_cfg_param xway_cfg_params[] = { static const struct ltq_cfg_param xway_cfg_params[] = {
{"lantiq,pull", LTQ_PINCONF_PARAM_PULL}, {"lantiq,pull", LTQ_PINCONF_PARAM_PULL},
{"lantiq,open-drain", LTQ_PINCONF_PARAM_OPEN_DRAIN}, {"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); 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)); gpio_setbit(info->membase[0], GPIO_DIR(pin), PORT_PIN(pin));
xway_gpio_set(chip, pin, val); 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); pinctrl_free_gpio(gpio);
} }
@ -79,6 +77,3 @@ index e92132c..e40b2e6 100644
.base = -1, .base = -1,
}; };
--
1.7.10.4

@ -10,8 +10,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/pinctrl/pinctrl-xway.c | 30 ++++++++++++++++++++++++------ drivers/pinctrl/pinctrl-xway.c | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-) 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 --- a/drivers/pinctrl/pinctrl-xway.c
+++ b/drivers/pinctrl/pinctrl-xway.c +++ b/drivers/pinctrl/pinctrl-xway.c
@@ -102,6 +102,7 @@ enum xway_mux { @@ -102,6 +102,7 @@ enum xway_mux {
@ -22,7 +20,7 @@ index e40b2e6..b159fd5 100644
XWAY_MUX_NONE = 0xffff, 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 */ /* pin f0 f1 f2 f3 */
MFP_XWAY(GPIO0, GPIO, EXIN, NONE, TDM), MFP_XWAY(GPIO0, GPIO, EXIN, NONE, TDM),
MFP_XWAY(GPIO1, GPIO, EXIN, NONE, NONE), MFP_XWAY(GPIO1, GPIO, EXIN, NONE, NONE),
@ -38,7 +36,7 @@ index e40b2e6..b159fd5 100644
MFP_XWAY(GPIO8, GPIO, CGU, NMI, NONE), MFP_XWAY(GPIO8, GPIO, CGU, NMI, NONE),
MFP_XWAY(GPIO9, GPIO, ASC, SPI, EXIN), MFP_XWAY(GPIO9, GPIO, ASC, SPI, EXIN),
MFP_XWAY(GPIO10, GPIO, ASC, SPI, NONE), 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(GPIO41, GPIO, NONE, NONE, NONE),
MFP_XWAY(GPIO42, GPIO, MDIO, NONE, NONE), MFP_XWAY(GPIO42, GPIO, MDIO, NONE, NONE),
MFP_XWAY(GPIO43, 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(GPIO48, GPIO, EBU, NONE, NONE),
MFP_XWAY(GPIO49, GPIO, EBU, NONE, NONE), MFP_XWAY(GPIO49, GPIO, EBU, NONE, NONE),
MFP_XWAY(GPIO50, GPIO, NONE, 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_nmi[] = {GPIO8};
static const unsigned pins_mdio[] = {GPIO42, GPIO43}; 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_a24[] = {GPIO13};
static const unsigned pins_ebu_clk[] = {GPIO21}; static const unsigned pins_ebu_clk[] = {GPIO21};
static const unsigned pins_ebu_cs1[] = {GPIO23}; 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("gnt4", PCI, pins_pci_gnt4),
GRP_MUX("req4", PCI, pins_pci_gnt4), GRP_MUX("req4", PCI, pins_pci_gnt4),
GRP_MUX("mdio", MDIO, pins_mdio), GRP_MUX("mdio", MDIO, pins_mdio),
@ -79,7 +77,7 @@ index e40b2e6..b159fd5 100644
}; };
static const struct ltq_pin_group ase_grps[] = { 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 */ /* ar9/vr9/gr9 */
static const char * const xrx_mdio_grps[] = {"mdio"}; 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", static const char * const xrx_ebu_grps[] = {"ebu a23", "ebu a24",
"ebu a25", "ebu cs1", "ebu a25", "ebu cs1",
"ebu wait", "ebu clk", "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)}, {"pci", ARRAY_AND_SIZE(xrx_pci_grps)},
{"ebu", ARRAY_AND_SIZE(xrx_ebu_grps)}, {"ebu", ARRAY_AND_SIZE(xrx_ebu_grps)},
{"mdio", ARRAY_AND_SIZE(xrx_mdio_grps)}, {"mdio", ARRAY_AND_SIZE(xrx_mdio_grps)},
@ -97,6 +95,3 @@ index e40b2e6..b159fd5 100644
}; };
static const struct ltq_pmx_func ase_funcs[] = { 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 +++++-- drivers/pinctrl/pinctrl-falcon.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-) 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 --- a/drivers/pinctrl/pinctrl-falcon.c
+++ b/drivers/pinctrl/pinctrl-falcon.c +++ b/drivers/pinctrl/pinctrl-falcon.c
@@ -75,6 +75,7 @@ enum falcon_mux { @@ -75,6 +75,7 @@ enum falcon_mux {
@ -24,7 +22,7 @@ index f9b2a1d..4e731f2 100644
FALCON_MUX_MDIO, FALCON_MUX_MDIO,
FALCON_MUX_LED, FALCON_MUX_LED,
FALCON_MUX_SPI, 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(GPIO2, GPIO, GPIO, NONE, NONE),
MFP_FALCON(GPIO3, GPIO, GPIO, NONE, NONE), MFP_FALCON(GPIO3, GPIO, GPIO, NONE, NONE),
MFP_FALCON(GPIO4, NTR, 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(GPIO6, RST, GPIO, NONE, NONE),
MFP_FALCON(GPIO7, MDIO, GPIO, NONE, NONE), MFP_FALCON(GPIO7, MDIO, GPIO, NONE, NONE),
MFP_FALCON(GPIO8, 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_por[] = {GPIO0};
static const unsigned pins_ntr[] = {GPIO4}; static const unsigned pins_ntr[] = {GPIO4};
static const unsigned pins_ntr8k[] = {GPIO5}; static const unsigned pins_ntr8k[] = {GPIO5};
@ -41,7 +39,7 @@ index f9b2a1d..4e731f2 100644
static const unsigned pins_hrst[] = {GPIO6}; static const unsigned pins_hrst[] = {GPIO6};
static const unsigned pins_mdio[] = {GPIO7, GPIO8}; static const unsigned pins_mdio[] = {GPIO7, GPIO8};
static const unsigned pins_bled[] = {GPIO9, GPIO10, GPIO11, 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("por", RST, pins_por),
GRP_MUX("ntr", NTR, pins_ntr), GRP_MUX("ntr", NTR, pins_ntr),
GRP_MUX("ntr8k", NTR, pins_ntr8k), GRP_MUX("ntr8k", NTR, pins_ntr8k),
@ -49,7 +47,7 @@ index f9b2a1d..4e731f2 100644
GRP_MUX("hrst", RST, pins_hrst), GRP_MUX("hrst", RST, pins_hrst),
GRP_MUX("mdio", MDIO, pins_mdio), GRP_MUX("mdio", MDIO, pins_mdio),
GRP_MUX("bootled", LED, pins_bled), 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"}; 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_mdio_grps[] = {"mdio"};
static const char * const ltq_bled_grps[] = {"bootled"}; static const char * const ltq_bled_grps[] = {"bootled"};
static const char * const ltq_asc_grps[] = {"asc0", "asc1"}; 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 +++ drivers/tty/serial/lantiq.c | 3 +++
1 file changed, 3 insertions(+) 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 --- a/drivers/tty/serial/lantiq.c
+++ b/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; port = &ltq_port->port;
@ -25,6 +23,3 @@ index 15733da..93ac046 100644
port->uartclk = clk_get_rate(ltq_port->fpiclk); port->uartclk = clk_get_rate(ltq_port->fpiclk);
if (options) if (options)
--
1.7.10.4

@ -10,8 +10,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/tty/serial/lantiq.c | 4 ++-- drivers/tty/serial/lantiq.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 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 --- a/drivers/tty/serial/lantiq.c
+++ b/drivers/tty/serial/lantiq.c +++ b/drivers/tty/serial/lantiq.c
@@ -318,7 +318,7 @@ lqasc_startup(struct uart_port *port) @@ -318,7 +318,7 @@ lqasc_startup(struct uart_port *port)
@ -32,6 +30,3 @@ index 93ac046..88d01e0 100644
clk_disable(ltq_port->clk); 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.c
create mode 100644 drivers/i2c/busses/i2c-lantiq.h 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 --- a/drivers/i2c/busses/Kconfig
+++ b/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 This driver can also be built as a module. If so, the module
will be called i2c-iop3xx. will be called i2c-iop3xx.
@ -37,11 +35,9 @@ index 631736e..0f0522b 100644
config I2C_MPC config I2C_MPC
tristate "MPC107/824x/85xx/512x/52xx/83xx/86xx" tristate "MPC107/824x/85xx/512x/52xx/83xx/86xx"
depends on PPC depends on PPC
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 8f4fc23..3273061 100644
--- a/drivers/i2c/busses/Makefile --- a/drivers/i2c/busses/Makefile
+++ b/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_IMX) += i2c-imx.o
obj-$(CONFIG_I2C_INTEL_MID) += i2c-intel-mid.o obj-$(CONFIG_I2C_INTEL_MID) += i2c-intel-mid.o
obj-$(CONFIG_I2C_IOP3XX) += i2c-iop3xx.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_MPC) += i2c-mpc.o
obj-$(CONFIG_I2C_MV64XXX) += i2c-mv64xxx.o obj-$(CONFIG_I2C_MV64XXX) += i2c-mv64xxx.o
obj-$(CONFIG_I2C_MXS) += i2c-mxs.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 --- /dev/null
+++ b/drivers/i2c/busses/i2c-lantiq.c +++ b/drivers/i2c/busses/i2c-lantiq.c
@@ -0,0 +1,747 @@ @@ -0,0 +1,747 @@
@ -802,9 +795,6 @@ index 0000000..9a5f58b
+MODULE_ALIAS("platform:" DRV_NAME); +MODULE_ALIAS("platform:" DRV_NAME);
+MODULE_LICENSE("GPL"); +MODULE_LICENSE("GPL");
+MODULE_VERSION(DRV_VERSION); +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 --- /dev/null
+++ b/drivers/i2c/busses/i2c-lantiq.h +++ b/drivers/i2c/busses/i2c-lantiq.h
@@ -0,0 +1,234 @@ @@ -0,0 +1,234 @@
@ -1042,6 +1032,3 @@ index 0000000..7a86b89
+ +
+ +
+#endif /* I2C_LANTIQ_H */ +#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 +- drivers/usb/core/hub.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-) 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 --- a/arch/mips/lantiq/Kconfig
+++ b/arch/mips/lantiq/Kconfig +++ b/arch/mips/lantiq/Kconfig
@@ -3,6 +3,7 @@ if LANTIQ @@ -3,6 +3,7 @@ if LANTIQ
@ -20,11 +18,9 @@ index 1621b1d..4c9a241 100644
default n default n
choice 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 --- a/drivers/usb/core/hub.c
+++ b/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; udev->ttport = hdev->ttport;
} else if (udev->speed != USB_SPEED_HIGH } else if (udev->speed != USB_SPEED_HIGH
&& hdev->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"); dev_err(&udev->dev, "parent hub has no TT\n");
retval = -EINVAL; retval = -EINVAL;
goto fail; goto fail;
--
1.7.10.4

@ -16,11 +16,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
3 files changed, 986 insertions(+) 3 files changed, 986 insertions(+)
create mode 100644 drivers/spi/spi-xway.c 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 --- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig
@@ -487,6 +487,14 @@ config SPI_NUC900 @@ -496,6 +496,14 @@ config SPI_NUC900
help help
SPI driver for Nuvoton NUC900 series ARM SoCs 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 # 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 --- a/drivers/spi/Makefile
+++ b/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_TXX9) += spi-txx9.o
obj-$(CONFIG_SPI_XCOMM) += spi-xcomm.o obj-$(CONFIG_SPI_XCOMM) += spi-xcomm.o
obj-$(CONFIG_SPI_XILINX) += spi-xilinx.o obj-$(CONFIG_SPI_XILINX) += spi-xilinx.o
+obj-$(CONFIG_SPI_XWAY) += spi-xway.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 --- /dev/null
+++ b/drivers/spi/spi-xway.c +++ b/drivers/spi/spi-xway.c
@@ -0,0 +1,977 @@ @@ -0,0 +1,977 @@
@ -1027,6 +1020,3 @@ index 0000000..61532e3
+MODULE_AUTHOR("Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>"); +MODULE_AUTHOR("Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>");
+MODULE_LICENSE("GPL"); +MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:spi-xway"); +MODULE_ALIAS("platform:spi-xway");
--
1.7.10.4

@ -17,8 +17,6 @@ Cc: Gabor Juhos <juhosg@openwrt.org>
include/linux/reset.h | 43 ++++++++++++++++++++++++++++++++++++++ include/linux/reset.h | 43 ++++++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+) 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 --- a/include/linux/reset-controller.h
+++ b/include/linux/reset-controller.h +++ b/include/linux/reset-controller.h
@@ -45,7 +45,23 @@ struct reset_controller_dev { @@ -45,7 +45,23 @@ struct reset_controller_dev {
@ -45,8 +43,6 @@ index 2f61311..068f073 100644
+#endif +#endif
+ +
#endif #endif
diff --git a/include/linux/reset.h b/include/linux/reset.h
index 6082247..1b36c9e 100644
--- a/include/linux/reset.h --- a/include/linux/reset.h
+++ b/include/linux/reset.h +++ b/include/linux/reset.h
@@ -1,9 +1,13 @@ @@ -1,9 +1,13 @@
@ -63,7 +59,7 @@ index 6082247..1b36c9e 100644
int reset_control_reset(struct reset_control *rstc); int reset_control_reset(struct reset_control *rstc);
int reset_control_assert(struct reset_control *rstc); int reset_control_assert(struct reset_control *rstc);
int reset_control_deassert(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); int device_reset(struct device *dev);
@ -107,6 +103,3 @@ index 6082247..1b36c9e 100644
+#endif +#endif
+ +
#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/include/asm/mach-lantiq/lantiq_timer.h
create mode 100644 arch/mips/lantiq/xway/timer.c 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 --- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/lantiq_timer.h +++ b/arch/mips/include/asm/mach-lantiq/lantiq_timer.h
@@ -0,0 +1,155 @@ @@ -0,0 +1,155 @@
@ -173,19 +170,14 @@ index 0000000..ef564ab
+ u32 reload, unsigned long arg1, unsigned long arg2); + u32 reload, unsigned long arg1, unsigned long arg2);
+ +
+#endif /* __DANUBE_GPTU_DEV_H__2005_07_26__10_19__ */ +#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 --- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile +++ b/arch/mips/lantiq/xway/Makefile
@@ -1,4 +1,4 @@ @@ -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 gptu.o dcdc.o
+obj-y := prom.o sysctrl.o clk.o reset.o dma.o timer.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 --- /dev/null
+++ b/arch/mips/lantiq/xway/timer.c +++ b/arch/mips/lantiq/xway/timer.c
@@ -0,0 +1,845 @@ @@ -0,0 +1,845 @@
@ -1034,6 +1026,3 @@ index 0000000..1c0fdb8
+module_exit(lq_gptu_exit); +module_exit(lq_gptu_exit);
+ +
+#endif +#endif
--
1.7.10.4

@ -17,7 +17,7 @@ Cc: linux-mips@linux-mips.org
--- a/drivers/watchdog/Kconfig --- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig
@@ -1104,6 +1104,13 @@ config LANTIQ_WDT @@ -1113,6 +1113,13 @@ config LANTIQ_WDT
help help
Hardware driver for the Lantiq SoC Watchdog Timer. Hardware driver for the Lantiq SoC Watchdog Timer.
@ -33,7 +33,7 @@ Cc: linux-mips@linux-mips.org
# POWERPC Architecture # POWERPC Architecture
--- a/drivers/watchdog/Makefile --- a/drivers/watchdog/Makefile
+++ b/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 obj-$(CONFIG_OCTEON_WDT) += octeon-wdt.o
octeon-wdt-y := octeon-wdt-main.o octeon-wdt-nmi.o octeon-wdt-y := octeon-wdt-main.o octeon-wdt-nmi.o
obj-$(CONFIG_LANTIQ_WDT) += lantiq_wdt.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 arch/mips/include/asm/mach-ralink/gpio.h
create mode 100644 drivers/gpio/gpio-ralink.c create mode 100644 drivers/gpio/gpio-ralink.c
Index: linux-3.10.9/arch/mips/Kconfig --- a/arch/mips/Kconfig
=================================================================== +++ b/arch/mips/Kconfig
--- linux-3.10.9.orig/arch/mips/Kconfig 2013-08-26 17:48:27.481164281 +0200 @@ -444,6 +444,7 @@ config RALINK
+++ linux-3.10.9/arch/mips/Kconfig 2013-08-27 23:15:40.751965869 +0200
@@ -444,6 +444,7 @@
select SYS_HAS_EARLY_PRINTK select SYS_HAS_EARLY_PRINTK
select HAVE_MACH_CLKDEV select HAVE_MACH_CLKDEV
select CLKDEV_LOOKUP select CLKDEV_LOOKUP
@ -31,10 +29,8 @@ Index: linux-3.10.9/arch/mips/Kconfig
config SGI_IP22 config SGI_IP22
bool "SGI IP22 (Indy/Indigo2)" bool "SGI IP22 (Indy/Indigo2)"
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/gpio.h --- /dev/null
=================================================================== +++ b/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
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
+/* +/*
+ * Ralink SoC GPIO API support + * 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 +#define gpio_to_irq __gpio_to_irq
+ +
+#endif /* __ASM_MACH_RALINK_GPIO_H */ +#endif /* __ASM_MACH_RALINK_GPIO_H */
Index: linux-3.10.9/drivers/gpio/Kconfig --- a/drivers/gpio/Kconfig
=================================================================== +++ b/drivers/gpio/Kconfig
--- linux-3.10.9.orig/drivers/gpio/Kconfig 2013-08-21 00:40:47.000000000 +0200 @@ -209,6 +209,12 @@ config GPIO_RCAR
+++ linux-3.10.9/drivers/gpio/Kconfig 2013-08-26 17:48:30.941164428 +0200
@@ -209,6 +209,12 @@
help help
Say yes here to support GPIO on Renesas R-Car SoCs. 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 config GPIO_SPEAR_SPICS
bool "ST SPEAr13xx SPI Chip Select as GPIO support" bool "ST SPEAr13xx SPI Chip Select as GPIO support"
depends on PLAT_SPEAR depends on PLAT_SPEAR
Index: linux-3.10.9/drivers/gpio/Makefile --- a/drivers/gpio/Makefile
=================================================================== +++ b/drivers/gpio/Makefile
--- linux-3.10.9.orig/drivers/gpio/Makefile 2013-08-21 00:40:47.000000000 +0200 @@ -56,6 +56,7 @@ obj-$(CONFIG_GPIO_PCF857X) += gpio-pcf85
+++ linux-3.10.9/drivers/gpio/Makefile 2013-08-26 17:48:30.941164428 +0200
@@ -56,6 +56,7 @@
obj-$(CONFIG_GPIO_PCH) += gpio-pch.o obj-$(CONFIG_GPIO_PCH) += gpio-pch.o
obj-$(CONFIG_GPIO_PL061) += gpio-pl061.o obj-$(CONFIG_GPIO_PL061) += gpio-pl061.o
obj-$(CONFIG_GPIO_PXA) += gpio-pxa.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_RC5T583) += gpio-rc5t583.o
obj-$(CONFIG_GPIO_RDC321X) += gpio-rdc321x.o obj-$(CONFIG_GPIO_RDC321X) += gpio-rdc321x.o
obj-$(CONFIG_GPIO_RCAR) += gpio-rcar.o obj-$(CONFIG_GPIO_RCAR) += gpio-rcar.o
Index: linux-3.10.9/drivers/gpio/gpio-ralink.c --- /dev/null
=================================================================== +++ b/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
@@ -0,0 +1,345 @@ @@ -0,0 +1,345 @@
+/* +/*
+ * This program is free software; you can redistribute it and/or modify it + * 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(-) 6 files changed, 385 insertions(+), 19 deletions(-)
create mode 100644 drivers/pinctrl/pinctrl-rt2880.c create mode 100644 drivers/pinctrl/pinctrl-rt2880.c
Index: linux-3.10.9/arch/mips/Kconfig --- a/arch/mips/Kconfig
=================================================================== +++ b/arch/mips/Kconfig
--- linux-3.10.9.orig/arch/mips/Kconfig 2013-08-28 16:34:42.449951676 +0200 @@ -446,6 +446,8 @@ config RALINK
+++ linux-3.10.9/arch/mips/Kconfig 2013-08-28 16:34:43.361951711 +0200
@@ -446,6 +446,8 @@
select HAVE_MACH_CLKDEV select HAVE_MACH_CLKDEV
select CLKDEV_LOOKUP select CLKDEV_LOOKUP
select ARCH_REQUIRE_GPIOLIB select ARCH_REQUIRE_GPIOLIB
@ -27,11 +25,9 @@ Index: linux-3.10.9/arch/mips/Kconfig
config SGI_IP22 config SGI_IP22
bool "SGI IP22 (Indy/Indigo2)" bool "SGI IP22 (Indy/Indigo2)"
Index: linux-3.10.9/drivers/pinctrl/Kconfig --- a/drivers/pinctrl/Kconfig
=================================================================== +++ b/drivers/pinctrl/Kconfig
--- linux-3.10.9.orig/drivers/pinctrl/Kconfig 2013-08-21 00:40:47.000000000 +0200 @@ -114,6 +114,11 @@ config PINCTRL_LANTIQ
+++ linux-3.10.9/drivers/pinctrl/Kconfig 2013-08-28 16:34:43.361951711 +0200
@@ -114,6 +114,11 @@
select PINMUX select PINMUX
select PINCONF select PINCONF
@ -43,11 +39,9 @@ Index: linux-3.10.9/drivers/pinctrl/Kconfig
config PINCTRL_FALCON config PINCTRL_FALCON
bool bool
depends on SOC_FALCON depends on SOC_FALCON
Index: linux-3.10.9/drivers/pinctrl/Makefile --- a/drivers/pinctrl/Makefile
=================================================================== +++ b/drivers/pinctrl/Makefile
--- linux-3.10.9.orig/drivers/pinctrl/Makefile 2013-08-21 00:40:47.000000000 +0200 @@ -45,6 +45,7 @@ obj-$(CONFIG_PINCTRL_EXYNOS5440) += pinc
+++ linux-3.10.9/drivers/pinctrl/Makefile 2013-08-28 16:34:43.361951711 +0200
@@ -45,6 +45,7 @@
obj-$(CONFIG_PINCTRL_S3C64XX) += pinctrl-s3c64xx.o obj-$(CONFIG_PINCTRL_S3C64XX) += pinctrl-s3c64xx.o
obj-$(CONFIG_PINCTRL_XWAY) += pinctrl-xway.o obj-$(CONFIG_PINCTRL_XWAY) += pinctrl-xway.o
obj-$(CONFIG_PINCTRL_LANTIQ) += pinctrl-lantiq.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_PLAT_ORION) += mvebu/
obj-$(CONFIG_ARCH_SHMOBILE) += sh-pfc/ obj-$(CONFIG_ARCH_SHMOBILE) += sh-pfc/
Index: linux-3.10.9/drivers/pinctrl/pinctrl-rt2880.c --- /dev/null
=================================================================== +++ b/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
@@ -0,0 +1,456 @@ @@ -0,0 +1,456 @@
+/* +/*
+ * linux/drivers/pinctrl/pinctrl-rt2880.c + * 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); +core_initcall_sync(rt2880_pinmux_init);
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/pinmux.h --- /dev/null
=================================================================== +++ b/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
@@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
+/* +/*
+ * This program is free software; you can redistribute it and/or modify + * 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; +extern struct rt2880_pmx_group *rt2880_pinmux_data;
+ +
+#endif +#endif
Index: linux-3.10.9/arch/mips/ralink/mt7620.c --- a/arch/mips/ralink/mt7620.c
=================================================================== +++ b/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
@@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
#include <asm/mipsregs.h> #include <asm/mipsregs.h>
#include <asm/mach-ralink/ralink_regs.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" #include "common.h"
@@ -48,118 +49,40 @@ @@ -48,118 +49,40 @@ static int dram_type;
/* the pll dividers */ /* the pll dividers */
static u32 mt7620_clk_divider[] = { 2, 3, 4, 8 }; 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) 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")); (pmu0 & PMU_SW_SET) ? ("sw") : ("hw"));
pr_info("Digital PMU set to %s control\n", pr_info("Digital PMU set to %s control\n",
(pmu1 & DIG_SW_SEL) ? ("sw") : ("hw")); (pmu1 & DIG_SW_SEL) ? ("sw") : ("hw"));
+ +
+ rt2880_pinmux_data = mt7620a_pinmux_data; + rt2880_pinmux_data = mt7620a_pinmux_data;
} }
Index: linux-3.10.9/arch/mips/ralink/rt305x.c --- a/arch/mips/ralink/rt305x.c
=================================================================== +++ b/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
@@ -17,90 +17,71 @@ @@ -17,90 +17,71 @@
#include <asm/mipsregs.h> #include <asm/mipsregs.h>
#include <asm/mach-ralink/ralink_regs.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) 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); 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) static unsigned long rt5350_get_mem_size(void)
{ {
void __iomem *sysc = (void __iomem *) KSEG1ADDR(RT305X_SYSC_BASE); 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; soc_info->mem_base = RT305X_SDRAM_BASE;
if (soc_is_rt5350()) { if (soc_is_rt5350()) {
soc_info->mem_size = rt5350_get_mem_size(); 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; + rt2880_pinmux_data = rt3352_pinmux_data;
} }
} }
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/rt305x.h --- a/arch/mips/include/asm/mach-ralink/rt305x.h
=================================================================== +++ b/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 @@ -125,24 +125,28 @@ static inline int soc_is_rt5350(void)
+++ linux-3.10.9/arch/mips/include/asm/mach-ralink/rt305x.h 2013-08-28 16:34:43.365951713 +0200
@@ -125,24 +125,28 @@
#define RT305X_GPIO_GE0_TXD0 40 #define RT305X_GPIO_GE0_TXD0 40
#define RT305X_GPIO_GE0_RXCLK 51 #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_SYSCFG0 0x010
#define RT3352_SYSC_REG_SYSCFG1 0x014 #define RT3352_SYSC_REG_SYSCFG1 0x014
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/mt7620.h --- a/arch/mips/include/asm/mach-ralink/mt7620.h
=================================================================== +++ b/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
@@ -59,7 +59,6 @@ @@ -59,7 +59,6 @@
#define MT7620_DDR2_SIZE_MIN 32 #define MT7620_DDR2_SIZE_MIN 32
#define MT7620_DDR2_SIZE_MAX 256 #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 +#define MT7620_GPIO_MODE_WDT 22
#endif #endif
Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/rt3883.h --- a/arch/mips/include/asm/mach-ralink/rt3883.h
=================================================================== +++ b/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
@@ -112,8 +112,6 @@ @@ -112,8 +112,6 @@
#define RT3883_CLKCFG1_PCI_CLK_EN BIT(19) #define RT3883_CLKCFG1_PCI_CLK_EN BIT(19)
#define RT3883_CLKCFG1_UPHY0_CLK_EN BIT(18) #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_SHIFT 11
#define RT3883_GPIO_MODE_PCI_MASK 0x7 #define RT3883_GPIO_MODE_PCI_MASK 0x7
#define RT3883_GPIO_MODE_PCI (RT3883_GPIO_MODE_PCI_MASK << RT3883_GPIO_MODE_PCI_SHIFT) #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 --- a/arch/mips/ralink/common.h
=================================================================== +++ b/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
@@ -11,25 +11,6 @@ @@ -11,25 +11,6 @@
#define RAMIPS_SYS_TYPE_LEN 32 #define RAMIPS_SYS_TYPE_LEN 32
@ -1074,10 +1052,8 @@ Index: linux-3.10.9/arch/mips/ralink/common.h
struct ralink_soc_info { struct ralink_soc_info {
unsigned char sys_type[RAMIPS_SYS_TYPE_LEN]; unsigned char sys_type[RAMIPS_SYS_TYPE_LEN];
unsigned char *compatible; unsigned char *compatible;
Index: linux-3.10.9/arch/mips/ralink/rt3883.c --- a/arch/mips/ralink/rt3883.c
=================================================================== +++ b/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
@@ -17,132 +17,50 @@ @@ -17,132 +17,50 @@
#include <asm/mipsregs.h> #include <asm/mipsregs.h>
#include <asm/mach-ralink/ralink_regs.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) 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); 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) void __init ralink_clk_init(void)
{ {
unsigned long cpu_rate, sys_rate; 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_base = RT3883_SDRAM_BASE;
soc_info->mem_size_min = RT3883_MEM_SIZE_MIN; soc_info->mem_size_min = RT3883_MEM_SIZE_MIN;
soc_info->mem_size_max = RT3883_MEM_SIZE_MAX; 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 --- a/drivers/usb/Kconfig
+++ b/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" +source "drivers/usb/dwc_otg/Kconfig"
+ +
@ -60,8 +60,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
source "drivers/usb/wusbcore/Kconfig" source "drivers/usb/wusbcore/Kconfig"
--- a/drivers/usb/Makefile --- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile +++ b/drivers/usb/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_USB) += core/ @@ -7,6 +7,7 @@
obj-$(CONFIG_USB_OTG_UTILS) += otg/ obj-$(CONFIG_USB) += core/
obj-$(CONFIG_USB_DWC3) += dwc3/ obj-$(CONFIG_USB_DWC3) += dwc3/
+obj-$(CONFIG_DWC_OTG) += dwc_otg/ +obj-$(CONFIG_DWC_OTG) += dwc_otg/

@ -1,6 +1,6 @@
--- a/drivers/mtd/mtdpart.c --- a/drivers/mtd/mtdpart.c
+++ b/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; return;
len = be32_to_cpu(hdr.size) + 0x40; 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 +++ drivers/media/usb/uvc/uvcvideo.h | 3 +++
5 files changed, 61 insertions(+), 7 deletions(-) 5 files changed, 61 insertions(+), 7 deletions(-)
Index: linux-3.10.12/drivers/media/usb/uvc/uvc_driver.c --- a/drivers/media/usb/uvc/uvc_driver.c
=================================================================== +++ b/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 @@ -2420,6 +2420,20 @@ static struct usb_device_id uvc_ids[] =
+++ linux-3.10.12/drivers/media/usb/uvc/uvc_driver.c 2013-09-19 04:30:11.825592123 +0200
@@ -2420,6 +2420,20 @@
.bInterfaceProtocol = 0, .bInterfaceProtocol = 0,
.driver_info = UVC_QUIRK_PROBE_MINMAX .driver_info = UVC_QUIRK_PROBE_MINMAX
| UVC_QUIRK_IGNORE_SELECTOR_UNIT }, | 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 */ /* Generic USB Video Class */
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) }, { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) },
{} {}
Index: linux-3.10.12/drivers/media/usb/uvc/uvc_status.c --- a/drivers/media/usb/uvc/uvc_status.c
=================================================================== +++ b/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 @@ -139,6 +139,7 @@ static void uvc_status_complete(struct u
+++ linux-3.10.12/drivers/media/usb/uvc/uvc_status.c 2013-09-19 01:52:55.721188742 +0200
@@ -139,6 +139,7 @@
switch (dev->status[0] & 0x0f) { switch (dev->status[0] & 0x0f) {
case UVC_STATUS_TYPE_CONTROL: case UVC_STATUS_TYPE_CONTROL:
uvc_event_control(dev, dev->status, len); uvc_event_control(dev, dev->status, len);
@ -49,7 +45,7 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvc_status.c
break; break;
case UVC_STATUS_TYPE_STREAMING: 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); 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 /* For high-speed interrupt endpoints, the bInterval value is used as
* an exponent of two. Some developers forgot about it. * an exponent of two. Some developers forgot about it.
Index: linux-3.10.12/drivers/media/usb/uvc/uvc_video.c --- a/drivers/media/usb/uvc/uvc_video.c
=================================================================== +++ b/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
@@ -21,6 +21,11 @@ @@ -21,6 +21,11 @@
#include <linux/wait.h> #include <linux/wait.h>
#include <linux/atomic.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> #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. */ /* Mark the buffer as done if the EOF marker is set. */
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) { if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n"); 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) if (npackets == 0)
return -ENOMEM; return -ENOMEM;
@ -232,10 +226,8 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvc_video.c
size = npackets * psize; size = npackets * psize;
for (i = 0; i < UVC_URBS; ++i) { for (i = 0; i < UVC_URBS; ++i) {
Index: linux-3.10.12/drivers/media/usb/uvc/uvcvideo.h --- a/drivers/media/usb/uvc/uvcvideo.h
=================================================================== +++ b/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
@@ -137,6 +137,8 @@ @@ -137,6 +137,8 @@
#define UVC_QUIRK_FIX_BANDWIDTH 0x00000080 #define UVC_QUIRK_FIX_BANDWIDTH 0x00000080
#define UVC_QUIRK_PROBE_DEF 0x00000100 #define UVC_QUIRK_PROBE_DEF 0x00000100
@ -245,7 +237,7 @@ Index: linux-3.10.12/drivers/media/usb/uvc/uvcvideo.h
/* Format flags */ /* Format flags */
#define UVC_FMT_FLAG_COMPRESSED 0x00000001 #define UVC_FMT_FLAG_COMPRESSED 0x00000001
@@ -538,6 +540,7 @@ @@ -538,6 +540,7 @@ struct uvc_device {
__u8 *status; __u8 *status;
struct input_dev *input; struct input_dev *input;
char input_phys[64]; char input_phys[64];

@ -11,7 +11,7 @@
struct erase_info erase; struct erase_info erase;
--- a/include/linux/mtd/mtd.h --- a/include/linux/mtd/mtd.h
+++ b/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); extern int unregister_mtd_user (struct mtd_notifier *old);
void *mtd_kmalloc_up_to(const struct mtd_info *mtd, size_t *size); void *mtd_kmalloc_up_to(const struct mtd_info *mtd, size_t *size);

Loading…
Cancel
Save