From: Alan Stern [mailto:[EMAIL PROTECTED] 
> However, there is one possibility...  Older Intel UHCI 
> hardware (the PIIX3
> Neptune chipset) has an erratum that causes the controller 
> sometimes to
> update a completed TD's status but not update the QH's 
> element pointer.  
> As a result the controller remains stuck on the completed TD and never
> advances to the next one.  Could that be happening to you?  
> You can find
> out by building the driver with CONFIG_USB_DEBUG turned on 
> and loading it
> with
> 
>       modprobe uhci debug=3
> 
> Then the file under /proc/driver/uhci/ corresponding to the 
> controller in
> use will contain debugging information showing the current 
> state of the
> schedule.  If you examine that while the queue is stopped 
> you'll be able
> to see exactly what's wrong.

Hm, interesting. I posted this a few days ago, but here it is again;
the output of /proc/driver/uhci/hc0 when the queueing breaks. I don't
think I had debug turned on at the time though.

Also attached below is the debug=3 version. I don't think the errata
is the cause though; if I read that right the TDs are all still
active.

..Stu

Original:

HC status
  usbcmd    =     00c1   Maxp64 CF RS 
  usbstat   =     0000   
  usbint    =     000f
  usbfrnum  =   (0)d30
  flbaseadd = 1fe54000
  sof       =       40
  stat1     =     0480   
  stat2     =     0495   PortEnabled PortConnected 
Frame List
Skeleton TD's
- skel_term_td
    [dfe5a1b0] link (1fe5a1b0) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
Skeleton QH's
- skel_bulk_qh
    [dfe530c0] link (1fe53152) element (1fe5a1e0)
      0: [dfe5a1e0] link (00000001) e3 SPD IOC Active NAK Length=7ff MaxLen=3f
DT0 EndPt=7 Dev=8, PID=69(IN) (buf=1f9ae660)
    [dfe53150] link (1fe53182) element (1fe5a270)
      0: [dfe5a270] link (1fe53122) e3 SPD IOC Active NAK Length=3f MaxLen=3f
DT1 EndPt=4 Dev=8, PID=e1(OUT) (buf=1f9ae160)
--  Queued QH's:
    [dfe53120] link (1fe53182) element (1fe5a2a0)
      0: [dfe5a2a0] link (00000001) e3 SPD IOC Active Length=0 MaxLen=3f DT0
EndPt=4 Dev=8, PID=e1(OUT) (buf=1f9ae360)
    [dfe53180] link (1fe530f2) element (1fe5a210)
      0: [dfe5a210] link (00000001) e3 SPD IOC Active Length=0 MaxLen=3f DT0
EndPt=4 Dev=8, PID=69(IN) (buf=1f9ae1e0)
    [dfe530f0] link (1fe53092) element (1fe5a240)
      0: [dfe5a240] link (00000001) e3 SPD IOC Active Length=0 MaxLen=1 DT0
EndPt=7 Dev=8, PID=e1(OUT) (buf=1f9ae3e0)



With debug=3:

HC status
  usbcmd    =     00c1   Maxp64 CF RS 
  usbstat   =     0000   
  usbint    =     000f
  usbfrnum  =   (1)a54
  flbaseadd = 1dc5c000
  sof       =       40
  stat1     =     0480   
  stat2     =     0495   PortEnabled PortConnected 
Frame List
Skeleton TD's
- skel_term_td
    [dccee1b0] link (1ccee1b0) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int256_td
    [dccee180] link (1ccee150) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int128_td
    [dccee150] link (1ccee120) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int64_td
    [dccee120] link (1ccee0f0) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int32_td
    [dccee0f0] link (1ccee0c0) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int16_td
    [dccee0c0] link (1ccee090) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int8_td
    [dccee090] link (1ccee060) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int4_td
    [dccee060] link (1ccee030) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int2_td
    [dccee030] link (1ccee000) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
- skel_int1_td
    [dccee000] link (1cbe1002) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f,
PID=69(IN) (buf=00000000)
Skeleton QH's
- skel_ls_control_qh
    [dcbe1000] link (1cbe1032) element (00000001)
      urbp == NULL
- skel_hs_control_qh
    [dcbe1030] link (1cbe1062) element (00000001)
      urbp == NULL
- skel_bulk_qh
    [dcbe1060] link (1cbe1092) element (00000001)
      urbp == NULL
    [dcbe1180] link (1cbe10f2) element (1ccee210)
      0: [dccee210] link (00000001) e3 SPD IOC Active NAK Length=7ff MaxLen=3f
DT0 EndPt=4 Dev=3, PID=69(IN) (buf=1d315fa4)
    [dcbe10f0] link (1cbe11b2) element (1ccee270)
      0: [dccee270] link (1cbe1122) e3 SPD IOC Active NAK Length=3f MaxLen=3f
DT1 EndPt=4 Dev=3, PID=e1(OUT) (buf=1d315c8c)
--  Queued QH's:
    [dcbe1120] link (1cbe11b2) element (1ccee2a0)
      0: [dccee2a0] link (1cbe1212) e3 SPD IOC Active Length=0 MaxLen=3f DT0
EndPt=4 Dev=3, PID=e1(OUT) (buf=1d315cd4)
    [dcbe1210] link (1cbe11b2) element (1ccee2d0)
      0: [dccee2d0] link (1cbe10c2) e3 SPD IOC Active Length=0 MaxLen=3f DT1
EndPt=4 Dev=3, PID=e1(OUT) (buf=1d315d1c)
    [dcbe10c0] link (1cbe11b2) element (1ccee240)
      0: [dccee240] link (00000001) e3 SPD IOC Active Length=0 MaxLen=3f DT0
EndPt=4 Dev=3, PID=e1(OUT) (buf=1d315d64)
    [dcbe11b0] link (1cbe1152) element (1ccee1e0)
      0: [dccee1e0] link (00000001) e3 SPD IOC Active NAK Length=7ff MaxLen=3f
DT0 EndPt=7 Dev=3, PID=69(IN) (buf=1d519344)
    [dcbe1150] link (1cbe1092) element (1ccee300)
      0: [dccee300] link (00000001) e3 SPD IOC Active Length=0 MaxLen=1 DT0
EndPt=7 Dev=3, PID=e1(OUT) (buf=1d51926c)
- skel_term_qh
    [dcbe1090] link (00000001) element (1ccee1b0)
      urbp == NULL



-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to