]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Dec 2017 12:44:21 +0000 (13:44 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Dec 2017 12:44:21 +0000 (13:44 +0100)
added patches:
usb-add-usb-3.1-precision-time-measurement-capability-descriptor-support.patch
usb-ch9-add-size-macro-for-ssp-dev-cap-descriptor.patch

queue-4.4/series
queue-4.4/usb-add-usb-3.1-precision-time-measurement-capability-descriptor-support.patch [new file with mode: 0644]
queue-4.4/usb-ch9-add-size-macro-for-ssp-dev-cap-descriptor.patch [new file with mode: 0644]
queue-4.4/usb-core-add-type-specific-length-check-of-bos-descriptors.patch

index 0d26b9ca3bc8e22b73a975465784b8b58fb1cd11..ae7b742b9a4b7c92add807d10f8fc70e84ef2a9b 100644 (file)
@@ -40,6 +40,8 @@ net-fec-fix-multicast-filtering-hardware-setup.patch
 revert-ocfs2-should-wait-dio-before-inode-lock-in-ocfs2_setattr.patch
 usb-hub-cycle-hub-power-when-initialization-fails.patch
 usb-xhci-fix-panic-in-xhci_free_virt_devices_depth_first.patch
+usb-add-usb-3.1-precision-time-measurement-capability-descriptor-support.patch
+usb-ch9-add-size-macro-for-ssp-dev-cap-descriptor.patch
 usb-core-add-type-specific-length-check-of-bos-descriptors.patch
 usb-increase-usbfs-transfer-limit.patch
 usb-devio-prevent-integer-overflow-in-proc_do_submiturb.patch
diff --git a/queue-4.4/usb-add-usb-3.1-precision-time-measurement-capability-descriptor-support.patch b/queue-4.4/usb-add-usb-3.1-precision-time-measurement-capability-descriptor-support.patch
new file mode 100644 (file)
index 0000000..6badc5f
--- /dev/null
@@ -0,0 +1,65 @@
+From faee822c5a7ab99de25cd34fcde3f8d37b6b9923 Mon Sep 17 00:00:00 2001
+From: Mathias Nyman <mathias.nyman@linux.intel.com>
+Date: Fri, 12 Feb 2016 16:40:14 +0200
+Subject: usb: Add USB 3.1 Precision time measurement capability descriptor support
+
+From: Mathias Nyman <mathias.nyman@linux.intel.com>
+
+commit faee822c5a7ab99de25cd34fcde3f8d37b6b9923 upstream.
+
+USB 3.1 devices that support precision time measurement have an
+additional PTM cabaility descriptor as part of the full BOS descriptor
+
+Look for this descriptor while parsing the BOS descriptor, and store it in
+struct usb_hub_bos if it exists.
+
+Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/core/config.c    |    3 +++
+ include/linux/usb.h          |    1 +
+ include/uapi/linux/usb/ch9.h |   10 ++++++++++
+ 3 files changed, 14 insertions(+)
+
+--- a/drivers/usb/core/config.c
++++ b/drivers/usb/core/config.c
+@@ -959,6 +959,9 @@ int usb_get_bos_descriptor(struct usb_de
+                       dev->bos->ss_id =
+                               (struct usb_ss_container_id_descriptor *)buffer;
+                       break;
++              case USB_PTM_CAP_TYPE:
++                      dev->bos->ptm_cap =
++                              (struct usb_ptm_cap_descriptor *)buffer;
+               default:
+                       break;
+               }
+--- a/include/linux/usb.h
++++ b/include/linux/usb.h
+@@ -330,6 +330,7 @@ struct usb_host_bos {
+       struct usb_ss_cap_descriptor    *ss_cap;
+       struct usb_ssp_cap_descriptor   *ssp_cap;
+       struct usb_ss_container_id_descriptor   *ss_id;
++      struct usb_ptm_cap_descriptor   *ptm_cap;
+ };
+ int __usb_get_extra_descriptor(char *buffer, unsigned size,
+--- a/include/uapi/linux/usb/ch9.h
++++ b/include/uapi/linux/usb/ch9.h
+@@ -895,6 +895,16 @@ struct usb_ssp_cap_descriptor {
+ #define USB_SSP_SUBLINK_SPEED_LSM     (0xff << 16)    /* Lanespeed mantissa */
+ } __attribute__((packed));
++/*
++ * Precision time measurement capability descriptor: advertised by devices and
++ * hubs that support PTM
++ */
++#define       USB_PTM_CAP_TYPE        0xb
++struct usb_ptm_cap_descriptor {
++      __u8  bLength;
++      __u8  bDescriptorType;
++      __u8  bDevCapabilityType;
++} __attribute__((packed));
+ /*-------------------------------------------------------------------------*/
diff --git a/queue-4.4/usb-ch9-add-size-macro-for-ssp-dev-cap-descriptor.patch b/queue-4.4/usb-ch9-add-size-macro-for-ssp-dev-cap-descriptor.patch
new file mode 100644 (file)
index 0000000..576f23d
--- /dev/null
@@ -0,0 +1,41 @@
+From 446fa3a95df1e8b78f25e1babc41e46edd200821 Mon Sep 17 00:00:00 2001
+From: John Youn <John.Youn@synopsys.com>
+Date: Fri, 5 Feb 2016 17:05:12 -0800
+Subject: usb: ch9: Add size macro for SSP dev cap descriptor
+
+From: John Youn <John.Youn@synopsys.com>
+
+commit 446fa3a95df1e8b78f25e1babc41e46edd200821 upstream.
+
+The SuperspeedPlus Device Capability Descriptor has a variable size
+depending on the number of sublink speed attributes.
+
+This patch adds a macro to calculate that size. The macro takes one
+argument, the Sublink Speed Attribute Count (SSAC) as reported by the
+descriptor in bmAttributes[4:0].
+
+See USB 3.1 9.6.2.5, Table 9-19.
+
+Signed-off-by: John Youn <johnyoun@synopsys.com>
+Signed-off-by: Felipe Balbi <balbi@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/uapi/linux/usb/ch9.h |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/include/uapi/linux/usb/ch9.h
++++ b/include/uapi/linux/usb/ch9.h
+@@ -906,6 +906,12 @@ struct usb_ptm_cap_descriptor {
+       __u8  bDevCapabilityType;
+ } __attribute__((packed));
++/*
++ * The size of the descriptor for the Sublink Speed Attribute Count
++ * (SSAC) specified in bmAttributes[4:0].
++ */
++#define USB_DT_USB_SSP_CAP_SIZE(ssac) (16 + ssac * 4)
++
+ /*-------------------------------------------------------------------------*/
+ /* USB_DT_WIRELESS_ENDPOINT_COMP:  companion descriptor associated with
index 7e1791dc4bea3a3737a4edf60e3e2806de770238..4595fd1effc441b02a75110eaa6a54c0514ec502 100644 (file)
@@ -99,7 +99,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  /* USB 2.0 Extension descriptor */
  #define       USB_CAP_TYPE_EXT                2
  
-@@ -991,6 +993,7 @@ enum usb3_link_state {
+@@ -1007,6 +1009,7 @@ enum usb3_link_state {
        USB3_LPM_U3
  };