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

Stephen Warren swarren at wwwdotorg.org
Thu Feb 6 21:13:05 CET 2014


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.

Signed-off-by: Stephen Warren <swarren at 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;
 		qh->qh_endpt1 = (0 << 28) | /* No NAK reload (ehci 4.9) */
 			(usb_maxpacket(dev, pipe) << 16) | /* MPS */
 			(1 << 14) |
-- 
1.8.1.5



More information about the U-Boot mailing list