I'm updating our WhiteHEAT driver, and would like to have URB queueing
working. I'm using drivers/usb/host/uhci.c. After some time of
submitting queued OUT URBS, the system stops. uhci_interrupt() stops
being entered, ie, the hardware stops generating interrupts. My
machine is still fine in all other regards, so it's not a
dead/livelock. It does not appear to be a problem with the toggle bit.
With the analyser we see that the bus stops mostly. The SOF item is
still "running" (sorry for the horrible USB terminology), but the IN
token on EP7 is not being submitted to the WhiteHEAT. If I change the
driver to use only one URB on OUT then this does not occur.

Below is the output of /proc/drivers/uhci/hc0. I'm not knowledgeable
enough to see any problems in it. I'm hoping someone here can spot
something obvious.

What I do see, which may not be problems:
- Queued QH dfe53180 is 'link'ed from two different QHs
- TD dfe5a270 'link's to a QH, instead of having UHCI_PTR_TERM like
  the rest
- Queued QH dfe530f0 'link's to dfe53092, which doesn't seem to exist
- The Queued QH list is pointed to twice

I'm willing to do testing.

..Stu

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)



-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
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