Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1214480

Re: [PATCH 0/5] usb: xhci: Fix breakage on dual-role case

From Mathias Nyman <mathias.nyman@linux.intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH 0/5] usb: xhci: Fix breakage on dual-role case
Date 2015-08-27 13:20 +0200
Message-ID <q23nP-2PN-5@gated-at.bofh.it> (permalink)
References <pYMtc-3yQ-9@gated-at.bofh.it> <pZs94-65q-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 20.08.2015 10:09, Roger Quadros wrote:
> Hi Mathias,

Hi

>
> On 18/08/15 13:39, Roger Quadros wrote:
>> Hi,
>>
>> Plugging and unplugging a USB-OTG adapter with a USB device into a
>> am437x-gp-evm dual-role port (USB1) causes XHCI to malfunction
>> and USB device to be no longer detected after a few iterations.
>>
>> The triggering case is so
>> 1) USB1 in peripheal mode
>> 2) plug OTG adapter with USB device
>> 3) USB1 switches to host mode
>> 4) Detects new USB device
>> 5) unplug OTG adapter
>> 6) OTG core tries to remove host controller while new device
>> is being processed.
>>
>> At 6 some races are observed in the XHCI driver causing it to
>> malfunction. See kernel log at the end of this mail.
>>
>> This series tries to address some of the issues.
>> Althouth it is not 100% fool proof yet and XHCI can still get
>> stuck up for a few seconds occasionally, it did recover always
>> in a max of 10 seconds and the USB device was enumerated after
>> that.
>>
>> During a dual-role switch, usb_remove_hcd() and usb_add_hcd()
>> will be called consecutively for both Shared and Primary
>> HCDs. This can happen asynchronously and we have to be prepared
>> for it.
>>
>
> Even after this series I do occasionally see a delay of 5 seconds
> during adapter detach. (please see kernel log below).
>
> Is it possible to further optimize so that when xhci_stop is called
> we don't depend entirely on timeout timers to stop queued commands?

Yes, sounds reasonable. Command timer and ring could probably be stopped,
remaining commands aborted and returned.
  
-Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: [PATCH 0/5] usb: xhci: Fix breakage on dual-role case Roger Quadros <rogerq@ti.com> - 2015-08-20 09:10 +0200
  Re: [PATCH 0/5] usb: xhci: Fix breakage on dual-role case Mathias Nyman <mathias.nyman@linux.intel.com> - 2015-08-27 13:20 +0200

csiph-web