DM USB: xHCI: refine the USB disconnect logic in DM

On certain SOC, during the system suspend and resume process, connecting
and disconnecting events may happen. In previous implementation, DM didn't
clear PED bit in the xHCI PORTSC register, this will induce many invalid
polling operations in UOS and fail to enumerate one or more USB devices.

Tracked-On: #1589
Signed-off-by: Xiaoguang Wu <xiaoguang.wu@intel.com>
Reviewed-by: Liang Yang <liang3.yang@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
This commit is contained in:
Xiaoguang Wu 2018-10-24 14:40:52 +08:00 committed by wenlingz
parent f799e8fa1c
commit e1e0d3047e

View File

@ -1032,7 +1032,7 @@ pci_xhci_change_port(struct pci_xhci_vdev *xdev, int port, int usb_speed,
reg = XHCI_PORTREG_PTR(xdev, port);
if (conn == 0) {
reg->portsc &= ~XHCI_PS_CCS;
reg->portsc &= ~(XHCI_PS_CCS | XHCI_PS_PED);
reg->portsc |= (XHCI_PS_CSC |
XHCI_PS_PLS_SET(UPS_PORT_LS_RX_DET));
} else {