summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuyang Du <yuyang.du@intel.com>2017-06-08 08:04:06 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-13 11:51:09 +0300
commit559e9c00b340ab4929e36a6bb176ca11f95ef46a (patch)
treea5ebc19108f858e852ecaf8e7a4a270509a1cbb2
parent5ec0edc96558a0090c7c3361adc0a5d98102cd80 (diff)
downloadlinux-559e9c00b340ab4929e36a6bb176ca11f95ef46a.tar.xz
usbip: vhci-hcd: Add vhci struct
In order to support SuperSpeed devices, a USB3 HCD is added to share the USB2 HCD. As a result, a VHCI is composed of two vhci_hcds associated with the two HCDs respectively. So we add another level of abstraction, vhci, and thus this vhci structure. Signed-off-by: Yuyang Du <yuyang.du@intel.com> Acked-by: Shuah Khan <shuahkh@osg.samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/usbip/vhci.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/usb/usbip/vhci.h b/drivers/usb/usbip/vhci.h
index bff472f748a9..995958494263 100644
--- a/drivers/usb/usbip/vhci.h
+++ b/drivers/usb/usbip/vhci.h
@@ -87,8 +87,17 @@ struct vhci_unlink {
#define MAX_STATUS_NAME 16
-/* for usb_bus.hcpriv */
+struct vhci {
+ spinlock_t lock;
+
+ struct vhci_hcd *vhci_hcd_hs;
+ struct vhci_hcd *vhci_hcd_ss;
+};
+
+/* for usb_hcd.hcd_priv[0] */
struct vhci_hcd {
+ struct vhci *vhci;
+
spinlock_t lock;
u32 port_status[VHCI_HC_PORTS];
@@ -108,6 +117,7 @@ struct vhci_hcd {
extern int vhci_num_controllers;
extern struct platform_device **vhci_pdevs;
+extern struct vhci *vhcis;
extern struct attribute_group vhci_attr_group;
/* vhci_hcd.c */