diff mbox series

[v3,10/11] PCI: imx6: Use flags to indicate support for suspend

Message ID 20190401042547.14067-11-andrew.smirnov@gmail.com (mailing list archive)
State Superseded, archived
Headers show
Series i.MX6, DesignWare PCI improvements | expand

Commit Message

Andrey Smirnov April 1, 2019, 4:25 a.m. UTC
Now that driver data has flags variable that can be used to indicate
quirks/features supported we can switch the code to use it instead of
having a special function that does so based on variant alone. No
functional change intended.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
 drivers/pci/controller/dwc/pci-imx6.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

Comments

Lucas Stach April 12, 2019, 4:17 p.m. UTC | #1
Am Sonntag, den 31.03.2019, 21:25 -0700 schrieb Andrey Smirnov:
> Now that driver data has flags variable that can be used to indicate
> quirks/features supported we can switch the code to use it instead of
> having a special function that does so based on variant alone. No
> functional change intended.
> 
> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>

Reviewed-by: Lucas Stach <l.stach@pengutronix.de>

> ---
>  drivers/pci/controller/dwc/pci-imx6.c | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index 9c658ef55aa4..c9431a8a7ca1 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -52,6 +52,7 @@ enum imx6_pcie_variants {
>  
> >  #define IMX6_PCIE_FLAG_IMX6_PHY			BIT(0)
> >  #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE	BIT(1)
> > +#define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND		BIT(2)
>  
>  struct imx6_pcie_drvdata {
> >  	enum imx6_pcie_variants variant;
> @@ -973,17 +974,11 @@ static void imx6_pcie_clk_disable(struct imx6_pcie *imx6_pcie)
> >  	}
>  }
>  
> -static inline bool imx6_pcie_supports_suspend(struct imx6_pcie *imx6_pcie)
> -{
> > -	return (imx6_pcie->drvdata->variant == IMX7D ||
> > -		imx6_pcie->drvdata->variant == IMX6SX);
> -}
> -
>  static int imx6_pcie_suspend_noirq(struct device *dev)
>  {
> >  	struct imx6_pcie *imx6_pcie = dev_get_drvdata(dev);
>  
> > -	if (!imx6_pcie_supports_suspend(imx6_pcie))
> > +	if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_SUPPORTS_SUSPEND))
> >  		return 0;
>  
> >  	imx6_pcie_pm_turnoff(imx6_pcie);
> @@ -999,7 +994,7 @@ static int imx6_pcie_resume_noirq(struct device *dev)
> >  	struct imx6_pcie *imx6_pcie = dev_get_drvdata(dev);
> >  	struct pcie_port *pp = &imx6_pcie->pci->pp;
>  
> > -	if (!imx6_pcie_supports_suspend(imx6_pcie))
> > +	if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_SUPPORTS_SUSPEND))
> >  		return 0;
>  
> >  	imx6_pcie_assert_core_reset(imx6_pcie);
> @@ -1229,7 +1224,8 @@ static const struct imx6_pcie_drvdata drvdata[] = {
> >  	[IMX6SX] = {
> >  		.variant = IMX6SX,
> >  		.flags = IMX6_PCIE_FLAG_IMX6_PHY |
> > -			 IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE,
> > +			 IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE |
> > +			 IMX6_PCIE_FLAG_SUPPORTS_SUSPEND,
> >  	},
> >  	[IMX6QP] = {
> >  		.variant = IMX6QP,
> @@ -1238,6 +1234,7 @@ static const struct imx6_pcie_drvdata drvdata[] = {
> >  	},
> >  	[IMX7D] = {
> >  		.variant = IMX7D,
> > +		.flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND,
> >  	},
> >  	[IMX8MQ] = {
> >  		.variant = IMX8MQ,
diff mbox series

Patch

diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 9c658ef55aa4..c9431a8a7ca1 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -52,6 +52,7 @@  enum imx6_pcie_variants {
 
 #define IMX6_PCIE_FLAG_IMX6_PHY			BIT(0)
 #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE	BIT(1)
+#define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND		BIT(2)
 
 struct imx6_pcie_drvdata {
 	enum imx6_pcie_variants variant;
@@ -973,17 +974,11 @@  static void imx6_pcie_clk_disable(struct imx6_pcie *imx6_pcie)
 	}
 }
 
-static inline bool imx6_pcie_supports_suspend(struct imx6_pcie *imx6_pcie)
-{
-	return (imx6_pcie->drvdata->variant == IMX7D ||
-		imx6_pcie->drvdata->variant == IMX6SX);
-}
-
 static int imx6_pcie_suspend_noirq(struct device *dev)
 {
 	struct imx6_pcie *imx6_pcie = dev_get_drvdata(dev);
 
-	if (!imx6_pcie_supports_suspend(imx6_pcie))
+	if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_SUPPORTS_SUSPEND))
 		return 0;
 
 	imx6_pcie_pm_turnoff(imx6_pcie);
@@ -999,7 +994,7 @@  static int imx6_pcie_resume_noirq(struct device *dev)
 	struct imx6_pcie *imx6_pcie = dev_get_drvdata(dev);
 	struct pcie_port *pp = &imx6_pcie->pci->pp;
 
-	if (!imx6_pcie_supports_suspend(imx6_pcie))
+	if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_SUPPORTS_SUSPEND))
 		return 0;
 
 	imx6_pcie_assert_core_reset(imx6_pcie);
@@ -1229,7 +1224,8 @@  static const struct imx6_pcie_drvdata drvdata[] = {
 	[IMX6SX] = {
 		.variant = IMX6SX,
 		.flags = IMX6_PCIE_FLAG_IMX6_PHY |
-			 IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE,
+			 IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE |
+			 IMX6_PCIE_FLAG_SUPPORTS_SUSPEND,
 	},
 	[IMX6QP] = {
 		.variant = IMX6QP,
@@ -1238,6 +1234,7 @@  static const struct imx6_pcie_drvdata drvdata[] = {
 	},
 	[IMX7D] = {
 		.variant = IMX7D,
+		.flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND,
 	},
 	[IMX8MQ] = {
 		.variant = IMX8MQ,