79 lines
2.2 KiB
Diff
79 lines
2.2 KiB
Diff
|
Index: linux-2.6.22-rc4/drivers/usb/host/Kconfig
|
||
|
===================================================================
|
||
|
--- linux-2.6.22-rc4.orig/drivers/usb/host/Kconfig 2007-06-10 21:32:11.000000000 +0100
|
||
|
+++ linux-2.6.22-rc4/drivers/usb/host/Kconfig 2007-06-10 21:33:24.000000000 +0100
|
||
|
@@ -142,6 +142,19 @@
|
||
|
Enables support for PCI-bus plug-in USB controller cards.
|
||
|
If unsure, say Y.
|
||
|
|
||
|
+config USB_OHCI_HCD_SSB
|
||
|
+ bool "OHCI support for the Broadcom SSB OHCI core (embedded systems only)"
|
||
|
+ depends on USB_OHCI_HCD && ((USB_OHCI_HCD=m && SSB) || (USB_OHCI_HCD=y && SSB=y)) && EXPERIMENTAL
|
||
|
+ default n
|
||
|
+ ---help---
|
||
|
+ Support for the Sonics Silicon Backplane (SSB) attached
|
||
|
+ Broadcom USB OHCI core.
|
||
|
+
|
||
|
+ This device is only present in some embedded devices with
|
||
|
+ Broadcom based SSB bus.
|
||
|
+
|
||
|
+ If unsure, say N.
|
||
|
+
|
||
|
config USB_OHCI_BIG_ENDIAN_DESC
|
||
|
bool
|
||
|
depends on USB_OHCI_HCD
|
||
|
Index: linux-2.6.22-rc4/drivers/usb/host/ohci-hcd.c
|
||
|
===================================================================
|
||
|
--- linux-2.6.22-rc4.orig/drivers/usb/host/ohci-hcd.c 2007-06-10 21:32:11.000000000 +0100
|
||
|
+++ linux-2.6.22-rc4/drivers/usb/host/ohci-hcd.c 2007-06-10 21:33:24.000000000 +0100
|
||
|
@@ -920,11 +920,17 @@
|
||
|
#define PS3_SYSTEM_BUS_DRIVER ps3_ohci_sb_driver
|
||
|
#endif
|
||
|
|
||
|
+#ifdef CONFIG_USB_OHCI_HCD_SSB
|
||
|
+#include "ohci-ssb.c"
|
||
|
+#define SSB_OHCI_DRIVER ssb_ohci_driver
|
||
|
+#endif
|
||
|
+
|
||
|
#if !defined(PCI_DRIVER) && \
|
||
|
!defined(PLATFORM_DRIVER) && \
|
||
|
!defined(OF_PLATFORM_DRIVER) && \
|
||
|
!defined(SA1111_DRIVER) && \
|
||
|
- !defined(PS3_SYSTEM_BUS_DRIVER)
|
||
|
+ !defined(PS3_SYSTEM_BUS_DRIVER) && \
|
||
|
+ !defined(SSB_OHCI_DRIVER)
|
||
|
#error "missing bus glue for ohci-hcd"
|
||
|
#endif
|
||
|
|
||
|
@@ -972,10 +978,20 @@
|
||
|
goto error_pci;
|
||
|
#endif
|
||
|
|
||
|
+#ifdef SSB_OHCI_DRIVER
|
||
|
+ retval = ssb_driver_register(&SSB_OHCI_DRIVER);
|
||
|
+ if (retval)
|
||
|
+ goto error_ssb;
|
||
|
+#endif
|
||
|
+
|
||
|
return retval;
|
||
|
|
||
|
/* Error path */
|
||
|
+#ifdef SSB_OHCI_DRIVER
|
||
|
+ error_ssb:
|
||
|
+#endif
|
||
|
#ifdef PCI_DRIVER
|
||
|
+ pci_unregister_driver(&PCI_DRIVER);
|
||
|
error_pci:
|
||
|
#endif
|
||
|
#ifdef SA1111_DRIVER
|
||
|
@@ -1001,6 +1017,9 @@
|
||
|
|
||
|
static void __exit ohci_hcd_mod_exit(void)
|
||
|
{
|
||
|
+#ifdef SSB_OHCI_DRIVER
|
||
|
+ ssb_driver_unregister(&SSB_OHCI_DRIVER);
|
||
|
+#endif
|
||
|
#ifdef PCI_DRIVER
|
||
|
pci_unregister_driver(&PCI_DRIVER);
|
||
|
#endif
|