diff mbox

[v3,10/10] usb: chipidea: imx: Enable CI_HDRC_IMX_EHCI_QUIRK

Message ID 1383616525-10769-11-git-send-email-peter.chen@freescale.com (mailing list archive)
State New, archived
Headers show

Commit Message

Peter Chen Nov. 5, 2013, 1:55 a.m. UTC
Enable CI_HDRC_IMX_EHCI_QUIRK for controllers who use mxs-phy.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
---
 drivers/usb/chipidea/ci_hdrc_imx.c |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

Comments

Marc Kleine-Budde Dec. 3, 2013, 9:50 p.m. UTC | #1
On 11/05/2013 02:55 AM, Peter Chen wrote:
> Enable CI_HDRC_IMX_EHCI_QUIRK for controllers who use mxs-phy.
> 
> Signed-off-by: Peter Chen <peter.chen@freescale.com>
> ---
>  drivers/usb/chipidea/ci_hdrc_imx.c |   17 ++++++++++++++---
>  1 files changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
> index fd26c38..78ccde1 100644
> --- a/drivers/usb/chipidea/ci_hdrc_imx.c
> +++ b/drivers/usb/chipidea/ci_hdrc_imx.c
> @@ -25,6 +25,7 @@
>  
>  #define CI_HDRC_IMX_IMX28_WRITE_FIX		BIT(0)
>  #define CI_HDRC_IMX_SUPPORT_RUNTIME_PM		BIT(1)
> +#define CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK		BIT(2)
>  
>  struct ci_hdrc_imx_platform_flag {
>  	unsigned int flags;
> @@ -33,17 +34,24 @@ struct ci_hdrc_imx_platform_flag {
>  static const struct ci_hdrc_imx_platform_flag imx27_usb_data = {
>  };
>  
> +static const struct ci_hdrc_imx_platform_flag imx23_usb_data = {
> +	.flags = CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
> +};
> +
>  static const struct ci_hdrc_imx_platform_flag imx28_usb_data = {
> -	.flags = CI_HDRC_IMX_IMX28_WRITE_FIX,
> +	.flags = CI_HDRC_IMX_IMX28_WRITE_FIX |
> +		CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
>  };
>  
>  static const struct ci_hdrc_imx_platform_flag imx6q_usb_data = {
> -	.flags = CI_HDRC_IMX_SUPPORT_RUNTIME_PM,
> +	.flags = CI_HDRC_IMX_SUPPORT_RUNTIME_PM |
> +		CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
>  };
>  
>  static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
>  	{ .compatible = "fsl,imx6q-usb", .data = &imx6q_usb_data},
>  	{ .compatible = "fsl,imx28-usb", .data = &imx28_usb_data},
> +	{ .compatible = "fsl,imx23-usb", .data = &imx23_usb_data},
>  	{ .compatible = "fsl,imx27-usb", .data = &imx27_usb_data},
>  	{ /* sentinel */ }
>  };
> @@ -153,11 +161,14 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
>  	if (imx_platform_flag->flags & CI_HDRC_IMX_IMX28_WRITE_FIX)
>  		pdata.flags |= CI_HDRC_IMX28_WRITE_FIX;
>  
> -	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM)
> +	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM) {
                                                                    ^^^^

Please squash into the correct patch.

>  		pdata.flags |= CI_HDRC_SUPPORTS_RUNTIME_PM;
>  		data->supports_runtime_pm = true;
>  	}

Marc
Peter Chen Dec. 4, 2013, 1:40 a.m. UTC | #2
> 
> On 11/05/2013 02:55 AM, Peter Chen wrote:
> > Enable CI_HDRC_IMX_EHCI_QUIRK for controllers who use mxs-phy.
> >
> > Signed-off-by: Peter Chen <peter.chen@freescale.com>
> > ---
> >  drivers/usb/chipidea/ci_hdrc_imx.c |   17 ++++++++++++++---
> >  1 files changed, 14 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c
> b/drivers/usb/chipidea/ci_hdrc_imx.c
> > index fd26c38..78ccde1 100644
> > --- a/drivers/usb/chipidea/ci_hdrc_imx.c
> > +++ b/drivers/usb/chipidea/ci_hdrc_imx.c
> > @@ -25,6 +25,7 @@
> >
> >  #define CI_HDRC_IMX_IMX28_WRITE_FIX		BIT(0)
> >  #define CI_HDRC_IMX_SUPPORT_RUNTIME_PM		BIT(1)
> > +#define CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK		BIT(2)
> >
> >  struct ci_hdrc_imx_platform_flag {
> >  	unsigned int flags;
> > @@ -33,17 +34,24 @@ struct ci_hdrc_imx_platform_flag {
> >  static const struct ci_hdrc_imx_platform_flag imx27_usb_data = {
> >  };
> >
> > +static const struct ci_hdrc_imx_platform_flag imx23_usb_data = {
> > +	.flags = CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
> > +};
> > +
> >  static const struct ci_hdrc_imx_platform_flag imx28_usb_data = {
> > -	.flags = CI_HDRC_IMX_IMX28_WRITE_FIX,
> > +	.flags = CI_HDRC_IMX_IMX28_WRITE_FIX |
> > +		CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
> >  };
> >
> >  static const struct ci_hdrc_imx_platform_flag imx6q_usb_data = {
> > -	.flags = CI_HDRC_IMX_SUPPORT_RUNTIME_PM,
> > +	.flags = CI_HDRC_IMX_SUPPORT_RUNTIME_PM |
> > +		CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
> >  };
> >
> >  static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
> >  	{ .compatible = "fsl,imx6q-usb", .data = &imx6q_usb_data},
> >  	{ .compatible = "fsl,imx28-usb", .data = &imx28_usb_data},
> > +	{ .compatible = "fsl,imx23-usb", .data = &imx23_usb_data},
> >  	{ .compatible = "fsl,imx27-usb", .data = &imx27_usb_data},
> >  	{ /* sentinel */ }
> >  };
> > @@ -153,11 +161,14 @@ static int ci_hdrc_imx_probe(struct
> platform_device *pdev)
> >  	if (imx_platform_flag->flags & CI_HDRC_IMX_IMX28_WRITE_FIX)
> >  		pdata.flags |= CI_HDRC_IMX28_WRITE_FIX;
> >
> > -	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM)
> > +	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM) {
>                                                                     ^^^^
> 
> Please squash into the correct patch.
> 
 
There are some re-work for this serial, I will do it.
But I don't get your mean why it needs to squash into another patch?

Peter
Marc Kleine-Budde Dec. 4, 2013, 8:33 a.m. UTC | #3
On 12/04/2013 02:40 AM, Peter Chen wrote:
> There are some re-work for this serial, I will do it.
> But I don't get your mean why it needs to squash into another patch?

Let's look at the code again:

> -	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM)
> +	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM) {
>  		pdata.flags |= CI_HDRC_SUPPORTS_RUNTIME_PM;
>  		data->supports_runtime_pm = true;
>  	}

Without that patch, the driver will not compile.

before:

if ()
	/* code */
}

after:

if () {
	/* code */
}

Marc
Peter Chen Dec. 4, 2013, 1:05 p.m. UTC | #4
On Wed, Dec 04, 2013 at 09:33:26AM +0100, Marc Kleine-Budde wrote:
> On 12/04/2013 02:40 AM, Peter Chen wrote:
> > There are some re-work for this serial, I will do it.
> > But I don't get your mean why it needs to squash into another patch?
> 
> Let's look at the code again:
> 
> > -	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM)
> > +	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM) {
> >  		pdata.flags |= CI_HDRC_SUPPORTS_RUNTIME_PM;
> >  		data->supports_runtime_pm = true;
> >  	}
> 
> Without that patch, the driver will not compile.
> 
> before:
> 
> if ()
> 	/* code */
> }
> 
> after:
> 
> if () {
> 	/* code */
> }
> 
> Marc
> 
> -- 

Oh, thanks. I need to sqhash [7/10] and [10/10]
diff mbox

Patch

diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index fd26c38..78ccde1 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -25,6 +25,7 @@ 
 
 #define CI_HDRC_IMX_IMX28_WRITE_FIX		BIT(0)
 #define CI_HDRC_IMX_SUPPORT_RUNTIME_PM		BIT(1)
+#define CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK		BIT(2)
 
 struct ci_hdrc_imx_platform_flag {
 	unsigned int flags;
@@ -33,17 +34,24 @@  struct ci_hdrc_imx_platform_flag {
 static const struct ci_hdrc_imx_platform_flag imx27_usb_data = {
 };
 
+static const struct ci_hdrc_imx_platform_flag imx23_usb_data = {
+	.flags = CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
+};
+
 static const struct ci_hdrc_imx_platform_flag imx28_usb_data = {
-	.flags = CI_HDRC_IMX_IMX28_WRITE_FIX,
+	.flags = CI_HDRC_IMX_IMX28_WRITE_FIX |
+		CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
 };
 
 static const struct ci_hdrc_imx_platform_flag imx6q_usb_data = {
-	.flags = CI_HDRC_IMX_SUPPORT_RUNTIME_PM,
+	.flags = CI_HDRC_IMX_SUPPORT_RUNTIME_PM |
+		CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK,
 };
 
 static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx6q-usb", .data = &imx6q_usb_data},
 	{ .compatible = "fsl,imx28-usb", .data = &imx28_usb_data},
+	{ .compatible = "fsl,imx23-usb", .data = &imx23_usb_data},
 	{ .compatible = "fsl,imx27-usb", .data = &imx27_usb_data},
 	{ /* sentinel */ }
 };
@@ -153,11 +161,14 @@  static int ci_hdrc_imx_probe(struct platform_device *pdev)
 	if (imx_platform_flag->flags & CI_HDRC_IMX_IMX28_WRITE_FIX)
 		pdata.flags |= CI_HDRC_IMX28_WRITE_FIX;
 
-	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM)
+	if (imx_platform_flag->flags & CI_HDRC_IMX_SUPPORT_RUNTIME_PM) {
 		pdata.flags |= CI_HDRC_SUPPORTS_RUNTIME_PM;
 		data->supports_runtime_pm = true;
 	}
 
+	if (imx_platform_flag->flags & CI_HDRC_IMX_MXS_PHY_EHCI_QUIRK)
+		pdata.flags |= CI_HDRC_IMX_EHCI_QUIRK;
+
 	if (data->usbmisc_data) {
 		ret = imx_usbmisc_init(data->usbmisc_data);
 		if (ret) {