diff options
Diffstat (limited to 'drivers/usb/host/xhci-hub.c')
-rw-r--r-- | drivers/usb/host/xhci-hub.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index a1a7a9795536..480936a870ce 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c | |||
@@ -132,6 +132,13 @@ static u32 xhci_port_state_to_neutral(u32 state) | |||
132 | static void xhci_disable_port(struct xhci_hcd *xhci, u16 wIndex, | 132 | static void xhci_disable_port(struct xhci_hcd *xhci, u16 wIndex, |
133 | u32 __iomem *addr, u32 port_status) | 133 | u32 __iomem *addr, u32 port_status) |
134 | { | 134 | { |
135 | /* Don't allow the USB core to disable SuperSpeed ports. */ | ||
136 | if (xhci->port_array[wIndex] == 0x03) { | ||
137 | xhci_dbg(xhci, "Ignoring request to disable " | ||
138 | "SuperSpeed port.\n"); | ||
139 | return; | ||
140 | } | ||
141 | |||
135 | /* Write 1 to disable the port */ | 142 | /* Write 1 to disable the port */ |
136 | xhci_writel(xhci, port_status | PORT_PE, addr); | 143 | xhci_writel(xhci, port_status | PORT_PE, addr); |
137 | port_status = xhci_readl(xhci, addr); | 144 | port_status = xhci_readl(xhci, addr); |