Help with EHCI Missing Bulk In Callbacks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm currently working on a project that communicates with an FPGA board
over a USB link.  This board sends a heartbeat message to our PC every 8
seconds.  Every once in a while this message is not processed by our
software that is listening on the USB port until after 12 seconds
expire.  After putting an Elysis USB analyzer on the bus we were able to
prove that the message does come over the wire at the proper 8 second
interval.  However, the URB call back is not invoked until 4 seconds
later.  I put some debug statements in the EHCI driver and below is the
output of what I'm seeing.  Basically these logs show that not even
scan_async is invoking qh_completions until 4 seconds later.  I put a
new line in between each 8 second interval for easier readability.  As
shown, the last one prints 12 seconds later.  The first line of each
interval is printed right before scan_async calls qh_completions.  The
next two lines are printed inside of qh_completions once a QTD has been
detected as deactivated.  I'm just wondering if anyone can help me
determine if this is a hardware problem with the host controller?  I
know there have been some updates to the ehci software on newer kernel
releases but I suspect that this specific problem is not address by
those changes and it is not a sw problem. 

The following is what I'm running:

2.6.34.8-0.2 Kernel from OpenSuse
EHCI Chipset is an Intel 82801H (ICH8)

//Message 1 on time
Jun 14 21:06:39 magic kernel: [  128.156346] TEMPMSGCHECK---Check
invoked for our pipe at scan_async.  Time is 4294142,643091
Jun 14 21:06:39 magic kernel: [  128.156352] TEMPMSG---A serial QTD for
endpoint 4 has completed 52 at 4294142,643091.  Intresult is 32768
Jun 14 21:06:39 magic kernel: [  128.156355] TEMPMSG---This serial QTD
is a short packet. QH State is 1.  Total QTDs are 1

//Message 2 on time
Jun 14 21:06:47 magic kernel: [  136.155976] TEMPMSGCHECK---Check
invoked for our pipe at scan_async.  Time is 4294150,640875
Jun 14 21:06:47 magic kernel: [  136.155981] TEMPMSG---A serial QTD for
endpoint 4 has completed 53 at 4294150,640875.  Intresult is 32768
Jun 14 21:06:47 magic kernel: [  136.155984] TEMPMSG---This serial QTD
is a short packet. QH State is 1.  Total QTDs are 1

//Message 3 on time
Jun 14 21:06:55 magic kernel: [  144.155479] TEMPMSGCHECK---Check
invoked for our pipe at scan_async.  Time is 4294158,639659
Jun 14 21:06:55 magic kernel: [  144.155484] TEMPMSG---A serial QTD for
endpoint 4 has completed 54 at 4294158,639659.  Intresult is 32768
Jun 14 21:06:55 magic kernel: [  144.155487] TEMPMSG---This serial QTD
is a short packet. QH State is 1.  Total QTDs are 1

//This message has come late (12 seconds instead of the usual 8 like the
previous messages)  USB Analyzer shows this message on the bus on time
at 8 seconds
Jun 14 21:07:07 magic kernel: [  156.011433] TEMPMSGCHECK---Check
invoked for our pipe at scan_async.  Time is 4294170,493857
Jun 14 21:07:07 magic kernel: [  156.011438] TEMPMSG---A serial QTD for
endpoint 4 has completed 55 at 4294170,493857.  Intresult is 32768
Jun 14 21:07:07 magic kernel: [  156.011441] TEMPMSG---This serial QTD
is a short packet. QH State is 1.  Total QTDs are 1


Thank you,

Daniel P Graves
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux