aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci-hcd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r--drivers/usb/host/ehci-hcd.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 185721dba42b..251b5d369220 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -42,6 +42,9 @@
42#include <asm/irq.h> 42#include <asm/irq.h>
43#include <asm/system.h> 43#include <asm/system.h>
44#include <asm/unaligned.h> 44#include <asm/unaligned.h>
45#ifdef CONFIG_PPC_PS3
46#include <asm/firmware.h>
47#endif
45 48
46 49
47/*-------------------------------------------------------------------------*/ 50/*-------------------------------------------------------------------------*/
@@ -951,15 +954,18 @@ static int __init ehci_hcd_init(void)
951#endif 954#endif
952 955
953#ifdef PS3_SYSTEM_BUS_DRIVER 956#ifdef PS3_SYSTEM_BUS_DRIVER
954 retval = ps3_system_bus_driver_register(&PS3_SYSTEM_BUS_DRIVER); 957 if (firmware_has_feature(FW_FEATURE_PS3_LV1)) {
955 if (retval < 0) { 958 retval = ps3_system_bus_driver_register(
959 &PS3_SYSTEM_BUS_DRIVER);
960 if (retval < 0) {
956#ifdef PLATFORM_DRIVER 961#ifdef PLATFORM_DRIVER
957 platform_driver_unregister(&PLATFORM_DRIVER); 962 platform_driver_unregister(&PLATFORM_DRIVER);
958#endif 963#endif
959#ifdef PCI_DRIVER 964#ifdef PCI_DRIVER
960 pci_unregister_driver(&PCI_DRIVER); 965 pci_unregister_driver(&PCI_DRIVER);
961#endif 966#endif
962 return retval; 967 return retval;
968 }
963 } 969 }
964#endif 970#endif
965 971
@@ -976,7 +982,8 @@ static void __exit ehci_hcd_cleanup(void)
976 pci_unregister_driver(&PCI_DRIVER); 982 pci_unregister_driver(&PCI_DRIVER);
977#endif 983#endif
978#ifdef PS3_SYSTEM_BUS_DRIVER 984#ifdef PS3_SYSTEM_BUS_DRIVER
979 ps3_system_bus_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); 985 if (firmware_has_feature(FW_FEATURE_PS3_LV1))
986 ps3_system_bus_driver_unregister(&PS3_SYSTEM_BUS_DRIVER);
980#endif 987#endif
981} 988}
982module_exit(ehci_hcd_cleanup); 989module_exit(ehci_hcd_cleanup);