mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
xhci(4): Properly define all basic USB port speeds.
MFC after: 1 week Sponsored by: NVIDIA Networking
This commit is contained in:
parent
c4585b938a
commit
d730333c80
2 changed files with 8 additions and 4 deletions
|
|
@ -3479,13 +3479,13 @@ xhci_roothub_exec(struct usb_device *udev,
|
|||
i = UPS_PORT_LINK_STATE_SET(XHCI_PS_PLS_GET(v));
|
||||
|
||||
switch (XHCI_PS_SPEED_GET(v)) {
|
||||
case 3:
|
||||
case XHCI_PS_SPEED_HIGH:
|
||||
i |= UPS_HIGH_SPEED;
|
||||
break;
|
||||
case 2:
|
||||
case XHCI_PS_SPEED_LOW:
|
||||
i |= UPS_LOW_SPEED;
|
||||
break;
|
||||
case 1:
|
||||
case XHCI_PS_SPEED_FULL:
|
||||
/* FULL speed */
|
||||
break;
|
||||
default:
|
||||
|
|
@ -3586,7 +3586,7 @@ xhci_roothub_exec(struct usb_device *udev,
|
|||
case UHF_PORT_SUSPEND:
|
||||
DPRINTFN(6, "suspend port %u (LPM=%u)\n", index, i);
|
||||
j = XHCI_PS_SPEED_GET(v);
|
||||
if ((j < 1) || (j > 3)) {
|
||||
if (j == 0 || j >= XHCI_PS_SPEED_SS) {
|
||||
/* non-supported speed */
|
||||
err = USB_ERR_IOERROR;
|
||||
goto done;
|
||||
|
|
|
|||
|
|
@ -124,6 +124,10 @@
|
|||
#define XHCI_PS_PLS_SET(x) (((x) & 0xF) << 5) /* RW - port link state */
|
||||
#define XHCI_PS_PP 0x00000200 /* RW - port power */
|
||||
#define XHCI_PS_SPEED_GET(x) (((x) >> 10) & 0xF) /* RO - port speed */
|
||||
#define XHCI_PS_SPEED_FULL 0x1 /* Full Speed USB */
|
||||
#define XHCI_PS_SPEED_LOW 0x2 /* Low Speed USB */
|
||||
#define XHCI_PS_SPEED_HIGH 0x3 /* High Speed USB */
|
||||
#define XHCI_PS_SPEED_SS 0x4 /* Super Speed USB */
|
||||
#define XHCI_PS_PIC_GET(x) (((x) >> 14) & 0x3) /* RW - port indicator */
|
||||
#define XHCI_PS_PIC_SET(x) (((x) & 0x3) << 14) /* RW - port indicator */
|
||||
#define XHCI_PS_LWS 0x00010000 /* RW - port link state write strobe */
|
||||
|
|
|
|||
Loading…
Reference in a new issue