linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
Cc: greg@kroah.com, dbrownell@users.sourceforge.net,
	linux-usb-devel@lists.sourceforge.net, linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] ps3: don't call ps3_system_bus_driver_register on other platforms
Date: Thu, 15 Feb 2007 08:22:51 +1100	[thread overview]
Message-ID: <1171488171.20192.170.camel@localhost.localdomain> (raw)
In-Reply-To: <200702140704.l1E74IqP013586@toshiba.co.jp>

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 <kou.ishizaki@toshiba.co.jp>

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 <benh@kernel.crashing.org>

> ---
> 
> 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
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev

      parent reply	other threads:[~2007-02-14 21:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-14  7:04 [PATCH] ps3: don't call ps3_system_bus_driver_register on other platforms Ishizaki Kou
2007-02-14 19:27 ` Geoff Levand
2007-02-17  1:33   ` David Brownell
2007-02-14 21:22 ` Benjamin Herrenschmidt [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1171488171.20192.170.camel@localhost.localdomain \
    --to=benh@kernel.crashing.org \
    --cc=dbrownell@users.sourceforge.net \
    --cc=greg@kroah.com \
    --cc=kou.ishizaki@toshiba.co.jp \
    --cc=linux-usb-devel@lists.sourceforge.net \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).