Re: [PATCH v5 04/23] hw/usb/hcd-xhci: Remove XHCI_FLAG_SS_FIRST flag
On Wed, 29 May 2024 07:15:20 +0200 Philippe Mathieu-Daudé wrote: > XHCI_FLAG_SS_FIRST was only used by the pc-i440fx-2.0 machine, > which got removed. Remove it and simplify various functions in > hcd-xhci.c. > > Reviewed-by: Thomas Huth > Signed-off-by: Philippe Mathieu-Daudé > Reviewed-by: Zhao Liu Reviewed-by: Igor Mammedov > --- > hw/usb/hcd-xhci.h | 3 +-- > hw/usb/hcd-xhci-nec.c | 2 -- > hw/usb/hcd-xhci-pci.c | 1 - > hw/usb/hcd-xhci.c | 42 -- > 4 files changed, 9 insertions(+), 39 deletions(-) > > diff --git a/hw/usb/hcd-xhci.h b/hw/usb/hcd-xhci.h > index 1efa4858fb..fe16d7ad05 100644 > --- a/hw/usb/hcd-xhci.h > +++ b/hw/usb/hcd-xhci.h > @@ -36,8 +36,7 @@ typedef struct XHCIStreamContext XHCIStreamContext; > typedef struct XHCIEPContext XHCIEPContext; > > enum xhci_flags { > -XHCI_FLAG_SS_FIRST = 1, > -XHCI_FLAG_ENABLE_STREAMS, > +XHCI_FLAG_ENABLE_STREAMS = 1, > }; > > typedef enum TRBType { > diff --git a/hw/usb/hcd-xhci-nec.c b/hw/usb/hcd-xhci-nec.c > index 5d5b069cf9..0c063b3697 100644 > --- a/hw/usb/hcd-xhci-nec.c > +++ b/hw/usb/hcd-xhci-nec.c > @@ -41,8 +41,6 @@ struct XHCINecState { > static Property nec_xhci_properties[] = { > DEFINE_PROP_ON_OFF_AUTO("msi", XHCIPciState, msi, ON_OFF_AUTO_AUTO), > DEFINE_PROP_ON_OFF_AUTO("msix", XHCIPciState, msix, ON_OFF_AUTO_AUTO), > -DEFINE_PROP_BIT("superspeed-ports-first", XHCINecState, flags, > -XHCI_FLAG_SS_FIRST, true), > DEFINE_PROP_UINT32("intrs", XHCINecState, intrs, XHCI_MAXINTRS), > DEFINE_PROP_UINT32("slots", XHCINecState, slots, XHCI_MAXSLOTS), > DEFINE_PROP_END_OF_LIST(), > diff --git a/hw/usb/hcd-xhci-pci.c b/hw/usb/hcd-xhci-pci.c > index cbad96f393..264d7ebb77 100644 > --- a/hw/usb/hcd-xhci-pci.c > +++ b/hw/usb/hcd-xhci-pci.c > @@ -242,7 +242,6 @@ static void qemu_xhci_instance_init(Object *obj) > s->msix = ON_OFF_AUTO_AUTO; > xhci->numintrs = XHCI_MAXINTRS; > xhci->numslots = XHCI_MAXSLOTS; > -xhci_set_flag(xhci, XHCI_FLAG_SS_FIRST); > } > > static const TypeInfo qemu_xhci_info = { > diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c > index ad40232eb6..b6411f0bda 100644 > --- a/hw/usb/hcd-xhci.c > +++ b/hw/usb/hcd-xhci.c > @@ -541,18 +541,10 @@ static XHCIPort *xhci_lookup_port(XHCIState *xhci, > struct USBPort *uport) > case USB_SPEED_LOW: > case USB_SPEED_FULL: > case USB_SPEED_HIGH: > -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { > -index = uport->index + xhci->numports_3; > -} else { > -index = uport->index; > -} > +index = uport->index + xhci->numports_3; > break; > case USB_SPEED_SUPER: > -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { > -index = uport->index; > -} else { > -index = uport->index + xhci->numports_2; > -} > +index = uport->index; > break; > default: > return NULL; > @@ -2779,11 +2771,7 @@ static uint64_t xhci_cap_read(void *ptr, hwaddr reg, > unsigned size) > ret = 0x20425355; /* "USB " */ > break; > case 0x28: /* Supported Protocol:08 */ > -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { > -ret = (xhci->numports_2<<8) | (xhci->numports_3+1); > -} else { > -ret = (xhci->numports_2<<8) | 1; > -} > +ret = (xhci->numports_2 << 8) | (xhci->numports_3 + 1); > break; > case 0x2c: /* Supported Protocol:0c */ > ret = 0x; /* reserved */ > @@ -2795,11 +2783,7 @@ static uint64_t xhci_cap_read(void *ptr, hwaddr reg, > unsigned size) > ret = 0x20425355; /* "USB " */ > break; > case 0x38: /* Supported Protocol:08 */ > -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { > -ret = (xhci->numports_3<<8) | 1; > -} else { > -ret = (xhci->numports_3<<8) | (xhci->numports_2+1); > -} > +ret = (xhci->numports_3 << 8) | 1; > break; > case 0x3c: /* Supported Protocol:0c */ > ret = 0x; /* reserved */ > @@ -3349,13 +,8 @@ static void usb_xhci_init(XHCIState *xhci) > for (i = 0; i < usbports; i++) { > speedmask = 0; > if (i < xhci->numports_2) { > -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { > -port = >ports[i + xhci->numports_3]; > -port->portnr = i + 1 + xhci->numports_3; > -} else { > -port = >ports[i]; > -port->portnr = i + 1; > -} > +port = >ports[i + xhci->numports_3]; > +port->portnr = i + 1 + xhci->numports_3; > port->uport = >uports[i]; > port->speedmask = > USB_SPEED_MASK_LOW | > @@ -3366,13 +3345,8 @@ static void usb_xhci_init(XHCIState *xhci) > speedmask |= port->speedmask; > } >
[PATCH v5 04/23] hw/usb/hcd-xhci: Remove XHCI_FLAG_SS_FIRST flag
XHCI_FLAG_SS_FIRST was only used by the pc-i440fx-2.0 machine, which got removed. Remove it and simplify various functions in hcd-xhci.c. Reviewed-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Zhao Liu --- hw/usb/hcd-xhci.h | 3 +-- hw/usb/hcd-xhci-nec.c | 2 -- hw/usb/hcd-xhci-pci.c | 1 - hw/usb/hcd-xhci.c | 42 -- 4 files changed, 9 insertions(+), 39 deletions(-) diff --git a/hw/usb/hcd-xhci.h b/hw/usb/hcd-xhci.h index 1efa4858fb..fe16d7ad05 100644 --- a/hw/usb/hcd-xhci.h +++ b/hw/usb/hcd-xhci.h @@ -36,8 +36,7 @@ typedef struct XHCIStreamContext XHCIStreamContext; typedef struct XHCIEPContext XHCIEPContext; enum xhci_flags { -XHCI_FLAG_SS_FIRST = 1, -XHCI_FLAG_ENABLE_STREAMS, +XHCI_FLAG_ENABLE_STREAMS = 1, }; typedef enum TRBType { diff --git a/hw/usb/hcd-xhci-nec.c b/hw/usb/hcd-xhci-nec.c index 5d5b069cf9..0c063b3697 100644 --- a/hw/usb/hcd-xhci-nec.c +++ b/hw/usb/hcd-xhci-nec.c @@ -41,8 +41,6 @@ struct XHCINecState { static Property nec_xhci_properties[] = { DEFINE_PROP_ON_OFF_AUTO("msi", XHCIPciState, msi, ON_OFF_AUTO_AUTO), DEFINE_PROP_ON_OFF_AUTO("msix", XHCIPciState, msix, ON_OFF_AUTO_AUTO), -DEFINE_PROP_BIT("superspeed-ports-first", XHCINecState, flags, -XHCI_FLAG_SS_FIRST, true), DEFINE_PROP_UINT32("intrs", XHCINecState, intrs, XHCI_MAXINTRS), DEFINE_PROP_UINT32("slots", XHCINecState, slots, XHCI_MAXSLOTS), DEFINE_PROP_END_OF_LIST(), diff --git a/hw/usb/hcd-xhci-pci.c b/hw/usb/hcd-xhci-pci.c index cbad96f393..264d7ebb77 100644 --- a/hw/usb/hcd-xhci-pci.c +++ b/hw/usb/hcd-xhci-pci.c @@ -242,7 +242,6 @@ static void qemu_xhci_instance_init(Object *obj) s->msix = ON_OFF_AUTO_AUTO; xhci->numintrs = XHCI_MAXINTRS; xhci->numslots = XHCI_MAXSLOTS; -xhci_set_flag(xhci, XHCI_FLAG_SS_FIRST); } static const TypeInfo qemu_xhci_info = { diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index ad40232eb6..b6411f0bda 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -541,18 +541,10 @@ static XHCIPort *xhci_lookup_port(XHCIState *xhci, struct USBPort *uport) case USB_SPEED_LOW: case USB_SPEED_FULL: case USB_SPEED_HIGH: -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { -index = uport->index + xhci->numports_3; -} else { -index = uport->index; -} +index = uport->index + xhci->numports_3; break; case USB_SPEED_SUPER: -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { -index = uport->index; -} else { -index = uport->index + xhci->numports_2; -} +index = uport->index; break; default: return NULL; @@ -2779,11 +2771,7 @@ static uint64_t xhci_cap_read(void *ptr, hwaddr reg, unsigned size) ret = 0x20425355; /* "USB " */ break; case 0x28: /* Supported Protocol:08 */ -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { -ret = (xhci->numports_2<<8) | (xhci->numports_3+1); -} else { -ret = (xhci->numports_2<<8) | 1; -} +ret = (xhci->numports_2 << 8) | (xhci->numports_3 + 1); break; case 0x2c: /* Supported Protocol:0c */ ret = 0x; /* reserved */ @@ -2795,11 +2783,7 @@ static uint64_t xhci_cap_read(void *ptr, hwaddr reg, unsigned size) ret = 0x20425355; /* "USB " */ break; case 0x38: /* Supported Protocol:08 */ -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { -ret = (xhci->numports_3<<8) | 1; -} else { -ret = (xhci->numports_3<<8) | (xhci->numports_2+1); -} +ret = (xhci->numports_3 << 8) | 1; break; case 0x3c: /* Supported Protocol:0c */ ret = 0x; /* reserved */ @@ -3349,13 +,8 @@ static void usb_xhci_init(XHCIState *xhci) for (i = 0; i < usbports; i++) { speedmask = 0; if (i < xhci->numports_2) { -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { -port = >ports[i + xhci->numports_3]; -port->portnr = i + 1 + xhci->numports_3; -} else { -port = >ports[i]; -port->portnr = i + 1; -} +port = >ports[i + xhci->numports_3]; +port->portnr = i + 1 + xhci->numports_3; port->uport = >uports[i]; port->speedmask = USB_SPEED_MASK_LOW | @@ -3366,13 +3345,8 @@ static void usb_xhci_init(XHCIState *xhci) speedmask |= port->speedmask; } if (i < xhci->numports_3) { -if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { -port = >ports[i]; -port->portnr = i + 1; -} else { -port = >ports[i + xhci->numports_2]; -port->portnr = i + 1 + xhci->numports_2; -} +port = >ports[i]; +