[PATCH] usb: gadget: dwc2_udc_otg: Fix dwc2_gadget_start()
Patrice CHOTARD
patrice.chotard at foss.st.com
Thu Feb 11 10:58:31 CET 2021
Hi Marek
On 2/10/21 3:26 PM, Marek Vasut wrote:
> On 2/10/21 3:17 PM, Patrice Chotard wrote:
>> Since commit 8745b9ebccae ("usb: gadget: add super speed support")
>> ums was no more functional on platform which use dwc2_udc_otg driver.
>>
>> Remove the speed test in dwc2_gadget_start() to fix it.
>> Tested on stm32mp157c-ev1 board.
>
> Isn't the speed check correct though ?
I am not sure this speed test is needed.
>
> What is really going on when this fails ?
Since 8745b9ebccae ("usb: gadget: add super speed support"),
driver->speed is now set to USB_SPEED_SUPER in drivers/usb/gadget/composite.c
and this forbids dwc2_udc_otg.c to be registered.
Patrice
>
>> Fixes: c791c8431c34 ("usb: dwc2: convert driver to DM_USB_GADGET")
>>
>> Signed-off-by: Patrice Chotard <patrice.chotard at foss.st.com>
>> ---
>>
>> drivers/usb/gadget/dwc2_udc_otg.c | 10 ++--------
>> 1 file changed, 2 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c
>> index e3871e381e..4f3d761eb1 100644
>> --- a/drivers/usb/gadget/dwc2_udc_otg.c
>> +++ b/drivers/usb/gadget/dwc2_udc_otg.c
>> @@ -248,10 +248,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
>> debug_cond(DEBUG_SETUP != 0, "%s: %s\n", __func__, "no name");
>> - if (!driver
>> - || (driver->speed != USB_SPEED_FULL
>> - && driver->speed != USB_SPEED_HIGH)
>> - || !driver->bind || !driver->disconnect || !driver->setup)
>> + if (!driver || !driver->bind || !driver->disconnect || !driver->setup)
>> return -EINVAL;
>> if (!dev)
>> return -ENODEV;
>> @@ -320,10 +317,7 @@ static int dwc2_gadget_start(struct usb_gadget *g,
>> debug_cond(DEBUG_SETUP != 0, "%s: %s\n", __func__, "no name");
>> - if (!driver ||
>> - (driver->speed != USB_SPEED_FULL &&
>> - driver->speed != USB_SPEED_HIGH) ||
>> - !driver->bind || !driver->disconnect || !driver->setup)
>> + if (!driver || !driver->bind || !driver->disconnect || !driver->setup)
>> return -EINVAL;
>> if (!dev)
>>
>
>
> [...]
More information about the U-Boot
mailing list