On 12/25/2017 2:10 AM, Marc Zyngier wrote: > On Sun, 24 Dec 2017 23:01:33 +0000, > Troy Kisky wrote: >> >> commit 8466489ef5ba48272ba4fa4ea9f8f403306de4c7 >> Author: Marc Zyngier <marc.zyngier@xxxxxxx> >> Date: Tue Aug 1 20:11:08 2017 -0500 >> >> xhci: Reset Renesas uPD72020x USB controller for 32-bit DMA issue >> ... >> ... >> ... >> --- a/drivers/usb/host/xhci-pci.c >> +++ b/drivers/usb/host/xhci-pci.c >> @@ -284,6 +284,13 @@ static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) >> >> driver = (struct hc_driver *)id->driver_data; >> >> + /* For some HW implementation, a XHCI reset is just not enough... */ >> + if (usb_xhci_needs_pci_reset(dev)) { >> + dev_info(&dev->dev, "Resetting\n"); >> + if (pci_reset_function_locked(dev)) >> + dev_warn(&dev->dev, "Reset failed"); >> + } >> + >> ________ >> >> >> This pci_reset_function_locked call, causes my i.mx6qp processor to >> hang. It no longer responds to the MAGIC_SYSRQ key (break on serial >> port). >> >> >> If I comment it out, things return to normal when testing on >> Linux-next (20171222). >> >> If you need more info, let me know. > > Well, for a start: > > - Does it fail with 4.13 or 4.14 too? v4.13-rc4 - good v4.13-rc5 - fail v4.13 - fail v4.14 - fail > - Can you work out where it is locking up exactly (going slightly > deeper than the pci_reset_function_locked() call)? With this patch diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 05104bd2b611..8782945a9f70 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -4808,8 +4808,10 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks) mutex_init(&xhci->mutex); xhci->cap_regs = hcd->regs; + pr_err("%s: 1\n", __func__); xhci->op_regs = hcd->regs + HC_LENGTH(readl(&xhci->cap_regs->hc_capbase)); + pr_err("%s: 2\n", __func__); xhci->run_regs = hcd->regs + (readl(&xhci->cap_regs->run_regs_off) & RTSOFF_MASK); /* Cache read-only capability registers */ _____________________ The last thing printed is [ OK ] Reached target System Initialization. [ OK ] Listening on D-Bus System Message Bus Socket. [ OK ] Reached target Sockets. [ OK ] Started Daily Cleanup of Temporary Directories. [ 15.770319] xhci_gen_setup: 1 > - Do you get the symptom at boot time? Boot > On resume? Is the USB driver > compiled as a module or built-in? INSTALL drivers/usb/host/xhci-hcd.ko INSTALL drivers/usb/host/xhci-pci.ko INSTALL drivers/usb/host/xhci-renesas.ko > - What is your exact platform (something a bit more precise than just > i.MX6...)? It is a custom board not in mainline. It does need to load firmware. I tried moving pci_reset_function_locked before renesas_check_if_fw_dl_is_needed but that did not help. > > Thanks, > > M. > Thanks for looking at it. Troy -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html