[PATCH] finish iso support
castet.matthieu at free.fr
Mon Jun 27 18:42:20 EDT 2005
Duncan Sands wrote:
> Hi Matthieu,
>>this patch aim to finish iso support in usbatm.
> +module_param(rcv_buf_iso_packets, uint, S_IRUGO);
> + "Number of packets in a iso frame(range: 1-"
> + __MODULE_STRING(UDSL_MAX_RCV_ISO_PACKETS) ", default: "
> + __MODULE_STRING(UDSL_DEFAULT_RCV_ISO_PACKETS) ")");
> can you please explain why you add this new parameter.
The problem was the Roman formula don't work with default rcv_buf_size
or a multiple of rcv_buf_size as it produce lot's of error.
I thought the modem expected only some number of packets in a iso frame,
so I find this way to do it.
After some tests I have just discover that the problem occurs if the
size of the last packet is different from the others.
I don't know if it is another bug of the eagle, but this part of the
patch could be dropped, and I will add something to be sure that all the
packets have the same size.
I don't know if the default rcv_buf_size is good for iso as it will make
3 packets per iso frame with the default configuration for my
configuration (packet size = 1007).
> Also, what are your reasons for adding the use_iso field, rather than using
> some other method. Other methods:
> (1) modify the struct usbatm_driver in the bind() call, setting the right
> endpoint (in order for this to work properly, usbatm should use a copy of
> the original struct usbatm_driver, but that's easy to arrange).
Weren't you reluctant to split the initialisation in 2 parts (That was
how Roman did it,
but you strip this from his patch)?
affect instance->rx_channel.endpoint before bind call and do urb init
after bind call.
Also actualy struct usbatm_channel is "private data", I find it was a
bit ugly to declare
it public data and let's the driver acces it.
> (2) supply usbatm_usb_probe with different values for struct usbatm_driver.
What different values should I supply ?
With the current values in struct usbatm_driver there no way to know if
we want iso or bulk.
That's why I add a new value use_iso in struct usbatm_driver.
More information about the Usbatm