Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       usb_reset_configuration - lightweight device reset

SYNOPSIS

       int usb_reset_configuration  (struct usb_device * dev);

ARGUMENTS

       dev    the device whose configuration is being reset

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 data toggle (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 don’t support the SET_INTERFACE request,
       and others won’t reset all the interface state (notably data  toggles).
       Resetting   the   whole   configuration  would  affect  other  drivers’
       interfaces.

       The caller must own the device lock.

       Returns zero on success, else a negative error code.