usb: mtu3: set interval of FS intr and isoc endpoint
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Sat, 18 Dec 2021 09:57:49 +0000 (17:57 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Jan 2022 11:42:38 +0000 (12:42 +0100)
commit 43f3b8cbcf93da7c2755af4a543280c31f4adf16 upstream.

Add support to set interval also for FS intr and isoc endpoint.

Fixes: 4d79e042ed8b ("usb: mtu3: add support for usb3.1 IP")
Cc: stable@vger.kernel.org
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/20211218095749.6250-4-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/mtu3/mtu3_gadget.c

index 163d4cf9a5add2973234a522855327caf988a75c..0b21da4ee1836ebfd547effbb8b71e294d754d5c 100644 (file)
@@ -92,6 +92,13 @@ static int mtu3_ep_enable(struct mtu3_ep *mep)
                        interval = clamp_val(interval, 1, 16) - 1;
                        mult = usb_endpoint_maxp_mult(desc) - 1;
                }
+               break;
+       case USB_SPEED_FULL:
+               if (usb_endpoint_xfer_isoc(desc))
+                       interval = clamp_val(desc->bInterval, 1, 16);
+               else if (usb_endpoint_xfer_int(desc))
+                       interval = clamp_val(desc->bInterval, 1, 255);
+
                break;
        default:
                break; /*others are ignored */