All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 1/5] usb: fsl: Set USB_EN bit to select ULPI phy
@ 2019-06-05  5:49 Yinbo Zhu
  2019-06-05  5:49 ` [PATCH v6 2/5] usb: phy: Workaround for USB erratum-A005728 Yinbo Zhu
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Yinbo Zhu @ 2019-06-05  5:49 UTC (permalink / raw)
  To: Alan Stern
  Cc: yinbo.zhu, xiaobo.xie, Greg Kroah-Hartman, Ramneek Mehresh,
	Nikhil Badola, Ran Wang, linux-usb, linux-kernel, jiafei.pan

From: Nikhil Badola <nikhil.badola@freescale.com>

Set USB_EN bit to select ULPI phy for USB controller version 2.5

Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com>
Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
---
 drivers/usb/host/ehci-fsl.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index e3d0c1c25160..38674b7aa51e 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -122,6 +122,12 @@ static int fsl_ehci_drv_probe(struct platform_device *pdev)
 		tmp |= 0x4;
 		iowrite32be(tmp, hcd->regs + FSL_SOC_USB_CTRL);
 	}
+
+	/* Set USB_EN bit to select ULPI phy for USB controller version 2.5 */
+	if (pdata->controller_ver == FSL_USB_VER_2_5 &&
+	    pdata->phy_mode == FSL_USB2_PHY_ULPI)
+		iowrite32be(USB_CTRL_USB_EN, hcd->regs + FSL_SOC_USB_CTRL);
+
 	/*
 	 * Enable UTMI phy and program PTS field in UTMI mode before asserting
 	 * controller reset for USB Controller version 2.5
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v6 2/5] usb: phy: Workaround for USB erratum-A005728
  2019-06-05  5:49 [PATCH v6 1/5] usb: fsl: Set USB_EN bit to select ULPI phy Yinbo Zhu
@ 2019-06-05  5:49 ` Yinbo Zhu
  2019-06-05  5:49 ` [PATCH v6 3/5] usb: linux/fsl_device: Add platform member has_fsl_erratum_a006918 Yinbo Zhu
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Yinbo Zhu @ 2019-06-05  5:49 UTC (permalink / raw)
  To: Alan Stern
  Cc: yinbo.zhu, xiaobo.xie, Greg Kroah-Hartman, Ramneek Mehresh,
	Nikhil Badola, Ran Wang, linux-usb, linux-kernel, jiafei.pan,
	Suresh Gupta

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 v6:
		Indented the code in ehci-fsl.c 	

 drivers/usb/host/ehci-fsl.c | 37 ++++++++++++++++++++++++++-----------
 drivers/usb/host/ehci-fsl.h |  3 +++
 2 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index 38674b7aa51e..8f3bf3efb038 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,16 @@ 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, "USB PHY clock invalid\n");
+			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 +270,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");
+		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 cbc422032e50..9d18c6e6ab27 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 */
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v6 3/5] usb: linux/fsl_device: Add platform member has_fsl_erratum_a006918
  2019-06-05  5:49 [PATCH v6 1/5] usb: fsl: Set USB_EN bit to select ULPI phy Yinbo Zhu
  2019-06-05  5:49 ` [PATCH v6 2/5] usb: phy: Workaround for USB erratum-A005728 Yinbo Zhu
@ 2019-06-05  5:49 ` Yinbo Zhu
  2019-06-05  5:49 ` [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to lock Yinbo Zhu
  2019-06-05  5:49 ` [PATCH v6 5/5] usb :fsl: Change string format for errata property Yinbo Zhu
  3 siblings, 0 replies; 8+ messages in thread
From: Yinbo Zhu @ 2019-06-05  5:49 UTC (permalink / raw)
  To: Alan Stern
  Cc: yinbo.zhu, xiaobo.xie, Greg Kroah-Hartman, Ramneek Mehresh,
	Nikhil Badola, Ran Wang, linux-usb, linux-kernel, jiafei.pan

This patch is to add member has_fsl_erratum_a006918 in platform data

Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
---
 include/linux/fsl_devices.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h
index cb2b46f57af3..5d231ce8709b 100644
--- a/include/linux/fsl_devices.h
+++ b/include/linux/fsl_devices.h
@@ -98,6 +98,7 @@ struct fsl_usb2_platform_data {
 	unsigned	has_fsl_erratum_14:1;
 	unsigned	has_fsl_erratum_a005275:1;
 	unsigned	has_fsl_erratum_a005697:1;
+	unsigned        has_fsl_erratum_a006918:1;
 	unsigned	check_phy_clk_valid:1;
 
 	/* register save area for suspend/resume */
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to lock
  2019-06-05  5:49 [PATCH v6 1/5] usb: fsl: Set USB_EN bit to select ULPI phy Yinbo Zhu
  2019-06-05  5:49 ` [PATCH v6 2/5] usb: phy: Workaround for USB erratum-A005728 Yinbo Zhu
  2019-06-05  5:49 ` [PATCH v6 3/5] usb: linux/fsl_device: Add platform member has_fsl_erratum_a006918 Yinbo Zhu
@ 2019-06-05  5:49 ` Yinbo Zhu
  2019-06-05 14:22   ` Alan Stern
  2019-06-05  5:49 ` [PATCH v6 5/5] usb :fsl: Change string format for errata property Yinbo Zhu
  3 siblings, 1 reply; 8+ messages in thread
From: Yinbo Zhu @ 2019-06-05  5:49 UTC (permalink / raw)
  To: Alan Stern
  Cc: yinbo.zhu, xiaobo.xie, Greg Kroah-Hartman, Ramneek Mehresh,
	Nikhil Badola, Ran Wang, linux-usb, linux-kernel, jiafei.pan

From: Ramneek Mehresh <ramneek.mehresh@freescale.com>

USB erratum-A006918 workaround tries to start internal PHY inside
uboot (when PLL fails to lock). However, if the workaround also
fails, then USB initialization is also stopped inside Linux.
Erratum-A006918 workaround failure creates "fsl,erratum_a006918"
node in device-tree. Presence of this node in device-tree is
used to stop USB controller initialization in Linux

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com>
Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
---
Change in v6:
		add a "Fall through" comment 	

 drivers/usb/host/ehci-fsl.c      | 10 +++++++++-
 drivers/usb/host/fsl-mph-dr-of.c |  3 ++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index 8f3bf3efb038..86ae37086a74 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -234,8 +234,16 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,
 		break;
 	case FSL_USB2_PHY_UTMI_WIDE:
 		portsc |= PORT_PTS_PTW;
-		/* fall through */
 	case FSL_USB2_PHY_UTMI:
+		/* Presence of this node "has_fsl_erratum_a006918"
+		 * in device-tree is used to stop USB controller
+		 * initialization in Linux
+		 */
+		if (pdata->has_fsl_erratum_a006918) {
+			dev_warn(dev, "USB PHY clock invalid\n");
+			return -EINVAL;
+		}
+
 	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
diff --git a/drivers/usb/host/fsl-mph-dr-of.c b/drivers/usb/host/fsl-mph-dr-of.c
index 4f8b8a08c914..762b97600ab0 100644
--- a/drivers/usb/host/fsl-mph-dr-of.c
+++ b/drivers/usb/host/fsl-mph-dr-of.c
@@ -224,13 +224,14 @@ static int fsl_usb2_mph_dr_of_probe(struct platform_device *ofdev)
 		of_property_read_bool(np, "fsl,usb-erratum-a005275");
 	pdata->has_fsl_erratum_a005697 =
 		of_property_read_bool(np, "fsl,usb_erratum-a005697");
+	pdata->has_fsl_erratum_a006918 =
+		of_property_read_bool(np, "fsl,usb_erratum-a006918");
 
 	if (of_get_property(np, "fsl,usb_erratum_14", NULL))
 		pdata->has_fsl_erratum_14 = 1;
 	else
 		pdata->has_fsl_erratum_14 = 0;
 
-
 	/*
 	 * Determine whether phy_clk_valid needs to be checked
 	 * by reading property in device tree
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v6 5/5] usb :fsl: Change string format for errata property
  2019-06-05  5:49 [PATCH v6 1/5] usb: fsl: Set USB_EN bit to select ULPI phy Yinbo Zhu
                   ` (2 preceding siblings ...)
  2019-06-05  5:49 ` [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to lock Yinbo Zhu
@ 2019-06-05  5:49 ` Yinbo Zhu
  3 siblings, 0 replies; 8+ messages in thread
From: Yinbo Zhu @ 2019-06-05  5:49 UTC (permalink / raw)
  To: Alan Stern
  Cc: yinbo.zhu, xiaobo.xie, Greg Kroah-Hartman, Ramneek Mehresh,
	Nikhil Badola, Ran Wang, linux-usb, linux-kernel, jiafei.pan

From: Nikhil Badola <nikhil.badola@freescale.com>

Remove USB errata checking code from driver. Applicability of erratum
is retrieved by reading corresponding property in device tree.
This property is written during device tree fixup.

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com>
Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
---
 drivers/usb/host/fsl-mph-dr-of.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/host/fsl-mph-dr-of.c b/drivers/usb/host/fsl-mph-dr-of.c
index 762b97600ab0..ae8f60f6e6a5 100644
--- a/drivers/usb/host/fsl-mph-dr-of.c
+++ b/drivers/usb/host/fsl-mph-dr-of.c
@@ -226,11 +226,8 @@ static int fsl_usb2_mph_dr_of_probe(struct platform_device *ofdev)
 		of_property_read_bool(np, "fsl,usb_erratum-a005697");
 	pdata->has_fsl_erratum_a006918 =
 		of_property_read_bool(np, "fsl,usb_erratum-a006918");
-
-	if (of_get_property(np, "fsl,usb_erratum_14", NULL))
-		pdata->has_fsl_erratum_14 = 1;
-	else
-		pdata->has_fsl_erratum_14 = 0;
+	pdata->has_fsl_erratum_14 =
+		of_property_read_bool(np, "fsl,usb_erratum-14");
 
 	/*
 	 * Determine whether phy_clk_valid needs to be checked
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to lock
  2019-06-05  5:49 ` [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to lock Yinbo Zhu
@ 2019-06-05 14:22   ` Alan Stern
  2019-06-06  6:35     ` [EXT] " Yinbo Zhu
  0 siblings, 1 reply; 8+ messages in thread
From: Alan Stern @ 2019-06-05 14:22 UTC (permalink / raw)
  To: Yinbo Zhu
  Cc: xiaobo.xie, Greg Kroah-Hartman, Ramneek Mehresh, Nikhil Badola,
	Ran Wang, linux-usb, linux-kernel, jiafei.pan

On Wed, 5 Jun 2019, Yinbo Zhu wrote:

> From: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> 
> USB erratum-A006918 workaround tries to start internal PHY inside
> uboot (when PLL fails to lock). However, if the workaround also
> fails, then USB initialization is also stopped inside Linux.
> Erratum-A006918 workaround failure creates "fsl,erratum_a006918"
> node in device-tree. Presence of this node in device-tree is
> used to stop USB controller initialization in Linux
> 
> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com>
> Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
> ---
> Change in v6:
> 		add a "Fall through" comment 	
> 
>  drivers/usb/host/ehci-fsl.c      | 10 +++++++++-
>  drivers/usb/host/fsl-mph-dr-of.c |  3 ++-
>  2 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
> index 8f3bf3efb038..86ae37086a74 100644
> --- a/drivers/usb/host/ehci-fsl.c
> +++ b/drivers/usb/host/ehci-fsl.c
> @@ -234,8 +234,16 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,
>  		break;
>  	case FSL_USB2_PHY_UTMI_WIDE:
>  		portsc |= PORT_PTS_PTW;
> -		/* fall through */
>  	case FSL_USB2_PHY_UTMI:
> +		/* Presence of this node "has_fsl_erratum_a006918"
> +		 * in device-tree is used to stop USB controller
> +		 * initialization in Linux
> +		 */
> +		if (pdata->has_fsl_erratum_a006918) {
> +			dev_warn(dev, "USB PHY clock invalid\n");
> +			return -EINVAL;
> +		}
> +
>  	case FSL_USB2_PHY_UTMI_DUAL:

This is bad.  You got rid of a "fall through" comment that was needed, 
and you failed to add another one where it was needed.

Alan Stern

>  		/* PHY_CLK_VALID bit is de-featured from all controller
>  		 * versions below 2.4 and is to be checked only for
> diff --git a/drivers/usb/host/fsl-mph-dr-of.c b/drivers/usb/host/fsl-mph-dr-of.c
> index 4f8b8a08c914..762b97600ab0 100644
> --- a/drivers/usb/host/fsl-mph-dr-of.c
> +++ b/drivers/usb/host/fsl-mph-dr-of.c
> @@ -224,13 +224,14 @@ static int fsl_usb2_mph_dr_of_probe(struct platform_device *ofdev)
>  		of_property_read_bool(np, "fsl,usb-erratum-a005275");
>  	pdata->has_fsl_erratum_a005697 =
>  		of_property_read_bool(np, "fsl,usb_erratum-a005697");
> +	pdata->has_fsl_erratum_a006918 =
> +		of_property_read_bool(np, "fsl,usb_erratum-a006918");
>  
>  	if (of_get_property(np, "fsl,usb_erratum_14", NULL))
>  		pdata->has_fsl_erratum_14 = 1;
>  	else
>  		pdata->has_fsl_erratum_14 = 0;
>  
> -
>  	/*
>  	 * Determine whether phy_clk_valid needs to be checked
>  	 * by reading property in device tree
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [EXT] Re: [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to lock
  2019-06-05 14:22   ` Alan Stern
@ 2019-06-06  6:35     ` Yinbo Zhu
  2019-06-11  6:48       ` Yinbo Zhu
  0 siblings, 1 reply; 8+ messages in thread
From: Yinbo Zhu @ 2019-06-06  6:35 UTC (permalink / raw)
  To: Alan Stern
  Cc: Xiaobo Xie, Greg Kroah-Hartman, Ramneek Mehresh, Nikhil Badola,
	Ran Wang, linux-usb, linux-kernel, Jiafei Pan



> -----Original Message-----
> From: Alan Stern [mailto:stern@rowland.harvard.edu]
> Sent: 2019年6月5日 22:22
> To: Yinbo Zhu <yinbo.zhu@nxp.com>
> Cc: Xiaobo Xie <xiaobo.xie@nxp.com>; Greg Kroah-Hartman
> <gregkh@linuxfoundation.org>; Ramneek Mehresh
> <ramneek.mehresh@freescale.com>; Nikhil Badola
> <nikhil.badola@freescale.com>; Ran Wang <ran.wang_1@nxp.com>;
> linux-usb@vger.kernel.org; linux-kernel@vger.kernel.org; Jiafei Pan
> <jiafei.pan@nxp.com>
> Subject: [EXT] Re: [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to
> lock
> 
> Caution: EXT Email
> 
> On Wed, 5 Jun 2019, Yinbo Zhu wrote:
> 
> > From: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> >
> > USB erratum-A006918 workaround tries to start internal PHY inside
> > uboot (when PLL fails to lock). However, if the workaround also fails,
> > then USB initialization is also stopped inside Linux.
> > Erratum-A006918 workaround failure creates "fsl,erratum_a006918"
> > node in device-tree. Presence of this node in device-tree is used to
> > stop USB controller initialization in Linux
> >
> > Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> > Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com>
> > Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
> > ---
> > Change in v6:
> >               add a "Fall through" comment
> >
> >  drivers/usb/host/ehci-fsl.c      | 10 +++++++++-
> >  drivers/usb/host/fsl-mph-dr-of.c |  3 ++-
> >  2 files changed, 11 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
> > index 8f3bf3efb038..86ae37086a74 100644
> > --- a/drivers/usb/host/ehci-fsl.c
> > +++ b/drivers/usb/host/ehci-fsl.c
> > @@ -234,8 +234,16 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,
> >               break;
> >       case FSL_USB2_PHY_UTMI_WIDE:
> >               portsc |= PORT_PTS_PTW;
> > -             /* fall through */
> >       case FSL_USB2_PHY_UTMI:
> > +             /* Presence of this node "has_fsl_erratum_a006918"
> > +              * in device-tree is used to stop USB controller
> > +              * initialization in Linux
> > +              */
> > +             if (pdata->has_fsl_erratum_a006918) {
> > +                     dev_warn(dev, "USB PHY clock invalid\n");
> > +                     return -EINVAL;
> > +             }
> > +
> >       case FSL_USB2_PHY_UTMI_DUAL:
> 
> 
> You need to add a "Fall through" comment between these two cases.
> >       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
> 
> Alan Stern
> Hi Alan Stern,
>
> Your meaning is to remove "/* fall through*/" or add the erratum commont replace "/* fall through*/"
>
> Regards,
> Yinbo
> This is bad.  You got rid of a "fall through" comment that was needed, and you
> failed to add another one where it was needed.
> 
> Alan Stern
I don't get your meaning.
Yinbo
> 
> >               /* PHY_CLK_VALID bit is de-featured from all controller
> >                * versions below 2.4 and is to be checked only for diff
> > --git a/drivers/usb/host/fsl-mph-dr-of.c
> > b/drivers/usb/host/fsl-mph-dr-of.c
> > index 4f8b8a08c914..762b97600ab0 100644
> > --- a/drivers/usb/host/fsl-mph-dr-of.c
> > +++ b/drivers/usb/host/fsl-mph-dr-of.c
> > @@ -224,13 +224,14 @@ static int fsl_usb2_mph_dr_of_probe(struct
> platform_device *ofdev)
> >               of_property_read_bool(np, "fsl,usb-erratum-a005275");
> >       pdata->has_fsl_erratum_a005697 =
> >               of_property_read_bool(np, "fsl,usb_erratum-a005697");
> > +     pdata->has_fsl_erratum_a006918 =
> > +             of_property_read_bool(np, "fsl,usb_erratum-a006918");
> >
> >       if (of_get_property(np, "fsl,usb_erratum_14", NULL))
> >               pdata->has_fsl_erratum_14 = 1;
> >       else
> >               pdata->has_fsl_erratum_14 = 0;
> >
> > -
> >       /*
> >        * Determine whether phy_clk_valid needs to be checked
> >        * by reading property in device tree
> >


^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [EXT] Re: [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to lock
  2019-06-06  6:35     ` [EXT] " Yinbo Zhu
@ 2019-06-11  6:48       ` Yinbo Zhu
  0 siblings, 0 replies; 8+ messages in thread
From: Yinbo Zhu @ 2019-06-11  6:48 UTC (permalink / raw)
  To: Alan Stern
  Cc: Xiaobo Xie, Greg Kroah-Hartman, Ramneek Mehresh, Nikhil Badola,
	Ran Wang, linux-usb, linux-kernel, Jiafei Pan



> -----Original Message-----
> From: Yinbo Zhu
> Sent: 2019年6月6日 14:35
> To: Alan Stern <stern@rowland.harvard.edu>
> Cc: Xiaobo Xie <xiaobo.xie@nxp.com>; Greg Kroah-Hartman
> <gregkh@linuxfoundation.org>; Ramneek Mehresh
> <ramneek.mehresh@freescale.com>; Nikhil Badola
> <nikhil.badola@freescale.com>; Ran Wang <ran.wang_1@nxp.com>;
> linux-usb@vger.kernel.org; linux-kernel@vger.kernel.org; Jiafei Pan
> <jiafei.pan@nxp.com>
> Subject: RE: [EXT] Re: [PATCH v6 4/5] usb: host: Stops USB controller init if PLL
> fails to lock
> 
> 
> 
> > -----Original Message-----
> > From: Alan Stern [mailto:stern@rowland.harvard.edu]
> > Sent: 2019年6月5日 22:22
> > To: Yinbo Zhu <yinbo.zhu@nxp.com>
> > Cc: Xiaobo Xie <xiaobo.xie@nxp.com>; Greg Kroah-Hartman
> > <gregkh@linuxfoundation.org>; Ramneek Mehresh
> > <ramneek.mehresh@freescale.com>; Nikhil Badola
> > <nikhil.badola@freescale.com>; Ran Wang <ran.wang_1@nxp.com>;
> > linux-usb@vger.kernel.org; linux-kernel@vger.kernel.org; Jiafei Pan
> > <jiafei.pan@nxp.com>
> > Subject: [EXT] Re: [PATCH v6 4/5] usb: host: Stops USB controller init
> > if PLL fails to lock
> >
> > Caution: EXT Email
> >
> > On Wed, 5 Jun 2019, Yinbo Zhu wrote:
> >
> > > From: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> > >
> > > USB erratum-A006918 workaround tries to start internal PHY inside
> > > uboot (when PLL fails to lock). However, if the workaround also
> > > fails, then USB initialization is also stopped inside Linux.
> > > Erratum-A006918 workaround failure creates "fsl,erratum_a006918"
> > > node in device-tree. Presence of this node in device-tree is used to
> > > stop USB controller initialization in Linux
> > >
> > > Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> > > Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com>
> > > Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
> > > ---
> > > Change in v6:
> > >               add a "Fall through" comment
> > >
> > >  drivers/usb/host/ehci-fsl.c      | 10 +++++++++-
> > >  drivers/usb/host/fsl-mph-dr-of.c |  3 ++-
> > >  2 files changed, 11 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/usb/host/ehci-fsl.c
> > > b/drivers/usb/host/ehci-fsl.c index 8f3bf3efb038..86ae37086a74
> > > 100644
> > > --- a/drivers/usb/host/ehci-fsl.c
> > > +++ b/drivers/usb/host/ehci-fsl.c
> > > @@ -234,8 +234,16 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,
> > >               break;
> > >       case FSL_USB2_PHY_UTMI_WIDE:
> > >               portsc |= PORT_PTS_PTW;
> > > -             /* fall through */
> > >       case FSL_USB2_PHY_UTMI:
> > > +             /* Presence of this node "has_fsl_erratum_a006918"
> > > +              * in device-tree is used to stop USB controller
> > > +              * initialization in Linux
> > > +              */
> > > +             if (pdata->has_fsl_erratum_a006918) {
> > > +                     dev_warn(dev, "USB PHY clock invalid\n");
> > > +                     return -EINVAL;
> > > +             }
> > > +
> > >       case FSL_USB2_PHY_UTMI_DUAL:
> >
> >
> > You need to add a "Fall through" comment between these two cases.
> > >       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
> >
> > Alan Stern
> > Hi Alan Stern,
> >
> > Your meaning is to remove "/* fall through*/" or add the erratum commont
> replace "/* fall through*/"
> >
> > Regards,
> > Yinbo
> > This is bad.  You got rid of a "fall through" comment that was needed,
> > and you failed to add another one where it was needed.
> >
> > Alan Stern
> I don't get your meaning.
> Yinbo
Hi Alan,

Your meaning is like following code change, isn't it? if no, could you give a example
                portsc |= PORT_PTS_PTW;
                /* fall through */
        case FSL_USB2_PHY_UTMI:
+               /* Presence of this node "has_fsl_erratum_a006918"
+                * in device-tree is used to stop USB controller
+                * initialization in Linux
+                */
+               if (pdata->has_fsl_erratum_a006918) {
+                       dev_warn(dev, "USB PHY clock invalid\n");
+                       return -EINVAL;
+               }
+
        case FSL_USB2_PHY_UTMI_DUAL:
                /* PHY_CLK_VALID bit is de-featured from all controller
Regards,
Yinbo.

> >
> > >               /* PHY_CLK_VALID bit is de-featured from all controller
> > >                * versions below 2.4 and is to be checked only for
> > > diff --git a/drivers/usb/host/fsl-mph-dr-of.c
> > > b/drivers/usb/host/fsl-mph-dr-of.c
> > > index 4f8b8a08c914..762b97600ab0 100644
> > > --- a/drivers/usb/host/fsl-mph-dr-of.c
> > > +++ b/drivers/usb/host/fsl-mph-dr-of.c
> > > @@ -224,13 +224,14 @@ static int fsl_usb2_mph_dr_of_probe(struct
> > platform_device *ofdev)
> > >               of_property_read_bool(np, "fsl,usb-erratum-a005275");
> > >       pdata->has_fsl_erratum_a005697 =
> > >               of_property_read_bool(np, "fsl,usb_erratum-a005697");
> > > +     pdata->has_fsl_erratum_a006918 =
> > > +             of_property_read_bool(np, "fsl,usb_erratum-a006918");
> > >
> > >       if (of_get_property(np, "fsl,usb_erratum_14", NULL))
> > >               pdata->has_fsl_erratum_14 = 1;
> > >       else
> > >               pdata->has_fsl_erratum_14 = 0;
> > >
> > > -
> > >       /*
> > >        * Determine whether phy_clk_valid needs to be checked
> > >        * by reading property in device tree
> > >


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-06-11  6:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-05  5:49 [PATCH v6 1/5] usb: fsl: Set USB_EN bit to select ULPI phy Yinbo Zhu
2019-06-05  5:49 ` [PATCH v6 2/5] usb: phy: Workaround for USB erratum-A005728 Yinbo Zhu
2019-06-05  5:49 ` [PATCH v6 3/5] usb: linux/fsl_device: Add platform member has_fsl_erratum_a006918 Yinbo Zhu
2019-06-05  5:49 ` [PATCH v6 4/5] usb: host: Stops USB controller init if PLL fails to lock Yinbo Zhu
2019-06-05 14:22   ` Alan Stern
2019-06-06  6:35     ` [EXT] " Yinbo Zhu
2019-06-11  6:48       ` Yinbo Zhu
2019-06-05  5:49 ` [PATCH v6 5/5] usb :fsl: Change string format for errata property Yinbo Zhu

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.