Greg:

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.

Please apply.

Alan Stern


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]>

===== drivers/usb/host/uhci-hcd.c 1.124 vs edited =====
--- 1.124/drivers/usb/host/uhci-hcd.c   Tue Aug  3 10:17:59 2004
+++ edited/drivers/usb/host/uhci-hcd.c  Wed Aug 11 09:54:29 2004
@@ -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

Reply via email to