Re: Submitting urbs from disconnect callback

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

 



On Tue, 17 Feb 2015, Jakub Kicinski wrote:

> Hi,
> 
> I have a usb network device where part of functionality is implemented
> in firmware.  To communicate with the firmware I need to submit bulk
> URBs to one of the EPs.  Unfortunately when device is being unbound or
> the driver is removed from the kernel EPs are disabled before 
> .disconnect() is called and I cannot tell the firmware to bring the
> device down.  As a result the device sometimes locks up on rebind.
> 
> I suspect this is not an uncommon problem.  I tried usb_reset_device()
> and it seems to help but not with all sorts of hangs.  I don't have any
> documentation of the device - only a half-broken vendor driver which
> doesn't deal with this case.  
> 
> Is there a way to submit bulk URBs from .disconnect() callback? 
> Are there any best practices on how to deal with such hardware?

The way to do this is to set the .soft_unbind member of the usb_driver 
structure to 1.  That will prevent the endpoints from being disabled 
when the disconnect routine is called during unbinding.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux