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