diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2017-09-14 15:49:30 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-09-14 15:49:30 +0100 |
commit | dae288d7d820e12073e55ded64b226843d352c1f (patch) | |
tree | 351f42934e5fc38bdb4163424bbb5b1bf4909f1a /hw | |
parent | 9d81b2d2000f41be55a0624a26873f993fb6e928 (diff) | |
parent | 2041649f0b04f61869589571ddf5ecd4f0695ea2 (diff) |
Merge remote-tracking branch 'remotes/kraxel/tags/usb-20170913-pull-request' into staging
usb: misc small fixes.
# gpg: Signature made Wed 13 Sep 2017 10:28:25 BST
# gpg: using RSA key 0x4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg: aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138
* remotes/kraxel/tags/usb-20170913-pull-request:
usb: only build usb-host with CONFIG_USB=y
usb: drop HOST_USB
MAINTAINERS: add missing USB entry
xhci: Avoid DMA when ERSTBA is set to zero
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/usb/Makefile.objs | 6 | ||||
-rw-r--r-- | hw/usb/hcd-xhci.c | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs index 97f1c4561a..757e365562 100644 --- a/hw/usb/Makefile.objs +++ b/hw/usb/Makefile.objs @@ -38,7 +38,11 @@ endif common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o # usb pass-through -common-obj-y += $(patsubst %,host-%.o,$(HOST_USB)) +ifeq ($(CONFIG_LIBUSB)$(CONFIG_USB),yy) +common-obj-y += host-libusb.o host-legacy.o +else +common-obj-y += host-stub.o +endif ifeq ($(CONFIG_USB_LIBUSB),y) common-obj-$(CONFIG_XEN) += xen-usb.o diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index 204ea69d3f..d75c085d94 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -811,8 +811,9 @@ static void xhci_er_reset(XHCIState *xhci, int v) { XHCIInterrupter *intr = &xhci->intr[v]; XHCIEvRingSeg seg; + dma_addr_t erstba = xhci_addr64(intr->erstba_low, intr->erstba_high); - if (intr->erstsz == 0) { + if (intr->erstsz == 0 || erstba == 0) { /* disabled */ intr->er_start = 0; intr->er_size = 0; @@ -824,7 +825,6 @@ static void xhci_er_reset(XHCIState *xhci, int v) xhci_die(xhci); return; } - dma_addr_t erstba = xhci_addr64(intr->erstba_low, intr->erstba_high); pci_dma_read(PCI_DEVICE(xhci), erstba, &seg, sizeof(seg)); le32_to_cpus(&seg.addr_low); le32_to_cpus(&seg.addr_high); |