All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yinbo Zhu <yinbo.zhu@nxp.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Xiaobo Xie <xiaobo.xie@nxp.com>,
	Jerry Huang <jerry.huang@nxp.com>, Ran Wang <ran.wang_1@nxp.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Ramneek Mehresh <ramneek.mehresh@freescale.com>,
	Nikhil Badola <nikhil.badola@freescale.com>,
	Suresh Gupta <suresh.gupta@freescale.com>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Suresh Gupta <B42813@freescale.com>
Subject: RE: [PATCH v4 2/5] usb: phy: Workaround for USB erratum-A005728
Date: Wed, 8 May 2019 03:26:09 +0000	[thread overview]
Message-ID: <VI1PR04MB4158EB9135C9536D612F0967E9320@VI1PR04MB4158.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1901281034080.1450-100000@iolanthe.rowland.org>



> -----Original Message-----
> From: Alan Stern [mailto:stern@rowland.harvard.edu]
> Sent: 2019年1月28日 23:37
> To: Yinbo Zhu <yinbo.zhu@nxp.com>
> Cc: Xiaobo Xie <xiaobo.xie@nxp.com>; Jerry Huang <jerry.huang@nxp.com>;
> Ran Wang <ran.wang_1@nxp.com>; Greg Kroah-Hartman
> <gregkh@linuxfoundation.org>; Ramneek Mehresh
> <ramneek.mehresh@freescale.com>; Nikhil Badola
> <nikhil.badola@freescale.com>; Suresh Gupta <suresh.gupta@freescale.com>;
> linux-usb@vger.kernel.org; linux-kernel@vger.kernel.org; Suresh Gupta
> <B42813@freescale.com>
> Subject: Re: [PATCH v4 2/5] usb: phy: Workaround for USB erratum-A005728
> 
> On Fri, 25 Jan 2019, Yinbo Zhu wrote:
> 
> > From: Suresh Gupta <B42813@freescale.com>
> >
> > PHY_CLK_VALID bit for UTMI PHY in USBDR does not set even if PHY is
> > providing valid clock. Workaround for this involves resetting of PHY
> > and check PHY_CLK_VALID bit multiple times. If PHY_CLK_VALID bit is
> > still not set even after 5 retries, it would be safe to deaclare that
> > PHY clock is not available.
> > This erratum is applicable for USBDR less then ver 2.4.
> >
> > Signed-off-by: Suresh Gupta <B42813@freescale.com>
> > Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
> > ---
> > Change in v4:
> > 		Incorrect indentation of the continuation line.
> > 		replace pr_err with dev_err.
> >
> >  drivers/usb/host/ehci-fsl.c |   38
> +++++++++++++++++++++++++++-----------
> >  drivers/usb/host/ehci-fsl.h |    3 +++
> >  2 files changed, 30 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
> > index 38674b7..373a816 100644
> > --- a/drivers/usb/host/ehci-fsl.c
> > +++ b/drivers/usb/host/ehci-fsl.c
> > @@ -183,6 +183,17 @@ static int fsl_ehci_drv_probe(struct platform_device
> *pdev)
> >  	return retval;
> >  }
> >
> > +static bool usb_phy_clk_valid(struct usb_hcd *hcd) {
> > +	void __iomem *non_ehci = hcd->regs;
> > +	bool ret = true;
> > +
> > +	if (!(ioread32be(non_ehci + FSL_SOC_USB_CTRL) & PHY_CLK_VALID))
> > +		ret = false;
> > +
> > +	return ret;
> > +}
> > +
> >  static int ehci_fsl_setup_phy(struct usb_hcd *hcd,
> >  			       enum fsl_usb2_phy_modes phy_mode,
> >  			       unsigned int port_offset)
> > @@ -226,6 +237,17 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,
> >  		/* fall through */
> >  	case FSL_USB2_PHY_UTMI:
> >  	case FSL_USB2_PHY_UTMI_DUAL:
> > +		/* PHY_CLK_VALID bit is de-featured from all controller
> > +		 * versions below 2.4 and is to be checked only for
> > +		 * internal UTMI phy
> > +		 */
> > +		if (pdata->controller_ver > FSL_USB_VER_2_4 &&
> > +		    pdata->have_sysif_regs && !usb_phy_clk_valid(hcd)) {
> > +			dev_err(dev,
> > +				"%s: USB PHY clock invalid\n", dev_name(dev));
> 
> This looks silly; it prints the device name twice (once because that's what
> dev_err() does, and then again because you explicitly told it to print the device
> name).
> 
> Look at how dev_err() is used in other parts of the driver and do the same thing.
> 
> > +			return -EINVAL;
> > +		}
> > +
> >  		if (pdata->have_sysif_regs && pdata->controller_ver) {
> >  			/* controller version 1.6 or above */
> >  			tmp = ioread32be(non_ehci + FSL_SOC_USB_CTRL); @@ -249,17
> +271,11
> > @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,
> >  		break;
> >  	}
> >
> > -	/*
> > -	 * check PHY_CLK_VALID to determine phy clock presence before writing
> > -	 * to portsc
> > -	 */
> > -	if (pdata->check_phy_clk_valid) {
> > -		if (!(ioread32be(non_ehci + FSL_SOC_USB_CTRL) &
> > -		    PHY_CLK_VALID)) {
> > -			dev_warn(hcd->self.controller,
> > -				 "USB PHY clock invalid\n");
> > -			return -EINVAL;
> > -		}
> > +	if (pdata->have_sysif_regs &&
> > +	    pdata->controller_ver > FSL_USB_VER_1_6 &&
> > +		!usb_phy_clk_valid(hcd)) {
> > +		dev_warn(hcd->self.controller, "USB PHY clock invalid\n");
> 
> Once again, you have a continuation line that is indented by the same amount as
> the code in the inner block.  Please fix this properly.
Hi Alan stern,

Above code indented is in oder to ensure that every line less than 80 characters,
Otherwise, check-patch tool to check patch that will has error.

Regards,
Yinbo
> > +		return -EINVAL;
> >  	}
> >
> >  	ehci_writel(ehci, portsc, &ehci->regs->port_status[port_offset]);
> > diff --git a/drivers/usb/host/ehci-fsl.h b/drivers/usb/host/ehci-fsl.h
> > index cbc4220..9d18c6e 100644
> > --- a/drivers/usb/host/ehci-fsl.h
> > +++ b/drivers/usb/host/ehci-fsl.h
> > @@ -50,4 +50,7 @@
> >  #define UTMI_PHY_EN             (1<<9)
> >  #define ULPI_PHY_CLK_SEL        (1<<10)
> >  #define PHY_CLK_VALID		(1<<17)
> > +
> > +/* Retry count for checking UTMI PHY CLK validity */ #define
> > +UTMI_PHY_CLK_VALID_CHK_RETRY 5
> >  #endif				/* _EHCI_FSL_H */
> 
> Alan Stern


  reply	other threads:[~2019-05-08  3:26 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-25  6:02 [PATCH v4 1/5] usb: fsl: Set USB_EN bit to select ULPI phy Yinbo Zhu
2019-01-25  6:02 ` [v4,1/5] " yinbo.zhu
2019-01-25  6:02 ` [PATCH v4 2/5] usb: phy: Workaround for USB erratum-A005728 Yinbo Zhu
2019-01-25  6:02   ` [v4,2/5] " yinbo.zhu
2019-01-28 15:36   ` [PATCH v4 2/5] " Alan Stern
2019-01-28 15:36     ` [v4,2/5] " Alan Stern
2019-05-08  3:26     ` Yinbo Zhu [this message]
2019-05-08  6:41       ` [PATCH v4 2/5] " Greg Kroah-Hartman
2019-01-25  6:03 ` [PATCH v4 3/5] usb: linux/fsl_device: Add platform member has_fsl_erratum_a006918 Yinbo Zhu
2019-01-25  6:03   ` [v4,3/5] " yinbo.zhu
2019-01-25  6:03 ` [PATCH v4 4/5] usb: host: Stops USB controller init if PLL fails to lock Yinbo Zhu
2019-01-25  6:03   ` [v4,4/5] " yinbo.zhu
2019-01-28 15:38   ` [PATCH v4 4/5] " Alan Stern
2019-01-28 15:38     ` [v4,4/5] " Alan Stern
2019-01-25  6:03 ` [PATCH v4 5/5] usb :fsl: Change string format for errata property Yinbo Zhu
2019-01-25  6:03   ` [v4,5/5] " yinbo.zhu
2019-01-28 15:33 ` [PATCH v4 1/5] usb: fsl: Set USB_EN bit to select ULPI phy Alan Stern
2019-01-28 15:33   ` [v4,1/5] " Alan Stern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=VI1PR04MB4158EB9135C9536D612F0967E9320@VI1PR04MB4158.eurprd04.prod.outlook.com \
    --to=yinbo.zhu@nxp.com \
    --cc=B42813@freescale.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jerry.huang@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=nikhil.badola@freescale.com \
    --cc=ramneek.mehresh@freescale.com \
    --cc=ran.wang_1@nxp.com \
    --cc=stern@rowland.harvard.edu \
    --cc=suresh.gupta@freescale.com \
    --cc=xiaobo.xie@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.