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

Reply via email to