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

USB: clarify USB_DT_USB_SSP_CAP_SIZE(ssac) definition

USB_DT_USB_SSP_CAP_SIZE(ssac) gives the size of the SSP capability
descriptor. The descriptor consists of 12 bytes plus a array of
SSA entries.

The number of SSA entries is stored in a SSAC value in the first 12 bytes,
The USB3.1 specification 9.6.2.5 defines SSAC as zero based:
"The number of Sublink Speed Attributes = SSAC + 1." This is not
intuitive and has already caused some confusion.

Make a small modifiaction to the USB_DT_USB_SSP_CAP_SIZE(ssac)
definition to make it a bit clearer

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Mathias Nyman and committed by
Greg Kroah-Hartman
7c014315 e142dc1e

+2 -2
+2 -2
include/uapi/linux/usb/ch9.h
··· 1077 1077 #define USB_DT_USB_PTM_ID_SIZE 3 1078 1078 /* 1079 1079 * The size of the descriptor for the Sublink Speed Attribute Count 1080 - * (SSAC) specified in bmAttributes[4:0]. 1080 + * (SSAC) specified in bmAttributes[4:0]. SSAC is zero-based 1081 1081 */ 1082 - #define USB_DT_USB_SSP_CAP_SIZE(ssac) (16 + ssac * 4) 1082 + #define USB_DT_USB_SSP_CAP_SIZE(ssac) (12 + (ssac + 1) * 4) 1083 1083 1084 1084 /*-------------------------------------------------------------------------*/ 1085 1085