On Thu, Feb 14, 2013 at 04:42:16PM +0000, Ian Abbott wrote:
> For Velleman K8055 (aka VM110), `vmk80xx_read_packet()` and
> `vmk8055_write_packet()` send an URB asynchronously and do not wait for
> it complete.  However, callers of `vmk80xx_read_packet()` are assuming
> the contents of the data buffer `devpriv->usb_rx_buf` are valid
> immediately after that function returns.
> 
> For Velleman K8061 (aka VM140), `vmk80xx_read_packet()` and
> `vmk80xx_write_packet()` punt the requests to `vmk80xx_do_bulk_msg()`
> which *does* wait for the URBs to complete (albeit with no error
> checking!).
> 
> Change `vmk80xx_read_packet()` and `vmk80xx_write_packet()` to use
> `usb_interrupt_msg()` for the K8055, so the callers of
> `vmk80xx_read_packet()` can assume the data buffer contents are valid
> (if no error occurred).  Remove all the code for checking for transfers
> in progress and busy waiting, as it's no longer needed.  Pretty much all
> the callers of `vmk80xx_read_packet()` and `vmk80xx_write_packet()` hold
> the same semaphore anyway, and the only caller that doesn't
> (`vmk80xx_reset_device()` called during initialization of the device)
> doesn't really matter.
> 
> Signed-off-by: Ian Abbott <[email protected]>
> ---
>  drivers/staging/comedi/drivers/vmk80xx.c | 254 
> +++----------------------------
>  1 file changed, 20 insertions(+), 234 deletions(-)

This patch fails to apply to my tree for some odd reason.  Care to
refresh it and resend it?

thanks,

greg k-h
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to