[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 Stuart_Hayes@Dell.com 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 <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Showing
Please register or sign in to comment