diff --git a/hw/usb-xhci.c b/hw/usb-xhci.c index 0c5007b..28fe9de 100644 --- a/hw/usb-xhci.c +++ b/hw/usb-xhci.c @@ -177,7 +177,11 @@ typedef enum TRBType { ER_DOORBELL, ER_HOST_CONTROLLER, ER_DEVICE_NOTIFICATION, - ER_MFINDEX_WRAP + ER_MFINDEX_WRAP, + /* vendor specific bits */ + CR_VENDOR_VIA_CHALLENGE_RESPONSE = 48, + CR_VENDOR_NEC_FIRMWARE_REVISION = 49, + CR_VENDOR_NEC_CHALLENGE_RESPONSE = 50, } TRBType; #define CR_LINK TR_LINK @@ -2140,18 +2144,15 @@ static void xhci_process_commands(XHCIState *xhci) case CR_GET_PORT_BANDWIDTH: event.ccode = xhci_get_port_bandwidth(xhci, trb.parameter); break; - case 48: - /* VIA challenge response */ + case CR_VENDOR_VIA_CHALLENGE_RESPONSE: xhci_via_challenge(trb.parameter); break; - case 49: - /* NEC get FW revision */ + case CR_VENDOR_NEC_FIRMWARE_REVISION: event.type = 48; /* NEC reply */ event.length = 0x3025; break; - case 50: + case CR_VENDOR_NEC_CHALLENGE_RESPONSE: { - /* NEC challenge response */ uint32_t chi = trb.parameter >> 32; uint32_t clo = trb.parameter; uint32_t val = xhci_nec_challenge(chi, clo);