Two trivial fixes and .pullup implementation for Atmel UDC driver to
make composite gadget happy when handling reconfiguration.
Michał Mirosław (3):
usb: gadget: udc: atmel: remove outdated comment in usba_ep_disable()
usb: gadget: udc: atmel: fix uninitialized read in debug printk
usb: gadget: udc: atmel: implement .pullup callback
drivers/usb/gadget/udc/atmel_usba_udc.c | 30 ++++++++++++++++++-------
1 file changed, 22 insertions(+), 8 deletions(-)
--
2.20.1
Fixed commit removed the offending behaviour from the driver, but missed
the comment and associated test. Remove them now.
Fixes: 38e58986e6fc ("usb: gadget: udc: atmel: don't disable enpdoints we don't own")
Signed-off-by: Michał Mirosław <[email protected]>
---
drivers/usb/gadget/udc/atmel_usba_udc.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index d69f61ff0181..9153e220848d 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -676,13 +676,7 @@ static int usba_ep_disable(struct usb_ep *_ep)
if (!ep->ep.desc) {
spin_unlock_irqrestore(&udc->lock, flags);
- /* REVISIT because this driver disables endpoints in
- * reset_all_endpoints() before calling disconnect(),
- * most gadget drivers would trigger this non-error ...
- */
- if (udc->gadget.speed != USB_SPEED_UNKNOWN)
- DBG(DBG_ERR, "ep_disable: %s not enabled\n",
- ep->ep.name);
+ DBG(DBG_ERR, "ep_disable: %s not enabled\n", ep->ep.name);
return -EINVAL;
}
ep->ep.desc = NULL;
--
2.20.1
On 08/07/2020 20:04:09+0200, Michał Mirosław wrote:
> Fixed commit removed the offending behaviour from the driver, but missed
> the comment and associated test. Remove them now.
>
> Fixes: 38e58986e6fc ("usb: gadget: udc: atmel: don't disable enpdoints we don't own")
> Signed-off-by: Michał Mirosław <[email protected]>
Acked-by: Alexandre Belloni <[email protected]>
> ---
> drivers/usb/gadget/udc/atmel_usba_udc.c | 8 +-------
> 1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
> index d69f61ff0181..9153e220848d 100644
> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
> @@ -676,13 +676,7 @@ static int usba_ep_disable(struct usb_ep *_ep)
>
> if (!ep->ep.desc) {
> spin_unlock_irqrestore(&udc->lock, flags);
> - /* REVISIT because this driver disables endpoints in
> - * reset_all_endpoints() before calling disconnect(),
> - * most gadget drivers would trigger this non-error ...
> - */
> - if (udc->gadget.speed != USB_SPEED_UNKNOWN)
> - DBG(DBG_ERR, "ep_disable: %s not enabled\n",
> - ep->ep.name);
> + DBG(DBG_ERR, "ep_disable: %s not enabled\n", ep->ep.name);
> return -EINVAL;
> }
> ep->ep.desc = NULL;
> --
> 2.20.1
>
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
On 7/16/20 12:44 AM, Alexandre Belloni wrote:
>
> On 08/07/2020 20:04:09+0200, Michał Mirosław wrote:
>> Fixed commit removed the offending behaviour from the driver, but missed
>> the comment and associated test. Remove them now.
>>
>> Fixes: 38e58986e6fc ("usb: gadget: udc: atmel: don't disable enpdoints we don't own")
>> Signed-off-by: Michał Mirosław <[email protected]>
> Acked-by: Alexandre Belloni <[email protected]>
Acked-by: Cristian Birsan <[email protected]>
>
>> ---
>> drivers/usb/gadget/udc/atmel_usba_udc.c | 8 +-------
>> 1 file changed, 1 insertion(+), 7 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
>> index d69f61ff0181..9153e220848d 100644
>> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
>> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
>> @@ -676,13 +676,7 @@ static int usba_ep_disable(struct usb_ep *_ep)
>>
>> if (!ep->ep.desc) {
>> spin_unlock_irqrestore(&udc->lock, flags);
>> - /* REVISIT because this driver disables endpoints in
>> - * reset_all_endpoints() before calling disconnect(),
>> - * most gadget drivers would trigger this non-error ...
>> - */
>> - if (udc->gadget.speed != USB_SPEED_UNKNOWN)
>> - DBG(DBG_ERR, "ep_disable: %s not enabled\n",
>> - ep->ep.name);
>> + DBG(DBG_ERR, "ep_disable: %s not enabled\n", ep->ep.name);
>> return -EINVAL;
>> }
>> ep->ep.desc = NULL;
>> --
>> 2.20.1
>>
>
> --
> Alexandre Belloni, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>