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 <[email protected]>
>> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html