Subject: NetBSD USB Question : Setting Transfer Descriptor on Host to Inac
To: 'netbsd-help@netbsd.org' <netbsd-help@netbsd.org>
From: Rakesh Jalali <RJalali@evertz.com>
List: netbsd-help
Date: 11/25/2002 12:39:57
I have the following USB interrupt transfer question between
host running NetBSD using UHCI and the device (using usbn9603 chip
from National Semiconductor).  Have posted it to different forums
without any help.  
 

A device is continuously sending interrupt transfers to the host.
One of the interrupt transfers has more than 64 bytes of data 
(because of a bug in the usb chip on the device). The host 
controlleron detecting more than 64 bytes, raises the BABBLE, 
STALLED flag and puts the TD(transfer descriptor) to INACTIVE state. 
The host does not send an ACK for the transfer. The device 
on not getting the ACK retransmits the data, this time with the 
correct data size (64 bytes). The host controller sends an ACK for 
the retransmitted transfer but does not process it i.e. does not 
pass it to the layers above. All the interrupt transfers after
this are processed correctly.

The host is running netbsd 1.5 release code using UHCI.

Now to my question:
1. Why is the retransmitted packet from the device to the host
ACK'ed but not processed?

2. What happens when a TD is set to INACTIVE state on detection
of BABBLE,STALLED flag? 

Any help on this would be greatly appreciated.

Thanks


Rakesh Jalali


----------------------------------------------------
Rakesh Jalali
Evertz Microsystems Ltd.
Phone:  (905)335-3700 x282 
Email: rjalali@evertz.com
http://www.evertz.com