xhci: Workaround to get D3 working in Intel xHCI
authorRajmohan Mani <rajmohan.mani@intel.com>
Tue, 21 Jul 2015 14:20:26 +0000 (17:20 +0300)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 15 Feb 2016 20:45:32 +0000 (15:45 -0500)
commitbba8f524da11a915f37835925cc602eb64383b56
treeaa75581f10938bbadc6e25f873843e3d464c6962
parentcd3c40afce6cd0209432e6690e60c2156a27c68d
xhci: Workaround to get D3 working in Intel xHCI

[ Upstream commit abce329c27b315cfc01be1a305ee976ee13ed4cf ]

The xHCI in Intel CherryView / Braswell Platform requires
a driver workaround to get xHCI D3 working. Without this
workaround, xHCI might not enter D3.

Workaround is to configure SSIC PORT as "unused" before D3
entry and "used" after D3 exit. This is done through a
vendor specific register (PORT2_SSIC_CONFIG_REG2 at offset
0x883c), in xhci suspend / resume callbacks.

Verified xHCI D3 works fine in CherryView / Braswell platform.

Signed-off-by: Rajmohan Mani <rajmohan.mani@intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/usb/host/xhci-pci.c