2019-03-01 08:58:12

by Andrey Smirnov

[permalink] [raw]
Subject: [PATCH] PCI: imx6: Don't request "pci_aux" clock on i.MX7

The clock in question is not present on i.MX7, so move the code
requesting it into i.MX8MQ-only path.

Fixes: eeb61c4e8530 ("PCI: imx6: Add code to request/control
"pcie_aux" clock for i.MX8MQ")
Reported-by: Trent Piepho <[email protected]>
Signed-off-by: Andrey Smirnov <[email protected]>
Cc: Bjorn Helgaas <[email protected]>
Cc: Chris Healy <[email protected]>
Cc: Lucas Stach <[email protected]>
Cc: Trent Piepho <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
---
drivers/pci/controller/dwc/pci-imx6.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 08f1ee050c73..5fe364a9959d 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1100,8 +1100,14 @@ static int imx6_pcie_probe(struct platform_device *pdev)
return PTR_ERR(imx6_pcie->pcie_inbound_axi);
}
break;
- case IMX7D:
case IMX8MQ:
+ imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux");
+ if (IS_ERR(imx6_pcie->pcie_aux)) {
+ dev_err(dev, "pcie_aux clock source missing or invalid\n");
+ return PTR_ERR(imx6_pcie->pcie_aux);
+ }
+ /* fall through */
+ case IMX7D:
if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR)
imx6_pcie->controller_id = 1;

@@ -1118,12 +1124,6 @@ static int imx6_pcie_probe(struct platform_device *pdev)
dev_err(dev, "Failed to get PCIE APPS reset control\n");
return PTR_ERR(imx6_pcie->apps_reset);
}
-
- imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux");
- if (IS_ERR(imx6_pcie->pcie_aux)) {
- dev_err(dev, "pcie_aux clock source missing or invalid\n");
- return PTR_ERR(imx6_pcie->pcie_aux);
- }
break;
default:
break;
--
2.20.1



2019-03-01 12:12:56

by Lorenzo Pieralisi

[permalink] [raw]
Subject: Re: [PATCH] PCI: imx6: Don't request "pci_aux" clock on i.MX7

On Fri, Mar 01, 2019 at 12:55:59AM -0800, Andrey Smirnov wrote:
> The clock in question is not present on i.MX7, so move the code
> requesting it into i.MX8MQ-only path.
>
> Fixes: eeb61c4e8530 ("PCI: imx6: Add code to request/control
> "pcie_aux" clock for i.MX8MQ")
> Reported-by: Trent Piepho <[email protected]>
> Signed-off-by: Andrey Smirnov <[email protected]>
> Cc: Bjorn Helgaas <[email protected]>
> Cc: Chris Healy <[email protected]>
> Cc: Lucas Stach <[email protected]>
> Cc: Trent Piepho <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> ---
> drivers/pci/controller/dwc/pci-imx6.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)

I have squashed this patch in the commit it fixes, pci/dwc
branch, please have a look.

Thanks,
Lorenzo

> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index 08f1ee050c73..5fe364a9959d 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -1100,8 +1100,14 @@ static int imx6_pcie_probe(struct platform_device *pdev)
> return PTR_ERR(imx6_pcie->pcie_inbound_axi);
> }
> break;
> - case IMX7D:
> case IMX8MQ:
> + imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux");
> + if (IS_ERR(imx6_pcie->pcie_aux)) {
> + dev_err(dev, "pcie_aux clock source missing or invalid\n");
> + return PTR_ERR(imx6_pcie->pcie_aux);
> + }
> + /* fall through */
> + case IMX7D:
> if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR)
> imx6_pcie->controller_id = 1;
>
> @@ -1118,12 +1124,6 @@ static int imx6_pcie_probe(struct platform_device *pdev)
> dev_err(dev, "Failed to get PCIE APPS reset control\n");
> return PTR_ERR(imx6_pcie->apps_reset);
> }
> -
> - imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux");
> - if (IS_ERR(imx6_pcie->pcie_aux)) {
> - dev_err(dev, "pcie_aux clock source missing or invalid\n");
> - return PTR_ERR(imx6_pcie->pcie_aux);
> - }
> break;
> default:
> break;
> --
> 2.20.1
>

2019-03-01 19:38:32

by Trent Piepho

[permalink] [raw]
Subject: Re: [PATCH] PCI: imx6: Don't request "pci_aux" clock on i.MX7

On Fri, 2019-03-01 at 00:55 -0800, Andrey Smirnov wrote:
> The clock in question is not present on i.MX7, so move the code
> requesting it into i.MX8MQ-only path.
>
> Fixes: eeb61c4e8530 ("PCI: imx6: Add code to request/control
> "pcie_aux" clock for i.MX8MQ")
> Reported-by: Trent Piepho <[email protected]>
> Signed-off-by: Andrey Smirnov <[email protected]>
> Cc: Bjorn Helgaas <[email protected]>
> Cc: Chris Healy <[email protected]>
> Cc: Lucas Stach <[email protected]>
> Cc: Trent Piepho <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]

Tested on linux-next, imx7d PCI-e appears to be working fine now.

It's too bad git diff can't report the case label(s) code falls under
the same way it can (usually) get the function name. I saw the
original commit when it was posted and didn't notice anything myself
either.