summaryrefslogtreecommitdiffstats
path: root/drivers/usb/mtu3/mtu3_core.c
diff options
context:
space:
mode:
authorChunfeng Yun2018-11-29 03:34:36 +0100
committerGreg Kroah-Hartman2018-12-05 10:14:06 +0100
commit1fab219e65c45cf6e294c757b10e514a15f55f8d (patch)
tree2bd84f7c79657ac3802c59b835802c7d073c969b /drivers/usb/mtu3/mtu3_core.c
parentusb: mtu3: enable SETUPENDISR interrupt (diff)
downloadkernel-qcow2-linux-1fab219e65c45cf6e294c757b10e514a15f55f8d.tar.gz
kernel-qcow2-linux-1fab219e65c45cf6e294c757b10e514a15f55f8d.tar.xz
kernel-qcow2-linux-1fab219e65c45cf6e294c757b10e514a15f55f8d.zip
usb: mtu3: clear SOFTCONN when clear USB3_EN if work as HS mode
When the controller supports SS mode, but works as HS mode, the SOFTCONN will not be cleared automatically when clear USB3_EN by default, this cause an issue that can't disconnect from host, so clear SOFTCONN when clear USB3_EN when the class driver want to disable the D+ pullup. Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/mtu3/mtu3_core.c')
-rw-r--r--drivers/usb/mtu3/mtu3_core.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
index b6b20949d63a..4fee200795a5 100644
--- a/drivers/usb/mtu3/mtu3_core.c
+++ b/drivers/usb/mtu3/mtu3_core.c
@@ -586,6 +586,8 @@ static void mtu3_regs_init(struct mtu3 *mtu)
mtu3_clrbits(mbase, U3D_LTSSM_CTRL, SOFT_U3_EXIT_EN);
/* automatically build U2 link when U3 detect fail */
mtu3_setbits(mbase, U3D_USB2_TEST_MODE, U2U3_AUTO_SWITCH);
+ /* auto clear SOFT_CONN when clear USB3_EN if work as HS */
+ mtu3_setbits(mbase, U3D_U3U2_SWITCH_CTRL, SOFTCON_CLR_AUTO_EN);
}
mtu3_set_speed(mtu);