kernel/generic: add a few missing kernel config symbols
[openwrt/svn-archive/archive.git] / target / linux / generic / patches-3.3 / 801-usb-ehci-multiple-platform-driver-fix.patch
1 --- a/drivers/usb/host/ehci-hcd.c
2 +++ b/drivers/usb/host/ehci-hcd.c
3 @@ -1383,12 +1383,12 @@ MODULE_LICENSE ("GPL");
4
5 #ifdef CONFIG_USB_EHCI_HCD_PLATFORM
6 #include "ehci-platform.c"
7 -#define PLATFORM_DRIVER ehci_platform_driver
8 +#define EHCI_PLATFORM_DRIVER ehci_platform_driver
9 #endif
10
11 #if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
12 !defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER) && \
13 - !defined(XILINX_OF_PLATFORM_DRIVER)
14 + !defined(XILINX_OF_PLATFORM_DRIVER) && !defined(EHCI_PLATFORM_DRIVER)
15 #error "missing bus glue for ehci-hcd"
16 #endif
17
18 @@ -1448,8 +1448,19 @@ static int __init ehci_hcd_init(void)
19 if (retval < 0)
20 goto clean4;
21 #endif
22 +
23 +#ifdef EHCI_PLATFORM_DRIVER
24 + retval = platform_driver_register(&EHCI_PLATFORM_DRIVER);
25 + if (retval < 0)
26 + goto clean5;
27 +#endif
28 +
29 return retval;
30
31 +#ifdef EHCI_PLATFORM_DRIVER
32 + platform_driver_unregister(&EHCI_PLATFORM_DRIVER);
33 +clean5:
34 +#endif
35 #ifdef XILINX_OF_PLATFORM_DRIVER
36 /* platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER); */
37 clean4:
38 @@ -1482,6 +1493,9 @@ module_init(ehci_hcd_init);
39
40 static void __exit ehci_hcd_cleanup(void)
41 {
42 +#ifdef EHCI_PLATFORM_DRIVER
43 + platform_driver_unregister(&EHCI_PLATFORM_DRIVER);
44 +#endif
45 #ifdef XILINX_OF_PLATFORM_DRIVER
46 platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER);
47 #endif