On Wed, 2007-02-14 at 16:04 +0900, Ishizaki Kou wrote: > ps3_system_bus_driver_register is PS3 platform specific function. > On other platforms, it triggers WARN_ON in kref_get. > > Signed-off-by: Kou Ishizaki <[EMAIL PROTECTED]>
A bit nasty but that's the price of wanting to have all the bus glues in one file (I didn't agree but that's what David prefers...) Acked-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]> > --- > > Index: linux-powerpc-git/drivers/usb/host/ehci-hcd.c > diff -u linux-powerpc-git/drivers/usb/host/ehci-hcd.c:1.1.1.2 > linux-powerpc-git/drivers/usb/host/ehci-hcd.c:1.4 > --- linux-powerpc-git/drivers/usb/host/ehci-hcd.c:1.1.1.2 Fri Feb 9 > 13:44:37 2007 > +++ linux-powerpc-git/drivers/usb/host/ehci-hcd.c Wed Feb 14 12:30:56 2007 > @@ -42,6 +42,9 @@ > #include <asm/irq.h> > #include <asm/system.h> > #include <asm/unaligned.h> > +#ifdef CONFIG_PPC_PS3 > +#include <asm/firmware.h> > +#endif > > > /*-------------------------------------------------------------------------*/ > @@ -951,15 +954,18 @@ > #endif > > #ifdef PS3_SYSTEM_BUS_DRIVER > - retval = ps3_system_bus_driver_register(&PS3_SYSTEM_BUS_DRIVER); > - if (retval < 0) { > + if (firmware_has_feature(FW_FEATURE_PS3_LV1)) { > + retval = ps3_system_bus_driver_register( > + &PS3_SYSTEM_BUS_DRIVER); > + if (retval < 0) { > #ifdef PLATFORM_DRIVER > - platform_driver_unregister(&PLATFORM_DRIVER); > + platform_driver_unregister(&PLATFORM_DRIVER); > #endif > #ifdef PCI_DRIVER > - pci_unregister_driver(&PCI_DRIVER); > + pci_unregister_driver(&PCI_DRIVER); > #endif > - return retval; > + return retval; > + } > } > #endif > > @@ -976,7 +982,8 @@ > pci_unregister_driver(&PCI_DRIVER); > #endif > #ifdef PS3_SYSTEM_BUS_DRIVER > - ps3_system_bus_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); > + if (firmware_has_feature(FW_FEATURE_PS3_LV1)) > + ps3_system_bus_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); > #endif > } > module_exit(ehci_hcd_cleanup); > Index: linux-powerpc-git/drivers/usb/host/ohci-hcd.c > diff -u linux-powerpc-git/drivers/usb/host/ohci-hcd.c:1.1.1.4 > linux-powerpc-git/drivers/usb/host/ohci-hcd.c:1.2 > --- linux-powerpc-git/drivers/usb/host/ohci-hcd.c:1.1.1.4 Fri Feb 9 > 13:44:37 2007 > +++ linux-powerpc-git/drivers/usb/host/ohci-hcd.c Wed Feb 14 12:30:56 2007 > @@ -42,6 +42,9 @@ > #include <asm/system.h> > #include <asm/unaligned.h> > #include <asm/byteorder.h> > +#ifdef CONFIG_PPC_PS3 > +#include <asm/firmware.h> > +#endif > > #include "../core/hcd.h" > > @@ -944,9 +947,12 @@ > sizeof (struct ed), sizeof (struct td)); > > #ifdef PS3_SYSTEM_BUS_DRIVER > - retval = ps3_system_bus_driver_register(&PS3_SYSTEM_BUS_DRIVER); > - if (retval < 0) > - goto error_ps3; > + if (firmware_has_feature(FW_FEATURE_PS3_LV1)) { > + retval = ps3_system_bus_driver_register( > + &PS3_SYSTEM_BUS_DRIVER); > + if (retval < 0) > + goto error_ps3; > + } > #endif > > #ifdef PLATFORM_DRIVER > @@ -992,7 +998,8 @@ > error_platform: > #endif > #ifdef PS3_SYSTEM_BUS_DRIVER > - ps3_system_bus_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); > + if (firmware_has_feature(FW_FEATURE_PS3_LV1)) > + ps3_system_bus_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); > error_ps3: > #endif > return retval; > @@ -1014,7 +1021,8 @@ > platform_driver_unregister(&PLATFORM_DRIVER); > #endif > #ifdef PS3_SYSTEM_BUS_DRIVER > - ps3_system_bus_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); > + if (firmware_has_feature(FW_FEATURE_PS3_LV1)) > + ps3_system_bus_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); > #endif > } > module_exit(ohci_hcd_mod_exit); > _______________________________________________ > Linuxppc-dev mailing list > [EMAIL PROTECTED] > https://ozlabs.org/mailman/listinfo/linuxppc-dev ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel