ep93xx: moved to targets feed
[openwrt/staging/yousong.git] / target / linux / generic / patches-3.8 / 800-usb-ohci-multiple-platform-driver-fix.patch
1 --- a/drivers/usb/host/ohci-hcd.c
2 +++ b/drivers/usb/host/ohci-hcd.c
3 @@ -1188,7 +1188,7 @@ MODULE_LICENSE ("GPL");
4
5 #ifdef CONFIG_USB_OHCI_HCD_PLATFORM
6 #include "ohci-platform.c"
7 -#define PLATFORM_DRIVER ohci_platform_driver
8 +#define OHCI_PLATFORM_DRIVER ohci_platform_driver
9 #endif
10
11 #if !defined(PCI_DRIVER) && \
12 @@ -1199,7 +1199,8 @@ MODULE_LICENSE ("GPL");
13 !defined(SA1111_DRIVER) && \
14 !defined(PS3_SYSTEM_BUS_DRIVER) && \
15 !defined(SM501_OHCI_DRIVER) && \
16 - !defined(TMIO_OHCI_DRIVER)
17 + !defined(TMIO_OHCI_DRIVER) && \
18 + !defined(OHCI_PLATFORM_DRIVER)
19 #error "missing bus glue for ohci-hcd"
20 #endif
21
22 @@ -1277,9 +1278,19 @@ static int __init ohci_hcd_mod_init(void
23 goto error_tmio;
24 #endif
25
26 +#ifdef OHCI_PLATFORM_DRIVER
27 + retval = platform_driver_register(&OHCI_PLATFORM_DRIVER);
28 + if (retval < 0)
29 + goto error_ohci;
30 +#endif
31 +
32 return retval;
33
34 /* Error path */
35 +#ifdef OHCI_PLATFORM_DRIVER
36 + platform_driver_unregister(&OHCI_PLATFORM_DRIVER);
37 + error_ohci:
38 +#endif
39 #ifdef TMIO_OHCI_DRIVER
40 platform_driver_unregister(&TMIO_OHCI_DRIVER);
41 error_tmio:
42 @@ -1329,6 +1340,9 @@ module_init(ohci_hcd_mod_init);
43
44 static void __exit ohci_hcd_mod_exit(void)
45 {
46 +#ifdef OHCI_PLATFORM_DRIVER
47 + platform_driver_unregister(&OHCI_PLATFORM_DRIVER);
48 +#endif
49 #ifdef TMIO_OHCI_DRIVER
50 platform_driver_unregister(&TMIO_OHCI_DRIVER);
51 #endif