USB interrupt IN transfer - polling stops

Hi all,

I’m working on a USB device driver for Windows platforms and the
corresponding device firmware. I use the Philips USB controller ISP1581.
To read data from the device I set up an interrupt IN endpoint in the
firmware and in the driver I implemented irp / urb reusing in the
completion routine of the irp / urb as did W. Oney in his chapter 11
example “usbint”.
My problem is that the host stops polling the firmware’s endpoint after a
successful transfer, but the current irp / urb is still pending / it’s
completion routine is not yet called.
If I transmit dummy data every time the firmware has no “real” data it’s
working fine …
Do you have any idea?

Thank you!

Olav

From your description I take it that you do not actually have your device send
anything if it doesn’t have anything to send.

I think that’s illegal for interrupt transfers, and it will probably screw up
the sequencing on the USB bus, especially if you are using USB 2.

Burk.

oa@ky8.org wrote:

Hi all,

I’m working on a USB device driver for Windows platforms and the
corresponding device firmware. I use the Philips USB controller ISP1581.
To read data from the device I set up an interrupt IN endpoint in the
firmware and in the driver I implemented irp / urb reusing in the
completion routine of the irp / urb as did W. Oney in his chapter 11
example “usbint”.
My problem is that the host stops polling the firmware’s endpoint after a
successful transfer, but the current irp / urb is still pending / it’s
completion routine is not yet called.
If I transmit dummy data every time the firmware has no “real” data it’s
working fine …
Do you have any idea?

Thank you!

Olav


You are currently subscribed to ntdev as: xxxxx@stg.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Burkhard Daniel * xxxxx@mtronix.de * www.mtronix.de

mtronix Precision Measureing Instruments