usb: mtu3: restore HS function when set SS/SSP
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Fri, 13 Aug 2021 06:30:47 +0000 (14:30 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Aug 2021 11:05:50 +0000 (13:05 +0200)
Due to HS function is disabled when set as FS, need restore
it when set as SS/SSP.

Fixes: dc4c1aa7eae9 ("usb: mtu3: add ->udc_set_speed()")
Cc: stable@vger.kernel.org
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/1628836253-7432-1-git-send-email-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/mtu3/mtu3_core.c

index f90e5cd..c4a2c37 100644 (file)
@@ -249,11 +249,13 @@ static void mtu3_set_speed(struct mtu3 *mtu, enum usb_device_speed speed)
                mtu3_setbits(mbase, U3D_POWER_MANAGEMENT, HS_ENABLE);
                break;
        case USB_SPEED_SUPER:
+               mtu3_setbits(mbase, U3D_POWER_MANAGEMENT, HS_ENABLE);
                mtu3_clrbits(mtu->ippc_base, SSUSB_U3_CTRL(0),
                             SSUSB_U3_PORT_SSP_SPEED);
                break;
        case USB_SPEED_SUPER_PLUS:
-                       mtu3_setbits(mtu->ippc_base, SSUSB_U3_CTRL(0),
+               mtu3_setbits(mbase, U3D_POWER_MANAGEMENT, HS_ENABLE);
+               mtu3_setbits(mtu->ippc_base, SSUSB_U3_CTRL(0),
                             SSUSB_U3_PORT_SSP_SPEED);
                break;
        default: