mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
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>
This commit is contained in:
parent
bb5b7fced6
commit
ef82ab6924
1 changed files with 4 additions and 0 deletions
|
@ -644,6 +644,10 @@ static void xhci_event(XHCIState *xhci, XHCIEvent *event, int v)
|
|||
dma_addr_t erdp;
|
||||
unsigned int dp_idx;
|
||||
|
||||
if (xhci->numintrs == 1) {
|
||||
v = 0;
|
||||
}
|
||||
|
||||
if (v >= xhci->numintrs) {
|
||||
DPRINTF("intr nr out of range (%d >= %d)\n", v, xhci->numintrs);
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue