mirror of https://gitee.com/openkylin/linux.git
USB: Fix PS3 USB shutdown problems
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@am.sony.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
8010e06cc9
commit
ddcb01ff9b
|
@ -205,6 +205,7 @@ static int ps3_ehci_remove(struct ps3_system_bus_device *dev)
|
||||||
|
|
||||||
tmp = hcd->irq;
|
tmp = hcd->irq;
|
||||||
|
|
||||||
|
ehci_shutdown(hcd);
|
||||||
usb_remove_hcd(hcd);
|
usb_remove_hcd(hcd);
|
||||||
|
|
||||||
ps3_system_bus_set_driver_data(dev, NULL);
|
ps3_system_bus_set_driver_data(dev, NULL);
|
||||||
|
|
|
@ -192,7 +192,7 @@ static int ps3_ohci_probe(struct ps3_system_bus_device *dev)
|
||||||
return result;
|
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;
|
unsigned int tmp;
|
||||||
struct usb_hcd *hcd =
|
struct usb_hcd *hcd =
|
||||||
|
@ -205,6 +205,7 @@ static int ps3_ohci_remove (struct ps3_system_bus_device *dev)
|
||||||
|
|
||||||
tmp = hcd->irq;
|
tmp = hcd->irq;
|
||||||
|
|
||||||
|
ohci_shutdown(hcd);
|
||||||
usb_remove_hcd(hcd);
|
usb_remove_hcd(hcd);
|
||||||
|
|
||||||
ps3_system_bus_set_driver_data(dev, NULL);
|
ps3_system_bus_set_driver_data(dev, NULL);
|
||||||
|
|
Loading…
Reference in New Issue