Re: [PATCH 4/4] staging: comedi: vmk80xx: wait for URBs to complete

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <abbotti@xxxxxxxxx>
> ---
>  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
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux