diff options
author | Chunfeng Yun <chunfeng.yun@mediatek.com> | 2020-07-27 15:14:59 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-07-29 16:53:58 +0200 |
commit | f1e51e99ed498d4aa9ae5df28e43d558ea627781 (patch) | |
tree | be423e54c6630589061bf6ccc372155295a33d1c /drivers/usb | |
parent | 54402373c45e440f2e71f7a02cd5c8889abec085 (diff) | |
download | linux-f1e51e99ed498d4aa9ae5df28e43d558ea627781.tar.gz linux-f1e51e99ed498d4aa9ae5df28e43d558ea627781.tar.bz2 linux-f1e51e99ed498d4aa9ae5df28e43d558ea627781.zip |
usb: mtu3: clear dual mode of u3port when disable device
If not clear u3port's dual mode when disable device, the IP
will fail to enter sleep mode when suspend.
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/1595834101-13094-10-git-send-email-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/mtu3/mtu3_core.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c index 9e0b68b3920c..b3b459937566 100644 --- a/drivers/usb/mtu3/mtu3_core.c +++ b/drivers/usb/mtu3/mtu3_core.c @@ -131,8 +131,12 @@ static void mtu3_device_disable(struct mtu3 *mtu) mtu3_setbits(ibase, SSUSB_U2_CTRL(0), SSUSB_U2_PORT_DIS | SSUSB_U2_PORT_PDN); - if (mtu->ssusb->dr_mode == USB_DR_MODE_OTG) + if (mtu->ssusb->dr_mode == USB_DR_MODE_OTG) { mtu3_clrbits(ibase, SSUSB_U2_CTRL(0), SSUSB_U2_PORT_OTG_SEL); + if (mtu->is_u3_ip) + mtu3_clrbits(ibase, SSUSB_U3_CTRL(0), + SSUSB_U3_PORT_DUAL_MODE); + } mtu3_setbits(ibase, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN); } |