xhci: report link status for USB 3 ports

The values come from XHCI table 5-27.

PS_PLS_MASK is the same as PORT_STATUS_SS_LINK_STATE.

Change-Id: Ie54abcda0c33738fe7dc5caa4e4f3abae3b40adc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6488
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This commit is contained in:
X512 2023-06-06 05:56:57 +09:00 committed by waddlesplash
parent 13b7ddec87
commit f8bd82e198
2 changed files with 13 additions and 0 deletions

View File

@ -2340,6 +2340,8 @@ XHCI::GetPortStatus(uint8 index, usb_port_status* status)
else
status->status |= PORT_STATUS_POWER;
}
if (fPortSpeeds[index] == USB_SPEED_SUPERSPEED)
status->status |= portStatus & PS_PLS_MASK;
// build the change
if (portStatus & PS_CSC)

View File

@ -177,7 +177,18 @@
#define PS_PLS_MASK (0xf << 5)
#define PS_XDEV_U0 (0x0 << 5)
#define PS_XDEV_U1 (0x1 << 5)
#define PS_XDEV_U2 (0x2 << 5)
#define PS_XDEV_U3 (0x3 << 5)
#define PS_XDEV_DISABLED (0x4 << 5)
#define PS_XDEV_RXDETECT (0x5 << 5)
#define PS_XDEV_INACTIVE (0x6 << 5)
#define PS_XDEV_POLLING (0x7 << 5)
#define PS_XDEV_RECOVERY (0x8 << 5)
#define PS_XDEV_HOT_RESET (0x9 << 5)
#define PS_XDEV_COMP_MODE (0xa << 5)
#define PS_XDEV_TEST_MODE (0xb << 5)
#define PS_XDEV_RESUME (0xf << 5)
// Completion Code