usb_reset_device(9)

NAME

usb_reset_device - perform a USB port reset to reinitialize a device

SYNOPSIS

int usb_reset_device(struct usb_device * udev);

ARGUMENTS

udev
device to reset (not in SUSPENDED or NOTATTACHED state)

DESCRIPTION

WARNING - don´t use this routine to reset a composite device (one with multiple interfaces owned by separate drivers)! Use
usb_reset_composite_device instead.

Do a port reset, reassign the device´s address, and establish its
former operating configuration. If the reset fails, or the device´s
descriptors change from their values before the reset, or the original configuration and altsettings cannot be restored, a flag will be set
telling khubd to pretend the device has been disconnected and then
re-connected. All drivers will be unbound, and the device will be
re-enumerated and probed all over again.

Returns 0 if the reset succeeded, -ENODEV if the device has been
flagged for logical disconnection, or some other negative error code if the reset wasn´t even attempted.

The caller must own the device lock. For example, it´s safe to use this from a driver probe routine after downloading new firmware. For calls that might not occur during probe, drivers should lock the device using usb_lock_device_for_reset.

LOCKING EXCEPTION

This routine may also be called from within an autoresume handler. Such usage won´t conflict with other tasks holding the device lock because
these tasks should always call usb_autopm_resume_device, thereby preventing any unwanted autoresume.

COPYRIGHT

Copyright © 2010-2025 Platon Technologies, s.r.o.           Index | Man stránky | tLDP | Dokumenty | Utilitky | O projekte
Design by styleshout