Re: NEC HCD interrupt message limitation

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

 



> On Mon, 11 May 2009, Dwayne Fontenot  wrote:
> 
> > Hello,
> > 
> > I am losing interrupt messages when using a NEC D720101 HCD.> The interrupt messages are received as expected when using an integrated Intel 
> ICH9 HCD.
> > > To debug the problem I have installed a x86 PC with vanilla kernel 2.6.30-rc4 
> (32-bit) and a NEC D720101 HCD PCI card.> The same PC also has an integrated Intel 82801I (ICH9 Family) USB2 EHCI 
> Controller.
> > > I am connecting 36 FX2 (USB 2.0) based devices and six seven-port USB 2.0 hubs 
> to the four ports on the root hubs
> > (both the NEC and Intel HCDs have four ports on the same bus).
> > > For the USB bus topology see [1]. The USB devices are called Remote Units (RU 
> hereafter).
> > 
> > The problem:
> > > Each of the 36 RUs is sent a command to run a self test. When the test is 
> done, the RU posts an interrupt message
> > containing the test result status.
> > > When using the integrated Intel HCD, my app receives all 36 interrupts 
> messages (for usbmon output see [2]).
> > However, when using the NEC controller, I only get 24 messages (for usbmon 
> output see [3]). This is consistent behavior.
> > 
> > I tried staggering the test start times so all the interrupt messages would 
> not be posted within a small time window,
> > yet the 24 message limit remains.
> > 
> > It seems that perhaps outbound communication clears the bad state as I can do 
> this test over and over.
> > 
> > I appreciate any input on how to proceed with debugging this issue.
> 
> Is it always the same 24?  That is, if you run your test twice in a 
> row, do you receive messages back from the same 24 devices each time?  

I ran the test five times and the same 24 devices came back each time.

> Is there any relation between the missing responses and the order in 
> which your program submits its interrupt URBs?

The 24 devices which come back are the first 24 interrupt URBs which are submitted.

> Does it make any difference if you never have more than a single
> interrupt URB pending at any time (i.e., testing the devices one by 
> one)?

I'm not sure about this one; we wrote a USB driver to talk to the RUs and it submits
an interrupt URB for each device in the probe() function.
The driver re-submits the interrupt URB for each device in the interrupt message callback
function.

So far none of the interrupt USB submissions (including those after the first 24 on probe)
are returning errors.

> Alan Stern
> 

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