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:40:33 +0000 (12:40 +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 4ace953278375b776c6e1308b0d19f950af0a19c..a3e1105c5c662b98c16ca879cb52dcbe21c139e5 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 */