[patch 37/46] USB: Fix PS3 USB shutdown problems

From: Greg KH
Date: Mon Nov 17 2008 - 02:34:26 EST


2.6.27-stable review patch. If anyone has any objections, please let us know.

------------------

From: Geoff Levand <geoffrey.levand@xxxxxxxxxxx>

commit ddcb01ff9bf49c4dbbb058423559f7bc90b89374 upstream.

Add ehci_shutdown() or ohci_shutdown() calls to the USB
PS3 bus glue. ehci_shutdown() and ohci_shutdown() do some
controller specific cleanups not done by usb_remove_hcd().

Fixes errors on shutdown or reboot similar to these:

ps3-ehci-driver sb_07: HC died; cleaning up
irq 51: nobody cared (try booting with the "irqpoll" option)

Related bugzilla reports:

http://bugzilla.kernel.org/show_bug.cgi?id=11819
http://bugzilla.terrasoftsolutions.com/show_bug.cgi?id=317

Signed-off-by: Geoff Levand <geoffrey.levand@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>

---
drivers/usb/host/ehci-ps3.c | 1 +
drivers/usb/host/ohci-ps3.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/usb/host/ehci-ps3.c
+++ b/drivers/usb/host/ehci-ps3.c
@@ -205,6 +205,7 @@ static int ps3_ehci_remove(struct ps3_sy

tmp = hcd->irq;

+ ehci_shutdown(hcd);
usb_remove_hcd(hcd);

ps3_system_bus_set_driver_data(dev, NULL);
--- a/drivers/usb/host/ohci-ps3.c
+++ b/drivers/usb/host/ohci-ps3.c
@@ -192,7 +192,7 @@ fail_start:
return result;
}

-static int ps3_ohci_remove (struct ps3_system_bus_device *dev)
+static int ps3_ohci_remove(struct ps3_system_bus_device *dev)
{
unsigned int tmp;
struct usb_hcd *hcd =
@@ -205,6 +205,7 @@ static int ps3_ohci_remove (struct ps3_s

tmp = hcd->irq;

+ ohci_shutdown(hcd);
usb_remove_hcd(hcd);

ps3_system_bus_set_driver_data(dev, NULL);

--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/