diff options
author | Phil Dennis-Jordan <phil@philjordan.eu> | 2024-12-08 20:16:44 +0100 |
---|---|---|
committer | Philippe Mathieu-Daudé <philmd@linaro.org> | 2025-03-04 14:45:34 +0100 |
commit | 9422a5acf2125e9a67a8a14538306f123bcc6098 (patch) | |
tree | 9c11993bdf51ff75e02e0d2aa3fd327d7f59c32f /hw/usb/quirks.h | |
parent | ee241d79bbf45fe7354dde51b0ca2574824205d4 (diff) | |
download | qemu-9422a5acf2125e9a67a8a14538306f123bcc6098.zip qemu-9422a5acf2125e9a67a8a14538306f123bcc6098.tar.gz qemu-9422a5acf2125e9a67a8a14538306f123bcc6098.tar.bz2 |
hw/usb/hcd-xhci-pci: Adds property for disabling mapping in IRQ mode
This change addresses an edge case that trips up macOS guest drivers
for PCI based XHCI controllers. The guest driver would attempt to
schedule events to XHCI event rings 1 and 2 even when using PCI
pin-based interrupts. Interrupts would therefore be dropped, and events
only handled on timeout.
So, in addition to disabling interrupter mapping if numintrs is 1, a
callback is added to xhci to check whether interrupter mapping should be
enabled. The PCI XHCI device type now provides an implementation of
this callback if the new "conditional-intr-mapping" property is enabled.
(default: disabled) When enabled, interrupter mapping is only enabled
when MSI-X or MSI is active.
This means that when using pin-based interrupts, events are only
submitted to interrupter 0 regardless of selected target. This allows
the macOS guest drivers to work with the device in those configurations.
Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2705
Message-ID: <20241227121336.25838-6-phil@philjordan.eu>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Diffstat (limited to 'hw/usb/quirks.h')
0 files changed, 0 insertions, 0 deletions