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