Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: ch9: Add USB 3.2 SSP attributes

In preparation for USB 3.2 dual-lane support, add sublink speed
attribute macros and enum usb_ssp_rate. A USB device that operates in
SuperSpeed Plus may operate at different speed and lane count. These
additional macros and enum values help specifying that.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/ae9293ebd63a29f2a2035054753534d9eb123d74.1610592135.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Thinh Nguyen and committed by
Greg Kroah-Hartman
f2fc9ff2 7766cafe

+22
+9
include/linux/usb/ch9.h
··· 36 36 #include <linux/device.h> 37 37 #include <uapi/linux/usb/ch9.h> 38 38 39 + /* USB 3.2 SuperSpeed Plus phy signaling rate generation and lane count */ 40 + 41 + enum usb_ssp_rate { 42 + USB_SSP_GEN_UNKNOWN = 0, 43 + USB_SSP_GEN_2x1, 44 + USB_SSP_GEN_1x2, 45 + USB_SSP_GEN_2x2, 46 + }; 47 + 39 48 /** 40 49 * usb_ep_type_string() - Returns human readable-name of the endpoint type. 41 50 * @ep_type: The endpoint type to return human-readable name for. If it's not
+13
include/uapi/linux/usb/ch9.h
··· 968 968 __le32 bmSublinkSpeedAttr[1]; /* list of sublink speed attrib entries */ 969 969 #define USB_SSP_SUBLINK_SPEED_SSID (0xf) /* sublink speed ID */ 970 970 #define USB_SSP_SUBLINK_SPEED_LSE (0x3 << 4) /* Lanespeed exponent */ 971 + #define USB_SSP_SUBLINK_SPEED_LSE_BPS 0 972 + #define USB_SSP_SUBLINK_SPEED_LSE_KBPS 1 973 + #define USB_SSP_SUBLINK_SPEED_LSE_MBPS 2 974 + #define USB_SSP_SUBLINK_SPEED_LSE_GBPS 3 975 + 971 976 #define USB_SSP_SUBLINK_SPEED_ST (0x3 << 6) /* Sublink type */ 977 + #define USB_SSP_SUBLINK_SPEED_ST_SYM_RX 0 978 + #define USB_SSP_SUBLINK_SPEED_ST_ASYM_RX 1 979 + #define USB_SSP_SUBLINK_SPEED_ST_SYM_TX 2 980 + #define USB_SSP_SUBLINK_SPEED_ST_ASYM_TX 3 981 + 972 982 #define USB_SSP_SUBLINK_SPEED_RSVD (0x3f << 8) /* Reserved */ 973 983 #define USB_SSP_SUBLINK_SPEED_LP (0x3 << 14) /* Link protocol */ 984 + #define USB_SSP_SUBLINK_SPEED_LP_SS 0 985 + #define USB_SSP_SUBLINK_SPEED_LP_SSP 1 986 + 974 987 #define USB_SSP_SUBLINK_SPEED_LSM (0xff << 16) /* Lanespeed mantissa */ 975 988 } __attribute__((packed)); 976 989