From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Fri, 7 Feb 2014 03:53:08 +0100 Subject: [U-Boot] [PATCH 1/2] ush: ehci: initialize altnext pointers in QH In-Reply-To: <1391717586-5086-1-git-send-email-swarren@wwwdotorg.org> References: <1391717586-5086-1-git-send-email-swarren@wwwdotorg.org> Message-ID: <201402070353.08713.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thursday, February 06, 2014 at 09:13:05 PM, Stephen Warren wrote: > From: Stephen Warren > > 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 > --- > 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