Messages in this thread | | | Subject | Re: [PATCH v5 1/4] usb: dbc: early driver for xhci debug capability | From | Lu Baolu <> | Date | Thu, 9 Feb 2017 15:37:25 +0800 |
| |
Hi Ingo,
On 01/26/2017 03:22 PM, Ingo Molnar wrote: > * Lu Baolu <baolu.lu@linux.intel.com> wrote: > >> Hi, >> >> On 01/25/2017 10:38 PM, Peter Zijlstra wrote: >>> On Wed, Jan 25, 2017 at 08:27:38PM +0800, Lu Baolu wrote: >>>> In my driver, udelay() is mostly used to handle time out. >>>> >>>> Xdbc hides most USB things in its firmware. Early printk driver only needs >>>> to setup the registers/data structures and wait until link ready or time out. >>>> Without udelay(), I have no means to convert the polling times into waiting >>>> time. >>> What is timeout and why? >> Put it in simple: >> >> The driver sets the RUN bit in control register and polls READY >> bit in status register for the successful USB device enumeration. >> As the USB device enumeration might fail and the READY bit will >> never be set, the driver must have a timeout logic to avoid >> endless loop. > Is there any error status available in the host registers anywhere that tells us > that enumeration did not succeed?
No, there isn't. The xhci spec requires software to impose a timeout.
Page 425, xhci specification:
" Software shall impose a timeout between the detection of the Debug Host connection and the DbC Run transition to ‘1’. "
Best regards, Lu Baolu
| |