kernel/arm-omap-fix-usb-mvebu-conflict.patch
2013-03-24 18:10:58 +00:00

86 lines
2.3 KiB
Diff

--- linux-3.9.0-0.rc3.git1.4.fc19.x86_64/drivers/usb/host/ehci-hcd.c.orig 2013-03-23 18:52:52.576674960 +0000
+++ linux-3.9.0-0.rc3.git1.4.fc19.x86_64/drivers/usb/host/ehci-hcd.c 2013-03-24 12:46:49.149621810 +0000
@@ -1252,7 +1252,7 @@
#ifdef CONFIG_USB_EHCI_HCD_OMAP
#include "ehci-omap.c"
-#define PLATFORM_DRIVER ehci_hcd_omap_driver
+#define OMAP_PLATFORM_DRIVER ehci_hcd_omap_driver
#endif
#ifdef CONFIG_PPC_PS3
@@ -1272,7 +1272,7 @@
#ifdef CONFIG_PLAT_ORION
#include "ehci-orion.c"
-#define PLATFORM_DRIVER ehci_orion_driver
+#define ORION_PLATFORM_DRIVER ehci_orion_driver
#endif
#ifdef CONFIG_USB_W90X900_EHCI
@@ -1384,6 +1384,12 @@
goto clean0;
#endif
+#ifdef ORION_PLATFORM_DRIVER
+ retval = platform_driver_register(&ORION_PLATFORM_DRIVER);
+ if (retval < 0)
+ goto clean1;
+#endif
+
#ifdef PS3_SYSTEM_BUS_DRIVER
retval = ps3_ehci_driver_register(&PS3_SYSTEM_BUS_DRIVER);
if (retval < 0)
@@ -1401,10 +1407,20 @@
if (retval < 0)
goto clean4;
#endif
+
+#ifdef OMAP_PLATFORM_DRIVER
+ retval = platform_driver_register(&OMAP_PLATFORM_DRIVER);
+ if (retval < 0)
+ goto clean5;
+#endif
return retval;
+#ifdef OMAP_PLATFORM_DRIVER
+ /* platform_driver_unregister(&OMAP_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
@@ -1415,6 +1431,10 @@
ps3_ehci_driver_unregister(&PS3_SYSTEM_BUS_DRIVER);
clean2:
#endif
+#ifdef ORION_PLATFORM_DRIVER
+ platform_driver_unregister(&ORION_PLATFORM_DRIVER);
+clean1:
+#endif
#ifdef PLATFORM_DRIVER
platform_driver_unregister(&PLATFORM_DRIVER);
clean0:
@@ -1431,12 +1451,18 @@
static void __exit ehci_hcd_cleanup(void)
{
+#ifdef OMAP_PLATFORM_DRIVER
+ platform_driver_unregister(&OMAP_PLATFORM_DRIVER);
+#endif
#ifdef XILINX_OF_PLATFORM_DRIVER
platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER);
#endif
#ifdef OF_PLATFORM_DRIVER
platform_driver_unregister(&OF_PLATFORM_DRIVER);
#endif
+#ifdef ORION_PLATFORM_DRIVER
+ platform_driver_unregister(&ORION_PLATFORM_DRIVER);
+#endif
#ifdef PLATFORM_DRIVER
platform_driver_unregister(&PLATFORM_DRIVER);
#endif