<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>usb_reset_configuration</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" href="index.html" title="The Linux-USB Host Side API" /><link rel="up" href="usbcore.html" title="Chapter 5. USB Core APIs" /><link rel="prev" href="API-usb-set-interface.html" title="usb_set_interface" /><link rel="next" href="API-usb-driver-set-configuration.html" title="usb_driver_set_configuration" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">usb_reset_configuration</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-usb-set-interface.html">Prev</a> </td><th width="60%" align="center">Chapter 5. USB Core APIs</th><td width="20%" align="right"> <a accesskey="n" href="API-usb-driver-set-configuration.html">Next</a></td></tr></table><hr /></div><div class="refentry"><a id="API-usb-reset-configuration"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>usb_reset_configuration — lightweight device reset </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <strong class="fsfunc">usb_reset_configuration </strong>(</code></td><td>struct usb_device * <var class="pdparam">dev</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a id="idm140259811950288"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p> the device whose configuration is being reset </p></dd></dl></div></div><div class="refsect1"><a id="idm140259811947152"></a><h2>Description</h2><p> 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. </p><p> Because this affects multiple interfaces, avoid using this with composite (multi-interface) devices. Instead, the driver for each interface may use <code class="function">usb_set_interface</code> 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 endpoint state). Resetting the whole configuration would affect other drivers' interfaces. </p><p> The caller must own the device lock. </p><p> Returns zero on success, else a negative error code. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-usb-set-interface.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="usbcore.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-usb-driver-set-configuration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">usb_set_interface</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">usb_driver_set_configuration</span></td></tr></table></div></body></html>