lkml.org 
[lkml]   [2014]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Missing USB XHCI and EHCI reset for kexec
On Mon, Apr 14, 2014 at 05:44:58PM +0200, stefani@seibold.net wrote:
>
> Zitat von Benjamin Herrenschmidt <benh@au1.ibm.com>:
>
> >On Sun, 2014-04-13 at 21:22 +0200, Stefani Seibold wrote:
> >>When executing a kexec kernel on a PowerPC board the new started kernel
> >>will not find already enumerated USB devices due a missing reset on the
> >>USB bus.
> >>
> >>As a work around a
> >>
> >>echo 1 >/sys/bus/pci/drivers/[ex]hci-pci/BUS-ADDRESS-OF-THE-HCD/reset
> >>
> >>will solve this. But this is far from beauty.
> >>
> >>My latest kernel without this issue was for EHCI kernel 2.6.39 and for
> >>XHCI kernel 3.4, but i have no idea when exactly this behavior was
> >>introduced.
> >>
> >>For X86 all is fine.
> >
> >I don't know about EHCI specifically but this is a known issue with
> >XHCI, I observe similar issues on other powerpc platforms (servers)
> >and this isn't architecture specific (looks more like actualy xhc
> >implementation specific).
> >
> >Thadeu Cascardo (on CC) has been the one investigating that on our side,
> >he might have more to add including patches.
> >
>
> I have now a kernel 3.14 dmesg log of the problem. After a kexec the
> kexeced 3.14 kernel shows:
>
> [ 1.170029] xhci_hcd 0001:03:00.0: xHCI Host Controller
> [ 1.175306] xhci_hcd 0001:03:00.0: new USB bus registered,
> assigned bus number 1
> [ 1.212561] xhci_hcd 0001:03:00.0: Host not halted after 16000
> microseconds.
> [ 1.219621] xhci_hcd 0001:03:00.0: can't setup: -110
> [ 1.224597] xhci_hcd 0001:03:00.0: USB bus 1 deregistered
> [ 1.230021] xhci_hcd 0001:03:00.0: init 0001:03:00.0 fail, -110
> [ 1.235955] xhci_hcd: probe of 0001:03:00.0 failed with error -110
>
> Any idea?
>
> - Stefani
>
>

What is your controller vendor and device IDs? Is that a TI chip?

Can you check if the patch I sent a month ago fixes it? [1] There's the
whole story there. In fact, you will also need something like the patch
below. Can you apply only the first one, verify, and, then, the other
one as well, and report what worked for you?

[1] http://marc.info/?l=linux-usb&m=139483181809062&w=2

Thanks.
Cascardo.
---
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 47390e3..232574f 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -392,7 +392,7 @@ static struct pci_driver xhci_pci_driver = {
.remove = xhci_pci_remove,
/* suspend and resume implemented later */

- .shutdown = usb_hcd_pci_shutdown,
+ .shutdown = xhci_pci_remove,
#ifdef CONFIG_PM
.driver = {
.pm = &usb_hcd_pci_pm_ops


\
 
 \ /
  Last update: 2014-04-15 01:01    [W:0.103 / U:0.320 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site