Re: [PATCH] xhci: Add reset on resume quirk for asrock p67 host

From: Maarten Lankhorst
Date: Wed Jun 15 2011 - 18:41:54 EST


Op 15-06-11 23:41, Maarten Lankhorst schreef:
> Op 15-06-11 23:21, Sarah Sharp schreef:
>> On Wed, Jun 15, 2011 at 05:00:17PM -0400, Alan Stern wrote:
>>> On Wed, 15 Jun 2011, Sarah Sharp wrote:
>>>
>>>> On Wed, Jun 15, 2011 at 10:29:01PM +0200, Maarten Lankhorst wrote:
>>>>> The asrock p67 xhci controller completely dies on resume,
>>>>> add a quirk for this, to bring the host back online after a suspend.
>>>>>
>>>>> This should be backported to stable kernels as far back as 2.6.34.
>>>> Why 2.6.34? Only kernels as old as 2.6.37 had xHCI suspend and resume
>>>> support. Before 2.6.37, the xHCI driver would prevent the system from
>>>> suspending at all.
>>>>
>>>> Otherwise looks fine.
>>>>
>>>> Sarah Sharp
>>>>
>>>>> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
>>>>> index 06e7023..42fd032 100644
>>>>> --- a/drivers/usb/host/xhci.c
>>>>> +++ b/drivers/usb/host/xhci.c
>>>>> @@ -759,6 +759,8 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
>>>>> msleep(100);
>>>>>
>>>>> spin_lock_irq(&xhci->lock);
>>>>> + if (xhci->quirks & XHCI_RESET_ON_RESUME)
>>>>> + hibernated = 0;
>>> Shouldn't this be "hibernated = true;"? You want the driver to treat
>>> suspend as though it were hibernation, not the other way around.
>> Yes, good catch. Maarten, can you respin this patch (and with the
>> note that it should be backported as far as 2.6.37).
>>
>> Sarah Sharp
> Odd! I could have sworn I had a succesful suspend with the quirk printed
> in dmesg. The hang appears to not happen 100% of the time then. Weird,
> wish I had saved the log. Will respin the patch.
>
> Of course the act of observing made it impossible to reproduce. :-/
>
> ~Maarten
I cannot be 100% sure, but normally on suspend I saw 'HC died'. This
time I *think* a urb submit timed out instead, but I cannot reproduce
it now. I just assume it was user error though, still weird.

Fixed patch reliably works without errors, surviving 20 suspends.
The other one only worked once it seems, discard as anomaly please.
--
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/