> You could try to issue a usb_reset_device() at driver initialisation in > order to restart the firmware. Please report if this solves your problem. > thanks, > > Holger That certainly sounds like it could help. I'll give this a try the next time the device locks itself up (could be a few days). Am I right in thinking that I just need to make the following changes to the cinergyt2_probe function: INIT_WORK(&cinergyt2->query_work, cinergyt2_query, cinergyt2); cinergyt2->udev = udev; + if ((err = usb_reset_device(&cinergyt2->udev)) != 0) { + printk("%s: usb_reset_device() failed (err = %d)\n", + __FUNCTION__, err); + goto bailout; + } if (cinergyt2_alloc_stream_urbs (cinergyt2) < 0) { dprintk(1, "unable to allocate stream urbs\n"); kfree(cinergyt2); Thanks for your help. Steve