Re: [PATCH] USB: DWC2: Add VBUS overcurrent detection control.

From: Paul Cercueil
Date: Tue Jun 15 2021 - 06:15:48 EST


Hi Greg,

Le mar., juin 15 2021 at 11:48:30 +0200, Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> a écrit :
On Tue, Jun 15, 2021 at 09:52:20AM +0100, Paul Cercueil wrote:
Hi Zhou,

Le mar., juin 15 2021 at 16:16:39 +0800, 周琰杰 <zhouyanjie@xxxxxxxxxxxxxx>
a écrit :
> Hi Greg,
>
> Sorry for taking so long to reply.
>
> 于 Tue, 23 Mar 2021 16:31:29 +0100
> Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> 写道:
>
> > On Tue, Mar 23, 2021 at 11:24:26PM +0800, 周琰杰 (Zhou Yanjie)
> > wrote:
> > > Introduce configurable option for enabling GOTGCTL register
> > > bits VbvalidOvEn and VbvalidOvVal. Once selected it disables
> > > VBUS overcurrent detection.
> > >
> > > This patch is derived from Dragan Čečavac (in the kernel 3.18
> > > tree of CI20). It is very useful for the MIPS Creator CI20(r1).
> > > Without this patch, CI20's OTG port has a great probability to
> > > face overcurrent warning, which breaks the OTG functionality.
> > >
> > > Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@xxxxxxxxxxxxxx>
> > > Signed-off-by: Dragan Čečavac <dragancecavac@xxxxxxxxx>
> > > ---
> > > drivers/usb/dwc2/Kconfig | 6 ++++++
> > > drivers/usb/dwc2/core.c | 9 +++++++++
> > > 2 files changed, 15 insertions(+)
> > >
> > > diff --git a/drivers/usb/dwc2/Kconfig b/drivers/usb/dwc2/Kconfig
> > > index c131719..e40d187 100644
> > > --- a/drivers/usb/dwc2/Kconfig
> > > +++ b/drivers/usb/dwc2/Kconfig
> > > @@ -94,4 +94,10 @@ config USB_DWC2_DEBUG_PERIODIC
> > > non-periodic transfers, but of course the debug logs
> > > will be incomplete. Note that this also disables some debug
> > messages
> > > for which the transfer type cannot be deduced.
> > > +
> > > +config USB_DWC2_DISABLE_VOD
> > > + bool "Disable VBUS overcurrent detection"
> > > + help
> > > + Say Y here to switch off VBUS overcurrent detection. It
> > > enables USB
> > > + functionality blocked by overcurrent detection.
> >
> > Why would this be a configuration option? Shouldn't this be dynamic
> > and just work properly automatically?
> >
> > You should not have to do this on a build-time basis, it should be
> > able to be detected and handled properly at run-time for all
> > devices.
> >
>
> I consulted the original author Dragan Čečavac, he think since this is
> a feature which disables overcurrent detection, so we are not sure if
> it could be harmful for some devices. Therefore he advise against
> enabling it in runtime, and in favor that user explicitely has to
> enable it.

This could still be enabled at runtime, though, via a module parameter.
Leave it enabled by default, and those who want to disable it can do it.

This is not the 1990's, please NEVER add new module parameters,

First time I hear this.

especially ones that are somehow supposed to be device-specific.

Remember, module options are code-wide, not device-specific.

Right. I thought "just make the option available on devices that support it" but that's not how it works.

-Paul

Just do this based on the device type, or something else dynamic, do NOT
make this be forced to be selected by a kernel configuration option or a
random module option at runtime.

thanks,

greg k-h