mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-26 15:31:35 +00:00
DM USB: xHCI: refine port assignment logic
The variable native_assign_ports in struct pci_xhci_vdev is used to record wether certain root hub port in SOS is assigned to UOS. The logic uses zero to express 'not assigned' and nonzero to express 'assigned'. In this patch, use macro to replace number to express better. Signed-off-by: Xiaoguang Wu <xiaoguang.wu@intel.com> Reviewed-by: Liang Yang <liang3.yang@intel.com> Acked-by: Yu Wang <yu1.wang@intel.com>
This commit is contained in:
parent
5cc389aa29
commit
27eeea4cd3
@ -384,6 +384,10 @@ struct pci_xhci_vdev {
|
||||
#define XHCI_HALTED(xdev) ((xdev)->opregs.usbsts & XHCI_STS_HCH)
|
||||
#define XHCI_GADDR(xdev, a) paddr_guest2host((xdev)->dev->vmctx, (a), \
|
||||
XHCI_PADDR_SZ - ((a) & (XHCI_PADDR_SZ-1)))
|
||||
|
||||
#define VPORT_FREE (0)
|
||||
#define VPORT_ASSIGNED (-1)
|
||||
|
||||
struct pci_xhci_option_elem {
|
||||
char *parse_opt;
|
||||
int (*parse_fn)(struct pci_xhci_vdev *, char *);
|
||||
@ -500,7 +504,7 @@ pci_xhci_native_usb_dev_conn_cb(void *hci_data, void *dev_data)
|
||||
UPRINTF(LDBG, "%04x:%04x %d-%d connecting.\r\n",
|
||||
di->vid, di->pid, di->bus, di->port);
|
||||
|
||||
if (!xdev->native_assign_ports[di->bus][di->port]) {
|
||||
if (xdev->native_assign_ports[di->bus][di->port] == VPORT_FREE) {
|
||||
UPRINTF(LDBG, "%04x:%04x %d-%d doesn't belong to this vm, bye."
|
||||
"\r\n", di->vid, di->pid, di->bus, di->port);
|
||||
goto errout;
|
||||
@ -3360,7 +3364,7 @@ pci_xhci_parse_bus_port(struct pci_xhci_vdev *xdev, char *opts)
|
||||
goto errout;
|
||||
}
|
||||
|
||||
xdev->native_assign_ports[bus][port] = 1;
|
||||
xdev->native_assign_ports[bus][port] = VPORT_ASSIGNED;
|
||||
errout:
|
||||
if (rc)
|
||||
UPRINTF(LWRN, "%s fails, rc=%d\r\n", __func__, rc);
|
||||
|
Loading…
Reference in New Issue
Block a user