summaryrefslogtreecommitdiff
path: root/drivers/usb/cdns3
diff options
context:
space:
mode:
authorRavi Gunasekaran <r-gunasekaran@ti.com>2023-07-19 14:29:08 +0530
committerMarek Vasut <marex@denx.de>2023-07-21 02:05:10 +0200
commit15cba56dc80092c397be8bbe086abb926808857c (patch)
tree6acf6949afdccec2d8c8414777394baa06435f8a /drivers/usb/cdns3
parenta6a74ce09b4aded73151049bc8083a580fc1cf55 (diff)
usb: cdns3: gadget: Configure speed in udc_start
When one of the functions does not support super speed, the composite driver forces the gadget to high speed. But the speed is never configured in the cdns3 gadget driver. So configure the speed in cdns3_gadget_udc_start just like in the kernel. Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com> Reviewed-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'drivers/usb/cdns3')
-rw-r--r--drivers/usb/cdns3/gadget.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c
index fcaeab9cc1d..cae570cf598 100644
--- a/drivers/usb/cdns3/gadget.c
+++ b/drivers/usb/cdns3/gadget.c
@@ -82,6 +82,9 @@ static int __cdns3_gadget_ep_queue(struct usb_ep *ep,
struct usb_request *request,
gfp_t gfp_flags);
+static void cdns3_gadget_udc_set_speed(struct usb_gadget *gadget,
+ enum usb_device_speed speed);
+
/**
* cdns3_set_register_bit - set bit in given register.
* @ptr: address of device controller register to be read and changed
@@ -2341,6 +2344,7 @@ static int cdns3_gadget_udc_start(struct usb_gadget *gadget,
spin_lock_irqsave(&priv_dev->lock, flags);
priv_dev->gadget_driver = driver;
+ cdns3_gadget_udc_set_speed(gadget, gadget->max_speed);
cdns3_gadget_config(priv_dev);
spin_unlock_irqrestore(&priv_dev->lock, flags);
return 0;