mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
usb: mtu3: fix error of xhci port id when enable U3 dual role
If dual role mode is enabled, when switch u3port0 to device mode, it will affect port id calculation of host(xHCI), specially when host supports multi U2 ports or U3 ports, so need enable its dual role mode, and fix it here. Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
42d1c6d4a0
commit
78af87b8bb
2 changed files with 6 additions and 1 deletions
|
@ -107,8 +107,12 @@ static int mtu3_device_enable(struct mtu3 *mtu)
|
|||
(SSUSB_U2_PORT_DIS | SSUSB_U2_PORT_PDN |
|
||||
SSUSB_U2_PORT_HOST_SEL));
|
||||
|
||||
if (mtu->ssusb->dr_mode == USB_DR_MODE_OTG)
|
||||
if (mtu->ssusb->dr_mode == USB_DR_MODE_OTG) {
|
||||
mtu3_setbits(ibase, SSUSB_U2_CTRL(0), SSUSB_U2_PORT_OTG_SEL);
|
||||
if (mtu->is_u3_ip)
|
||||
mtu3_setbits(ibase, SSUSB_U3_CTRL(0),
|
||||
SSUSB_U3_PORT_DUAL_MODE);
|
||||
}
|
||||
|
||||
return ssusb_check_clocks(mtu->ssusb, check_clk);
|
||||
}
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
|
||||
/* U3D_SSUSB_U3_CTRL_0P */
|
||||
#define SSUSB_U3_PORT_SSP_SPEED BIT(9)
|
||||
#define SSUSB_U3_PORT_DUAL_MODE BIT(7)
|
||||
#define SSUSB_U3_PORT_HOST_SEL BIT(2)
|
||||
#define SSUSB_U3_PORT_PDN BIT(1)
|
||||
#define SSUSB_U3_PORT_DIS BIT(0)
|
||||
|
|
Loading…
Reference in a new issue