1. NAME

usb_reset_configuration - lightweight device reset

2. SYNOPSIS

int usb_reset_configuration(struct usb_device *  dev );

3. ARGUMENTS

dev
    the device whose configuration is being reset

4. DESCRIPTION

This issues a standard SET_CONFIGURATION request to the device using the current configuration. The effect is to reset most USB-related state in the device, including interface altsettings (reset to zero), endpoint halts (cleared), and endpoint state (only for bulk and interrupt endpoints). Other usbcore state is unchanged, including bindings of usb device drivers to interfaces.

Because this affects multiple interfaces, avoid using this with composite (multi-interface) devices. Instead, the driver for each interface may use usb_set_interface on the interfaces it claims. Be careful though; some devices donAqt support the SET_INTERFACE request, and others wonAqt reset all the interface state (notably endpoint state). Resetting the whole configuration would affect other driversAq interfaces.

The caller must own the device lock.

Returns zero on success, else a negative error code.

5. COPYRIGHT