Lines Matching full:xhci

2  * USB xHCI controller with PCI bus emulation
9 * SPDX-sourceInfo: Moved the pci specific content for hcd-xhci.c to
10 * hcd-xhci-pci.c
31 #include "hcd-xhci-pci.h"
38 static void xhci_pci_intr_update(XHCIState *xhci, int n, bool enable) in xhci_pci_intr_update() argument
40 XHCIPciState *s = container_of(xhci, XHCIPciState, xhci); in xhci_pci_intr_update()
46 if (enable == !!xhci->intr[n].msix_used) { in xhci_pci_intr_update()
52 xhci->intr[n].msix_used = true; in xhci_pci_intr_update()
56 xhci->intr[n].msix_used = false; in xhci_pci_intr_update()
60 static bool xhci_pci_intr_raise(XHCIState *xhci, int n, bool level) in xhci_pci_intr_raise() argument
62 XHCIPciState *s = container_of(xhci, XHCIPciState, xhci); in xhci_pci_intr_raise()
89 device_cold_reset(DEVICE(&s->xhci)); in xhci_pci_reset()
98 for (intr = 0; intr < s->xhci.numintrs; intr++) { in xhci_pci_vmstate_post_load()
99 if (s->xhci.intr[intr].msix_used) { in xhci_pci_vmstate_post_load()
114 dev->config[PCI_CLASS_PROG] = 0x30; /* xHCI */ in usb_xhci_pci_realize()
119 object_property_set_link(OBJECT(&s->xhci), "host", OBJECT(s), NULL); in usb_xhci_pci_realize()
120 s->xhci.intr_update = xhci_pci_intr_update; in usb_xhci_pci_realize()
121 s->xhci.intr_raise = xhci_pci_intr_raise; in usb_xhci_pci_realize()
122 if (!qdev_realize(DEVICE(&s->xhci), NULL, errp)) { in usb_xhci_pci_realize()
126 s->xhci.nec_quirks = true; in usb_xhci_pci_realize()
130 ret = msi_init(dev, 0x70, s->xhci.numintrs, true, false, &err); in usb_xhci_pci_realize()
150 &s->xhci.mem); in usb_xhci_pci_realize()
159 msix_init(dev, s->xhci.numintrs, in usb_xhci_pci_realize()
160 &s->xhci.mem, 0, OFF_MSIX_TABLE, in usb_xhci_pci_realize()
161 &s->xhci.mem, 0, OFF_MSIX_PBA, in usb_xhci_pci_realize()
164 s->xhci.as = pci_get_address_space(dev); in usb_xhci_pci_realize()
173 msix_uninit(dev, &s->xhci.mem, &s->xhci.mem); in usb_xhci_pci_exit()
178 .name = "xhci",
184 VMSTATE_STRUCT(xhci, XHCIPciState, 1, vmstate_xhci, XHCIState),
197 object_initialize_child(obj, "xhci-core", &s->xhci, TYPE_XHCI); in xhci_instance_init()
198 qdev_alias_all_properties(DEVICE(&s->xhci), obj); in xhci_instance_init()
240 XHCIState *xhci = &s->xhci; in qemu_xhci_instance_init() local
244 xhci->numintrs = XHCI_MAXINTRS; in qemu_xhci_instance_init()
245 xhci->numslots = XHCI_MAXSLOTS; in qemu_xhci_instance_init()