]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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>
Sun, 12 Sep 2021 06:59:59 +0000 (08:59 +0200)
commit e88f28514065a6c48aadc367efb0ef6378a01543 upstream.

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 b3b4599375668aa862040b483b0b8be960ab8605..3d328dfdbb5ed0d39ae9bef9b0c86f2d9c32adf0 100644 (file)
@@ -227,11 +227,13 @@ 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: