ChangeSet 1.1843.4.2, 2004/08/24 11:38:47-07:00, [EMAIL PROTECTED] [PATCH] USB: Set QH bit in UHCI framelist entries
This patch fixes the error in the UHCI driver found by Stuart Hayes. It adds the UHCI_PTR_QH bit into the initial entries stored in the hardware framelist. It's not entirely clear how the driver ever managed to work with these bits not set; apparently by coincidence the QH entries resembled TD entries sufficiently closely to fool the hardware. On Tue, 10 Aug 2004 [EMAIL PROTECTED] wrote: > Never mind, I figured it out. It looks like the uhci-hcd driver > doesn't add a "| UHCI_PTR_QH" to the pointers that it puts > in the frame list. This causes the ICH to think that the frame list > is pointing to a bunch of TDs instead of QHs for purposes of > checking for TD errors. I can only assume that the ICH > is actually treating the frame list entries as QH pointers in spite > of that bit not being set when it is actually executing the > schedule, or else I don't think it would work generally. > > I guess the high addresses were just making the QH look like an > invalid TD instead of a valid TD... not sure exactly what the ICH > is checking for! Signed-off-by: Alan Stern <[EMAIL PROTECTED]> Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]> drivers/usb/host/uhci-hcd.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -Nru a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c --- a/drivers/usb/host/uhci-hcd.c 2004-08-26 16:43:45 -07:00 +++ b/drivers/usb/host/uhci-hcd.c 2004-08-26 16:43:45 -07:00 @@ -2254,7 +2254,8 @@ irq = 7; /* Only place we don't use the frame list routines */ - uhci->fl->frame[i] = cpu_to_le32(uhci->skelqh[irq]->dma_handle); + uhci->fl->frame[i] = UHCI_PTR_QH | + cpu_to_le32(uhci->skelqh[irq]->dma_handle); } /* ------------------------------------------------------- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel