Hi,

On Thu, Oct 16, 2014 at 02:57:59PM +0200, Marek Szyprowski wrote:
> Enabling and disabling usb gadget by writing to
> /sys/class/udc/*hsotg/soft_connect results in calling udc_start/udc_stop
> functions with the same usb gadget driver, so the driver should not WARN
> about such case.
> 
> Signed-off-by: Marek Szyprowski <m.szyprow...@samsung.com>
> ---
>  drivers/usb/dwc2/gadget.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index 8870e38c1d82..37fda4c03397 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -2892,7 +2892,7 @@ static int s3c_hsotg_udc_start(struct usb_gadget 
> *gadget,
>               return -EINVAL;
>       }
>  
> -     WARN_ON(hsotg->driver);
> +     WARN_ON(hsotg->driver && hsotg->driver != driver);

the bug is in your ->udc_stop(). You should clear hsotg->driver to NULL
there.

-- 
balbi

Attachment: signature.asc
Description: Digital signature

Reply via email to