Re: [PATCH] usb: cdns3: gadget: Don't manage pullups

From: Peter Chen
Date: Thu Oct 24 2019 - 23:14:01 EST


On 19-10-23 09:17:45, Pawel Laszczak wrote:
> Hi,
>
> Reviewed-by: Pawel Laszczak <pawell@xxxxxxxxxxx>

Hi Roger & Pawel,

Assume gadget function has already enabled, if you switch host mode
to device mode, with your changes, where the device mode will be enabled
again?

Peter
>
> Regards,
> Pawel,
>
> >The USB gadget core is supposed to manage pullups
> >of the controller. Don't manage pullups from within
> >the controller driver. Otherwise, function drivers
> >are not able to keep the controller disconnected from
> >the bus till they are ready. (e.g. g_webcam)
> >
> >Signed-off-by: Roger Quadros <rogerq@xxxxxx>
> >---
> >Hi Greg/Felipe,
> >
> >This can be used for -rc as it is a bug fix.
> >
> >cheers,
> >-roger
> >
> > drivers/usb/cdns3/gadget.c | 4 ----
> > 1 file changed, 4 deletions(-)
> >
> >diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c
> >index 2ca280f4c054..714382d96055 100644
> >--- a/drivers/usb/cdns3/gadget.c
> >+++ b/drivers/usb/cdns3/gadget.c
> >@@ -2324,8 +2324,6 @@ static void cdns3_gadget_config(struct cdns3_device *priv_dev)
> > writel(USB_CONF_CLK2OFFDS | USB_CONF_L1DS, &regs->usb_conf);
> >
> > cdns3_configure_dmult(priv_dev, NULL);
> >-
> >- cdns3_gadget_pullup(&priv_dev->gadget, 1);
> > }
> >
> > /**
> >@@ -2708,8 +2706,6 @@ static int cdns3_gadget_suspend(struct cdns3 *cdns, bool do_wakeup)
> > /* disable interrupt for device */
> > writel(0, &priv_dev->regs->usb_ien);
> >
> >- cdns3_gadget_pullup(&priv_dev->gadget, 0);
> >-
> > return 0;
> > }
> >
> >--
> >Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
> >Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
>

--

Thanks,
Peter Chen