summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorGerd Hoffmann2022-07-11 11:44:36 +0200
committerGerd Hoffmann2022-07-19 14:36:42 +0200
commitf3a445b68e7ed1d9fe14e3c92cfec38b1ac97331 (patch)
tree48b6b1dfd346140a9270614ca8c1330dadf62295 /docs
parentusb/hcd-xhci: check slotid in xhci_wakeup_endpoint() (diff)
downloadqemu-f3a445b68e7ed1d9fe14e3c92cfec38b1ac97331.tar.gz
qemu-f3a445b68e7ed1d9fe14e3c92cfec38b1ac97331.tar.xz
qemu-f3a445b68e7ed1d9fe14e3c92cfec38b1ac97331.zip
usb: document guest-reset and guest-reset-all
Suggested-by: Michal Prívozník <mprivozn@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Message-Id: <20220711094437.3995927-2-kraxel@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/system/devices/usb.rst29
1 files changed, 29 insertions, 0 deletions
diff --git a/docs/system/devices/usb.rst b/docs/system/devices/usb.rst
index 872d916758..18e7c8b4d7 100644
--- a/docs/system/devices/usb.rst
+++ b/docs/system/devices/usb.rst
@@ -353,3 +353,32 @@ and also assign it to the correct USB bus in QEMU like this:
-device usb-ehci,id=ehci \\
-device usb-host,bus=usb-bus.0,hostbus=3,hostport=1 \\
-device usb-host,bus=ehci.0,hostbus=1,hostport=1
+
+``usb-host`` properties for reset behavior
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``guest-reset`` and ``guest-reset-all`` properties control
+whenever the guest is allowed to reset the physical usb device on the
+host. There are three cases:
+
+``guest-reset=false``
+ The guest is not allowed to reset the (physical) usb device.
+
+``guest-reset=true,guest-resets-all=false``
+ The guest is allowed to reset the device when it is not yet
+ initialized (aka no usb bus address assigned). Usually this results
+ in one guest reset being allowed. This is the default behavior.
+
+``guest-reset=true,guest-resets-all=true``
+ The guest is allowed to reset the device as it pleases.
+
+The reason for this existing are broken usb devices. In theory one
+should be able to reset (and re-initialize) usb devices at any time.
+In practice that may result in shitty usb device firmware crashing and
+the device not responding any more until you power-cycle (aka un-plug
+and re-plug) it.
+
+What works best pretty much depends on the behavior of the specific
+usb device at hand, so it's a trial-and-error game. If the default
+doesn't work, try another option and see whenever the situation
+improves.