summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathias Nyman2015-10-01 17:40:33 +0200
committerGreg Kroah-Hartman2015-10-04 11:34:17 +0200
commit3220befddc0da1f4e09fc790a32a9bd8427e8889 (patch)
tree17562d42e9eba1dbe27cbf4596cb2cfdbd85bd9e
parentusb: Add USB 3.1 SuperSpeedPlus device capability descriptor (diff)
downloadkernel-qcow2-linux-3220befddc0da1f4e09fc790a32a9bd8427e8889.tar.gz
kernel-qcow2-linux-3220befddc0da1f4e09fc790a32a9bd8427e8889.tar.xz
kernel-qcow2-linux-3220befddc0da1f4e09fc790a32a9bd8427e8889.zip
usb: store the new usb 3.1 SuperSpeedPlus device capability descriptor
If a device supports usb 3.1 SupeerSpeedPlus Gen2 speeds it povides a SuperSpeedPlus device capability descriptor as a part of its BOS descriptor. If we find one while parsing the BOS then save it togeter with the other device capabilities found in the BOS Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/core/config.c4
-rw-r--r--include/linux/usb.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index b9ddf0c1ffe5..7caff020106e 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -853,6 +853,10 @@ int usb_get_bos_descriptor(struct usb_device *dev)
dev->bos->ss_cap =
(struct usb_ss_cap_descriptor *)buffer;
break;
+ case USB_SSP_CAP_TYPE:
+ dev->bos->ssp_cap =
+ (struct usb_ssp_cap_descriptor *)buffer;
+ break;
case CONTAINER_ID_TYPE:
dev->bos->ss_id =
(struct usb_ss_container_id_descriptor *)buffer;
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 2cbcf8db517a..b9a28074210f 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -328,6 +328,7 @@ struct usb_host_bos {
/* wireless cap descriptor is handled by wusb */
struct usb_ext_cap_descriptor *ext_cap;
struct usb_ss_cap_descriptor *ss_cap;
+ struct usb_ssp_cap_descriptor *ssp_cap;
struct usb_ss_container_id_descriptor *ss_id;
};