diff options
Diffstat (limited to '')
| -rw-r--r-- | drivers/usb/host/xhci-hub.c | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index aa79e8749040..69aece31143a 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c @@ -468,7 +468,8 @@ static void xhci_hub_report_usb2_link_state(u32 *status, u32 status_reg)  }  /* Updates Link Status for super Speed port */ -static void xhci_hub_report_usb3_link_state(u32 *status, u32 status_reg) +static void xhci_hub_report_usb3_link_state(struct xhci_hcd *xhci, +		u32 *status, u32 status_reg)  {  	u32 pls = status_reg & PORT_PLS_MASK; @@ -507,7 +508,8 @@ static void xhci_hub_report_usb3_link_state(u32 *status, u32 status_reg)  		 * in which sometimes the port enters compliance mode  		 * caused by a delay on the host-device negotiation.  		 */ -		if (pls == USB_SS_PORT_LS_COMP_MOD) +		if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) && +				(pls == USB_SS_PORT_LS_COMP_MOD))  			pls |= USB_PORT_STAT_CONNECTION;  	} @@ -666,7 +668,7 @@ static u32 xhci_get_port_status(struct usb_hcd *hcd,  	}  	/* Update Port Link State */  	if (hcd->speed == HCD_USB3) { -		xhci_hub_report_usb3_link_state(&status, raw_port_status); +		xhci_hub_report_usb3_link_state(xhci, &status, raw_port_status);  		/*  		 * Verify if all USB3 Ports Have entered U0 already.  		 * Delete Compliance Mode Timer if so. | 
