Loading drivers/usb/host/xhci-hub.c +33 −0 Original line number Diff line number Diff line Loading @@ -1213,6 +1213,39 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, break; } /* * For xHCI 1.1 according to section 4.19.1.2.4.1 a * root hub port's transition to compliance mode upon * detecting LFPS timeout may be controlled by an * Compliance Transition Enabled (CTE) flag (not * software visible). This flag is set by writing 0xA * to PORTSC PLS field which will allow transition to * compliance mode the next time LFPS timeout is * encountered. A warm reset will clear it. * * The CTE flag is only supported if the HCCPARAMS2 CTC * flag is set, otherwise, the compliance substate is * automatically entered as on 1.0 and prior. */ if (link_state == USB_SS_PORT_LS_COMP_MOD) { if (!HCC2_CTC(xhci->hcc_params2)) { xhci_dbg(xhci, "CTC flag is 0, port already supports entering compliance mode\n"); break; } if ((temp & PORT_CONNECT)) { xhci_warn(xhci, "Can't set compliance mode when port is connected\n"); goto error; } xhci_dbg(xhci, "Enable compliance mode transition for port %d\n", wIndex); xhci_set_link_state(xhci, port_array, wIndex, link_state); temp = readl(port_array[wIndex]); break; } /* Software should not attempt to set * port link state above '3' (U3) and the port * must be enabled. Loading Loading
drivers/usb/host/xhci-hub.c +33 −0 Original line number Diff line number Diff line Loading @@ -1213,6 +1213,39 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, break; } /* * For xHCI 1.1 according to section 4.19.1.2.4.1 a * root hub port's transition to compliance mode upon * detecting LFPS timeout may be controlled by an * Compliance Transition Enabled (CTE) flag (not * software visible). This flag is set by writing 0xA * to PORTSC PLS field which will allow transition to * compliance mode the next time LFPS timeout is * encountered. A warm reset will clear it. * * The CTE flag is only supported if the HCCPARAMS2 CTC * flag is set, otherwise, the compliance substate is * automatically entered as on 1.0 and prior. */ if (link_state == USB_SS_PORT_LS_COMP_MOD) { if (!HCC2_CTC(xhci->hcc_params2)) { xhci_dbg(xhci, "CTC flag is 0, port already supports entering compliance mode\n"); break; } if ((temp & PORT_CONNECT)) { xhci_warn(xhci, "Can't set compliance mode when port is connected\n"); goto error; } xhci_dbg(xhci, "Enable compliance mode transition for port %d\n", wIndex); xhci_set_link_state(xhci, port_array, wIndex, link_state); temp = readl(port_array[wIndex]); break; } /* Software should not attempt to set * port link state above '3' (U3) and the port * must be enabled. Loading