aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/cns21xx/patches-3.6/104-cns21xx-usb-ehci-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/cns21xx/patches-3.6/104-cns21xx-usb-ehci-support.patch')
-rw-r--r--target/linux/cns21xx/patches-3.6/104-cns21xx-usb-ehci-support.patch49
1 files changed, 46 insertions, 3 deletions
diff --git a/target/linux/cns21xx/patches-3.6/104-cns21xx-usb-ehci-support.patch b/target/linux/cns21xx/patches-3.6/104-cns21xx-usb-ehci-support.patch
index 3936d10f08..55b3af3858 100644
--- a/target/linux/cns21xx/patches-3.6/104-cns21xx-usb-ehci-support.patch
+++ b/target/linux/cns21xx/patches-3.6/104-cns21xx-usb-ehci-support.patch
@@ -189,8 +189,8 @@
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
-@@ -1339,6 +1339,11 @@ MODULE_LICENSE ("GPL");
- #define PLATFORM_DRIVER ehci_platform_driver
+@@ -1334,14 +1334,19 @@ MODULE_LICENSE ("GPL");
+ #define PLATFORM_DRIVER ehci_hcd_sead3_driver
#endif
+#ifdef CONFIG_ARCH_CNS21XX
@@ -198,9 +198,52 @@
+#define PLATFORM_DRIVER ehci_cns21xx_driver
+#endif
+
+ #ifdef CONFIG_USB_EHCI_HCD_PLATFORM
+ #include "ehci-platform.c"
+-#define PLATFORM_DRIVER ehci_platform_driver
++#define EHCI_PLATFORM_DRIVER ehci_platform_driver
+ #endif
+
#if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
!defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER) && \
- !defined(XILINX_OF_PLATFORM_DRIVER)
+- !defined(XILINX_OF_PLATFORM_DRIVER)
++ !defined(XILINX_OF_PLATFORM_DRIVER) && !defined(EHCI_PLATFORM_DRIVER)
+ #error "missing bus glue for ehci-hcd"
+ #endif
+
+@@ -1401,10 +1406,21 @@ static int __init ehci_hcd_init(void)
+ if (retval < 0)
+ goto clean4;
+ #endif
++
++#ifdef EHCI_PLATFORM_DRIVER
++ retval = platform_driver_register(&EHCI_PLATFORM_DRIVER);
++ if (retval < 0)
++ goto clean5;
++#endif
++
+ return retval;
+
++#ifdef EHCI_PLATFORM_DRIVER
++ platform_driver_unregister(&EHCI_PLATFORM_DRIVER);
++clean5:
++#endif
+ #ifdef XILINX_OF_PLATFORM_DRIVER
+- /* platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER); */
++ platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER);
+ clean4:
+ #endif
+ #ifdef OF_PLATFORM_DRIVER
+@@ -1435,6 +1451,9 @@ module_init(ehci_hcd_init);
+
+ static void __exit ehci_hcd_cleanup(void)
+ {
++#ifdef EHCI_PLATFORM_DRIVER
++ platform_driver_unregister(&EHCI_PLATFORM_DRIVER);
++#endif
+ #ifdef XILINX_OF_PLATFORM_DRIVER
+ platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER);
+ #endif
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -394,6 +394,7 @@ config ARCH_CNS21XX