hw/usb/hcd-xhci-pci: Use event ring 0 if mapping unsupported
authorPhil Dennis-Jordan <phil@philjordan.eu>
Fri, 27 Dec 2024 12:13:33 +0000 (13:13 +0100)
committerPhilippe Mathieu-Daudé <philmd@linaro.org>
Mon, 13 Jan 2025 16:21:46 +0000 (17:21 +0100)
commitef82ab692424c7fb42c3aeb6b65db68eade6213a
treef9e5769e1487be2331ea5f9757738d6ba6b89aeb
parentbb5b7fced6b5d3334ab20702fc846e47bb1fb731
hw/usb/hcd-xhci-pci: Use event ring 0 if mapping unsupported

The XHCI specification, section 4.17.1 specifies that "If the
Number of Interrupters (MaxIntrs) field is greater than 1, then
Interrupter Mapping shall be supported." and "If Interrupter
Mapping is not supported, the Interrupter Target field shall be
ignored by the xHC and all Events targeted at Interrupter 0."

QEMU's XHCI device has so far not specially addressed this case,
so we add a check to xhci_event() to redirect to event ring and
interrupt 0 if mapping is disabled.

Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20241227121336.25838-4-phil@philjordan.eu>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
hw/usb/hcd-xhci.c