[PATCH] iso pipe support for usbatm

Roman Kagan rkagan at mail.ru
Thu Mar 24 17:05:14 EST 2005


On Thu, Mar 24, 2005 at 07:36:07PM +0100, matthieu castet wrote:
> Attached a new patch :
> we don't resubmit the urb in usbatm_complete_receive.

I suppose you've tested it to work this way?  Then it's becoming fairly
easy to merge with the changes I proposed...

> +static unsigned int rcv_buf_per_urb = UDSL_DEFAULT_RCV_BUF_PER_URB;

I nitpick: rcv_iso_frames IMHO sounds a bit clearer.

> -	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()?

Cheers,
  Roman.



More information about the Usbatm mailing list