diff mbox series

usb: dwc3: core: Deprecate GCTL.CORESOFTRESET

Message ID 54b6e2974bccacbd644f9ba75d8929d09848ecc4.1653586398.git.Thinh.Nguyen@synopsys.com
State New
Headers show
Series usb: dwc3: core: Deprecate GCTL.CORESOFTRESET | expand

Commit Message

Thinh Nguyen May 26, 2022, 7:04 p.m. UTC
Synopsys IP DWC_usb32 and DWC_usb31 version 1.90a and above deprecated
GCTL.CORESOFTRESET. The DRD mode switching flow is updated to remove the
GCTL soft reset. Add version checks to prevent using deprecated setting
in mode switching flow.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
---
 drivers/usb/dwc3/core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


base-commit: 97fa5887cf283bb75ffff5f6b2c0e71794c02400

Comments

gregkh@linuxfoundation.org June 15, 2022, 4:59 a.m. UTC | #1
On Wed, Jun 15, 2022 at 01:21:46AM +0000, Thinh Nguyen wrote:
> Hi Greg,
> 
> Thinh Nguyen wrote:
> > Synopsys IP DWC_usb32 and DWC_usb31 version 1.90a and above deprecated
> > GCTL.CORESOFTRESET. The DRD mode switching flow is updated to remove the
> > GCTL soft reset. Add version checks to prevent using deprecated setting
> > in mode switching flow.
> > 
> > Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
> > ---
> >  drivers/usb/dwc3/core.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> > index e027c0420dc3..6b5f6d0eb1dd 100644
> > --- a/drivers/usb/dwc3/core.c
> > +++ b/drivers/usb/dwc3/core.c
> > @@ -159,7 +159,8 @@ static void __dwc3_set_mode(struct work_struct *work)
> >  	}
> >  
> >  	/* For DRD host or device mode only */
> > -	if (dwc->desired_dr_role != DWC3_GCTL_PRTCAP_OTG) {
> > +	if ((DWC3_IP_IS(DWC3) || DWC3_VER_IS_PRIOR(DWC31, 190A)) &&
> > +	    dwc->desired_dr_role != DWC3_GCTL_PRTCAP_OTG) {
> >  		reg = dwc3_readl(dwc->regs, DWC3_GCTL);
> >  		reg |= DWC3_GCTL_CORESOFTRESET;
> >  		dwc3_writel(dwc->regs, DWC3_GCTL, reg);
> > 
> > base-commit: 97fa5887cf283bb75ffff5f6b2c0e71794c02400
> 
> Just checking to see if we missed this patch. If it needs more review,
> then we can leave it be.

It's not in my queue at all, I have no idea what happened to it...

Please resubmit if it's still needed.

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index e027c0420dc3..6b5f6d0eb1dd 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -159,7 +159,8 @@  static void __dwc3_set_mode(struct work_struct *work)
 	}
 
 	/* For DRD host or device mode only */
-	if (dwc->desired_dr_role != DWC3_GCTL_PRTCAP_OTG) {
+	if ((DWC3_IP_IS(DWC3) || DWC3_VER_IS_PRIOR(DWC31, 190A)) &&
+	    dwc->desired_dr_role != DWC3_GCTL_PRTCAP_OTG) {
 		reg = dwc3_readl(dwc->regs, DWC3_GCTL);
 		reg |= DWC3_GCTL_CORESOFTRESET;
 		dwc3_writel(dwc->regs, DWC3_GCTL, reg);