On Thursday, February 06, 2014 at 09:13:05 PM, Stephen Warren wrote:
> From: Stephen Warren <swar...@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.

Can you please add a reference to the spec where this is stated ?

> Signed-off-by: Stephen Warren <swar...@nvidia.com>
> ---
>  drivers/usb/host/ehci-hcd.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
> index 17187caed482..7068b762d8a4 100644
> --- a/drivers/usb/host/ehci-hcd.c
> +++ b/drivers/usb/host/ehci-hcd.c
> @@ -395,6 +395,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long
> pipe, void *buffer, QH_ENDPT2_UFCMASK(0) | QH_ENDPT2_UFSMASK(0);
>       qh->qh_endpt2 = cpu_to_hc32(endpt);
>       qh->qh_overlay.qt_next = cpu_to_hc32(QT_NEXT_TERMINATE);
> +     qh->qh_overlay.qt_altnext = cpu_to_hc32(QT_NEXT_TERMINATE);
> 
>       tdp = &qh->qh_overlay.qt_next;
> 
> @@ -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 ?

>               qh->qh_endpt1 = (0 << 28) | /* No NAK reload (ehci 4.9) */
>                       (usb_maxpacket(dev, pipe) << 16) | /* MPS */
>                       (1 << 14) |

Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to