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 <thuth@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20240617071118.60464-5-philmd@linaro.org>
This commit is contained in:
parent
931863ac6f
commit
b9599519a0
@ -41,8 +41,6 @@ struct XHCINecState {
|
|||||||
static Property nec_xhci_properties[] = {
|
static Property nec_xhci_properties[] = {
|
||||||
DEFINE_PROP_ON_OFF_AUTO("msi", XHCIPciState, msi, ON_OFF_AUTO_AUTO),
|
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_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("intrs", XHCINecState, intrs, XHCI_MAXINTRS),
|
||||||
DEFINE_PROP_UINT32("slots", XHCINecState, slots, XHCI_MAXSLOTS),
|
DEFINE_PROP_UINT32("slots", XHCINecState, slots, XHCI_MAXSLOTS),
|
||||||
DEFINE_PROP_END_OF_LIST(),
|
DEFINE_PROP_END_OF_LIST(),
|
||||||
|
@ -242,7 +242,6 @@ static void qemu_xhci_instance_init(Object *obj)
|
|||||||
s->msix = ON_OFF_AUTO_AUTO;
|
s->msix = ON_OFF_AUTO_AUTO;
|
||||||
xhci->numintrs = XHCI_MAXINTRS;
|
xhci->numintrs = XHCI_MAXINTRS;
|
||||||
xhci->numslots = XHCI_MAXSLOTS;
|
xhci->numslots = XHCI_MAXSLOTS;
|
||||||
xhci_set_flag(xhci, XHCI_FLAG_SS_FIRST);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo qemu_xhci_info = {
|
static const TypeInfo qemu_xhci_info = {
|
||||||
|
@ -541,18 +541,10 @@ static XHCIPort *xhci_lookup_port(XHCIState *xhci, struct USBPort *uport)
|
|||||||
case USB_SPEED_LOW:
|
case USB_SPEED_LOW:
|
||||||
case USB_SPEED_FULL:
|
case USB_SPEED_FULL:
|
||||||
case USB_SPEED_HIGH:
|
case USB_SPEED_HIGH:
|
||||||
if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
|
index = uport->index + xhci->numports_3;
|
||||||
index = uport->index + xhci->numports_3;
|
|
||||||
} else {
|
|
||||||
index = uport->index;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case USB_SPEED_SUPER:
|
case USB_SPEED_SUPER:
|
||||||
if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
|
index = uport->index;
|
||||||
index = uport->index;
|
|
||||||
} else {
|
|
||||||
index = uport->index + xhci->numports_2;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -2779,11 +2771,7 @@ static uint64_t xhci_cap_read(void *ptr, hwaddr reg, unsigned size)
|
|||||||
ret = 0x20425355; /* "USB " */
|
ret = 0x20425355; /* "USB " */
|
||||||
break;
|
break;
|
||||||
case 0x28: /* Supported Protocol:08 */
|
case 0x28: /* Supported Protocol:08 */
|
||||||
if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
|
ret = (xhci->numports_2 << 8) | (xhci->numports_3 + 1);
|
||||||
ret = (xhci->numports_2<<8) | (xhci->numports_3+1);
|
|
||||||
} else {
|
|
||||||
ret = (xhci->numports_2<<8) | 1;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 0x2c: /* Supported Protocol:0c */
|
case 0x2c: /* Supported Protocol:0c */
|
||||||
ret = 0x00000000; /* reserved */
|
ret = 0x00000000; /* reserved */
|
||||||
@ -2795,11 +2783,7 @@ static uint64_t xhci_cap_read(void *ptr, hwaddr reg, unsigned size)
|
|||||||
ret = 0x20425355; /* "USB " */
|
ret = 0x20425355; /* "USB " */
|
||||||
break;
|
break;
|
||||||
case 0x38: /* Supported Protocol:08 */
|
case 0x38: /* Supported Protocol:08 */
|
||||||
if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
|
ret = (xhci->numports_3 << 8) | 1;
|
||||||
ret = (xhci->numports_3<<8) | 1;
|
|
||||||
} else {
|
|
||||||
ret = (xhci->numports_3<<8) | (xhci->numports_2+1);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 0x3c: /* Supported Protocol:0c */
|
case 0x3c: /* Supported Protocol:0c */
|
||||||
ret = 0x00000000; /* reserved */
|
ret = 0x00000000; /* reserved */
|
||||||
@ -3349,13 +3333,8 @@ static void usb_xhci_init(XHCIState *xhci)
|
|||||||
for (i = 0; i < usbports; i++) {
|
for (i = 0; i < usbports; i++) {
|
||||||
speedmask = 0;
|
speedmask = 0;
|
||||||
if (i < xhci->numports_2) {
|
if (i < xhci->numports_2) {
|
||||||
if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
|
port = &xhci->ports[i + xhci->numports_3];
|
||||||
port = &xhci->ports[i + xhci->numports_3];
|
port->portnr = i + 1 + xhci->numports_3;
|
||||||
port->portnr = i + 1 + xhci->numports_3;
|
|
||||||
} else {
|
|
||||||
port = &xhci->ports[i];
|
|
||||||
port->portnr = i + 1;
|
|
||||||
}
|
|
||||||
port->uport = &xhci->uports[i];
|
port->uport = &xhci->uports[i];
|
||||||
port->speedmask =
|
port->speedmask =
|
||||||
USB_SPEED_MASK_LOW |
|
USB_SPEED_MASK_LOW |
|
||||||
@ -3366,13 +3345,8 @@ static void usb_xhci_init(XHCIState *xhci)
|
|||||||
speedmask |= port->speedmask;
|
speedmask |= port->speedmask;
|
||||||
}
|
}
|
||||||
if (i < xhci->numports_3) {
|
if (i < xhci->numports_3) {
|
||||||
if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
|
port = &xhci->ports[i];
|
||||||
port = &xhci->ports[i];
|
port->portnr = i + 1;
|
||||||
port->portnr = i + 1;
|
|
||||||
} else {
|
|
||||||
port = &xhci->ports[i + xhci->numports_2];
|
|
||||||
port->portnr = i + 1 + xhci->numports_2;
|
|
||||||
}
|
|
||||||
port->uport = &xhci->uports[i];
|
port->uport = &xhci->uports[i];
|
||||||
port->speedmask = USB_SPEED_MASK_SUPER;
|
port->speedmask = USB_SPEED_MASK_SUPER;
|
||||||
assert(i < XHCI_MAXPORTS);
|
assert(i < XHCI_MAXPORTS);
|
||||||
|
@ -36,8 +36,7 @@ typedef struct XHCIStreamContext XHCIStreamContext;
|
|||||||
typedef struct XHCIEPContext XHCIEPContext;
|
typedef struct XHCIEPContext XHCIEPContext;
|
||||||
|
|
||||||
enum xhci_flags {
|
enum xhci_flags {
|
||||||
XHCI_FLAG_SS_FIRST = 1,
|
XHCI_FLAG_ENABLE_STREAMS = 1,
|
||||||
XHCI_FLAG_ENABLE_STREAMS,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum TRBType {
|
typedef enum TRBType {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user