summaryrefslogtreecommitdiffstats
path: root/hw/usb/hcd-xhci.c
diff options
context:
space:
mode:
authorPeter Maydell2021-05-30 21:10:30 +0200
committerPeter Maydell2021-05-30 21:10:30 +0200
commit52848929b70dcf92a68aedcfd90207be81ba3274 (patch)
tree731cb3a6253de7054afaefed4371128d116a8cac /hw/usb/hcd-xhci.c
parentMerge remote-tracking branch 'remotes/kraxel/tags/vga-20210527-pull-request' ... (diff)
parenthw/usb: hcd-xhci-pci: Fix spec violation of IP flag for MSI/MSI-X (diff)
downloadqemu-52848929b70dcf92a68aedcfd90207be81ba3274.tar.gz
qemu-52848929b70dcf92a68aedcfd90207be81ba3274.tar.xz
qemu-52848929b70dcf92a68aedcfd90207be81ba3274.zip
Merge remote-tracking branch 'remotes/kraxel/tags/usb-20210528-pull-request' into staging
usb: bugfixes for hid and xhci. # gpg: Signature made Fri 28 May 2021 15:21:51 BST # gpg: using RSA key A0328CFFB93A17A79901FE7D4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [full] # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" [full] # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [full] # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/usb-20210528-pull-request: hw/usb: hcd-xhci-pci: Fix spec violation of IP flag for MSI/MSI-X hw/usb: hcd-xhci-pci: Raise MSI/MSI-X interrupts only when told to hw/input/hid: Add support for keys of jp106 keyboard. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/usb/hcd-xhci.c')
-rw-r--r--hw/usb/hcd-xhci.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
index 46212b1e69..e01700039b 100644
--- a/hw/usb/hcd-xhci.c
+++ b/hw/usb/hcd-xhci.c
@@ -551,7 +551,9 @@ static void xhci_intr_update(XHCIState *xhci, int v)
level = 1;
}
if (xhci->intr_raise) {
- xhci->intr_raise(xhci, 0, level);
+ if (xhci->intr_raise(xhci, 0, level)) {
+ xhci->intr[0].iman &= ~IMAN_IP;
+ }
}
}
if (xhci->intr_update) {
@@ -579,7 +581,9 @@ static void xhci_intr_raise(XHCIState *xhci, int v)
return;
}
if (xhci->intr_raise) {
- xhci->intr_raise(xhci, v, true);
+ if (xhci->intr_raise(xhci, v, true)) {
+ xhci->intr[v].iman &= ~IMAN_IP;
+ }
}
}