[PATCH] iso pipe support for usbatm

matthieu castet castet.matthieu at free.fr
Thu Mar 24 17:57:36 EST 2005


Roman Kagan wrote:
> On Thu, Mar 24, 2005 at 07:36:07PM +0100, matthieu castet wrote:
> 
>>-	if (likely(!urb->status))
>>+	if (likely(!urb->status) ||
>>+			/* via chipset produce lot's of crc error...*/
>>+			(usb_pipeisoc(instance->rx_endpoint) && urb->status == -EILSEQ))
>> 		tasklet_schedule(&instance->receive_tasklet);
> 
> 
> This test should go a bit earlier, and set ->filled_cells as we
> discussed instead of tasklet_schedule (AFAICT calling or not
> tasklet_schedule here doesn't change the fact that the data from this
> urb will be processed, it just makes it wait until the next successful
> urb completion).
> 
> Ups, just struck me: when you see -EILSEQ, is the data in the buffer all
> valid?  Or it's actually bogus and is being discarded later on in
> usbatm_extract_cells()?
in fact in case of -EILSEQ, there could be some frames that are valid, 
but some are invalid : we check the status for each frame in the loop 
before.

This test is to avoid in case of consecutive errors to never call 
tasklet_schedule, and never submit again urb...

Cheers,

Matthieu



More information about the Usbatm mailing list