Re: [Linux-usb-users] USB: Non zero status
Martin Bachem <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
Alan Stern wrote: > On Fri, 17 Aug 2007, Martin Bachem wrote: > >> Hi! >> I followed the thread regarding the -EXDEV error, which leads me to the >> same point. > > Which thread is that? You have to be much more specific; I read many > of threads every day. > >> I'm running an ISDN USB device, which is running ISO 6 endpoints. Each >> Endpoint (3 tx + 3 rx) is handled by two ISO URBs, each ISO URB is >> contain 8 ISO packets, each ISO packet is containing 1 up to 8 bytes >> payload. I use two ISO URBs for each endpoints to have a seamless ISO >> traffic, which is essential for my flow-control. >> >> >From time to time I get the -EXDEV error in the ISO completion. > > Which host controller driver do you use? uhci-hcd? > >> rx_iso_complete with -EXDEV urb->status -18, fifonum 5 >> rx_iso_complete ISO packet 1, status: -18 >> rx_iso_complete ISO packet 2, status: -18 >> rx_iso_complete ISO packet 3, status: -18 > ... >> tx_iso_complete with -EXDEV, urb->status -18, fifonum 4 >> tx_iso_complete with -EXDEV, ISO packet 1, status: -18 >> tx_iso_complete with -EXDEV, ISO packet 2, status: -18 >> tx_iso_complete with -EXDEV, ISO packet 3, status: -18 > ... >> That means 6 ISO URBs get a callback with the 'partially completed' >> error, each one with packet 1 to 3. >> >> Is the recommended handling of -EXDEV not to handle it at all, but go on >> re submitting URBs? > > There is no special recommendation; you should do whatever is > appropriate in your situation. You might be able to avoid the errors > by using more packets per URB. sending more than 8 packets per ISO URB is quite problematic regarding the flow control implemented in the driver. The Fifos are just capable of 128 bytes, and I have to make sure they never run empty and never overflow while sending one HDLC frame. The ISDN controllers status information of each fifo's threshold reached is retrieved in every rx-iso URB, so I get this asynchronously to the TX ISO completions. To forecast the outgoing data rate in order to predict the threshold-reached event is also not very simple due to the ISDN Controller's HDLC encoding, because the ISDN controller is adding Flags, bit-stuffing, etc., but has a constant data rate of 64Kbit/s... whatever, I think I can boost the num-packets per ISO URB from 8 up to 12. Do you think this matters regarding the -EXDEV Error? If it's not likely that this will relax the situation, I'll keep the flow control as is ;) thanks a lot, Martin >> Should I assume the data contained in the first 3 of >> 8 ISO packets within that URBs was lost? > > Yes. Whenever the packet's status is not 0 you should assume the data > was lost. > > Alan Stern > ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel