[U-Boot] [PATCH 1/2] ush: ehci: initialize altnext pointers in QH

Stephen Warren swarren at wwwdotorg.org
Fri Feb 7 17:44:58 CET 2014


On 02/07/2014 06:50 AM, Marek Vasut wrote:
> On Friday, February 07, 2014 at 07:47:14 AM, Stephen Warren wrote:
>> On 02/06/2014 07:53 PM, Marek Vasut wrote:
>>> On Thursday, February 06, 2014 at 09:13:05 PM, Stephen Warren wrote:
>>>> From: Stephen Warren <swarren at nvidia.com>
>>>>
>>>> A QH's overlay QTD altnext pointer should be explicitly marked invalid
>>>> so that the EHCI controller knows to look at the QTD next pointer.
>>>> Update the driver to do this.
...
>>>> diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
>>>>
>>>> @@ -1186,6 +1187,7 @@ create_int_queue(struct usb_device *dev, unsigned
>>>> long pipe, int queuesize, qh->qh_link = QH_LINK_TERMINATE;
>>>>
>>>>  		qh->qh_overlay.qt_next = (uint32_t)td;
>>>>
>>>> +		qh->qh_overlay.qt_altnext = QT_NEXT_TERMINATE;
>>>
>>> So next is td and altnext is terminate here ?
>>
>> Yes. TERMINATE really just means INVALID, so the EHCI controller gets
>> the pointer from qt_next rather than qt_altnext.
> 
> Hmmmm ... not really clear or self-explaining, is it. If you have time to 
> produce a RFC to clean this up, I'm all for checking it.

Looking at section 3.5.1 "Next qTD Pointer", this bit is in fact named
Terminate (hence it's referred to as the T bit), so this naming seems to
be ingrained in the EHCI specification, so I'm uninclined to change it
in U-Boot.



More information about the U-Boot mailing list