usb: host: xhci: set xhci autosuspend quirk based on platform data
authorWilliam Wu <wulf@rock-chips.com>
Tue, 21 Feb 2017 08:41:55 +0000 (16:41 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 22 Feb 2017 06:16:41 +0000 (14:16 +0800)
commit4eab21e6bfb95170da69def04e7369701c301096
tree9cda49d53b21b6e7587bbf04a64566d192f66e58
parent52fc3f5c807a580860a7dccfe321bd1bf065a292
usb: host: xhci: set xhci autosuspend quirk based on platform data

Some USB controllers (such as rk3328 SoC DWC3 controller with INNO
USB 3.0 PHY) don't support autosuspend well, when receive remote
wakeup signal from autosuspend, the Port Link State training failed,
the correct PLC is Resume->Recovery->U0, but when the issue happens,
the wrong PLC is Resume->Recovery->Inactive, cause resuming SS port
fail. This issue always occurs when connect with external USB 3.0 HUB.

This patch add a quirk to disable autosuspend function, and add new
'usb3_disable_autosuspend' member in xHCI platform data to support
set the quirk based on platform data.

Change-Id: Ice01d70178206e22658660361dd3a525046cbcf5
Signed-off-by: William Wu <wulf@rock-chips.com>
drivers/usb/host/xhci-plat.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h
include/linux/usb/xhci_pdriver.h