control transfers may read/write 0 bytes.
That's not the issue probably.

IMHO, it's likely that at some point the driver missed a td and
from that point on the endpoint stalled.


On Wed, Feb 4, 2009 at 11:57 AM,  <kokam...@hera.eonet.ne.jp> wrote:
>> my P5K-VM machine's pci output is as follows:
>> 0.26.0:       usb  0c.03.00 8086/2937  10 4:0000c481 32
>> 0.26.1:       usb  0c.03.00 8086/2938   3 4:0000c801 32
>> 0.26.2:       usb  0c.03.00 8086/2939   5 4:0000c881 32
>> 0.29.0:       usb  0c.03.00 8086/2934   5 4:0000c001 32
>> 0.29.1:       usb  0c.03.00 8086/2935  10 4:0000c081 32
>> 0.29.2:       usb  0c.03.00 8086/2936   5 4:0000c401 32
>
> I debugged the devusv.c usbuhci.c in /sys/src/9/pc, and got the
> following result, where I'm confused why the b=0x0 value of the last line.
> If this is true it would write to 0!, and system hungs.   It's very
> reasonable, but why we get b=0x0 at dumptd()...
>
> Anyway the debugging outputs after I plugined a usb disk are:
>
> e: 95
> r: 95
> r2: 280
> r3: 80
> r: 95 0
> e: 95
> speed 1
> out [8] 80 06 00 01 00 00 08 00
> queuetd qxmit: t=f0047080 lt=f0047080 q=f0048080 first=0 last=0 
> entries=00000001
>        t=f0047080 q=f0048080 first=f0047080 last=f0047080 entries=00047080
> qh 0xf0048080: 0x480c2 0x1
> qh 0xf00480c0: 0x480e2 0x1
> qh 0xf00480e0: 0x480a2 0x1
> qh 0xf00480a0: 0x1 0x47060
> td 0xf0047060: l=0x47060 s=0x0 d=0x0 b=0x0 0x0 f=0x0
>        s=,ep=0,d=0,D=0
>
> here stalls.
>
> The functions used are:
>  portenable()-->portreset()-->portenable()-->write()-->qxmit()-->queuetd()
>        -->dumpqh()-->dumptd()
>
> I touched some on usb device long time ago, and now forgot all
> because of my aging efect.
>
> If someone point me the place reporting wrong values, please
> let me know it.
>
> Thanks inadvance
>
> Kenji
>
>
>

Reply via email to