Re: [PATCH] usb: mtu3: Don't check the USB3 status bits if the max speed is USB2

From: Chunfeng Yun (云春峰)
Date: Thu May 04 2023 - 03:48:51 EST


On Wed, 2023-04-26 at 21:24 +0200, amergnat@xxxxxxxxxxxx wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>
>
> From: Alexandre Bailon <abailon@xxxxxxxxxxxx>
>
> If the IP is U3, the driver will check some USB3 status bits.
> This could fail if only USB2 is used.
> This only check these bits if USB operate at USB3 speed.
>
> Signed-off-by: Alexandre Bailon <abailon@xxxxxxxxxxxx>
> Signed-off-by: Fabien Parent <fparent@xxxxxxxxxxxx>
> Signed-off-by: Alexandre Mergnat <amergnat@xxxxxxxxxxxx>
> ---
> This patch is ported from downstream. Without this fix, USB doesn't
> work if USB2 protocol is used first.
> ---
> drivers/usb/mtu3/mtu3_core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/mtu3/mtu3_core.c
> b/drivers/usb/mtu3/mtu3_core.c
> index a3a6282893d0..00dba871aff8 100644
> --- a/drivers/usb/mtu3/mtu3_core.c
> +++ b/drivers/usb/mtu3/mtu3_core.c
> @@ -100,7 +100,7 @@ static int mtu3_device_enable(struct mtu3 *mtu)
>
> mtu3_clrbits(ibase, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
>
> - if (mtu->u3_capable) {
> + if (mtu->u3_capable && mtu->max_speed >= USB_SPEED_SUPER) {
NAK

Maybe you misunderstand the usage of @u3_capable, if you only use u2
function but the controller support u3 function, shall disable u3 by
property "mediatek,u3p-dis-msk", then no need check speed here.

Thanks

> check_clk = SSUSB_U3_MAC_RST_B_STS;
> mtu3_clrbits(ibase, SSUSB_U3_CTRL(0),
> (SSUSB_U3_PORT_DIS | SSUSB_U3_PORT_PDN |
>
> ---
> base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
> change-id: 20230426-usb-mtu3-improvement-77d987def9fe
>
> Best regards,
> --
> Alexandre Mergnat <amergnat@xxxxxxxxxxxx>
>