table of contents
other versions
USB_QUEUE_RESET_DEVI(9) | USB Core APIs | USB_QUEUE_RESET_DEVI(9) |
NAME¶
usb_queue_reset_device - Reset a USB device from an atomic contextSYNOPSIS¶
void
usb_queue_reset_device(struct usb_interface * iface);
ARGUMENTS¶
ifaceUSB interface belonging to the device to reset
DESCRIPTION¶
This function can be used to reset a USB device from an atomic context, where usb_reset_device won't work (as it blocks). Doing a reset via this method is functionally equivalent to calling usb_reset_device, except for the fact that it is delayed to a workqueue. This means that any drivers bound to other interfaces might be unbound, as well as users from usbfs in user space. Corner cases: - Scheduling two resets at the same time from two different drivers attached to two different interfaces of the same device is possible; depending on how the driver attached to each interface handles -> pre_reset, the second reset might happen or not. - If the reset is delayed so long that the interface is unbound from its driver, the reset will be skipped. - This function can be called during . probe. It can also be called during . disconnect, but doing so is pointless because the reset will not occur. If you really want to reset the device during . disconnect, call usb_reset_device directly -- but watch out for nested unbinding issues!COPYRIGHT¶
January 2017 | Kernel Hackers Manual 4.8. |