2022-03-03 06:53:51

by Hongxing Zhu

[permalink] [raw]
Subject: [PATCH] PCI: imx6: Invoke the PHY exit function after PHY power off

To balance phy->init_count, invoke the phy_exit() after phy_power_off().

Fixes: 178e244cb6e2 ("PCI: imx: Add the imx8mm pcie support")
Signed-off-by: Richard Zhu <[email protected]>
---
drivers/pci/controller/dwc/pci-imx6.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 331490614d55..343fe1429e3c 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -973,6 +973,7 @@ static int imx6_pcie_suspend_noirq(struct device *dev)
case IMX8MM:
if (phy_power_off(imx6_pcie->phy))
dev_err(dev, "unable to power off PHY\n");
+ phy_exit(imx6_pcie->phy);
break;
default:
break;
--
2.25.1


2022-03-16 19:31:41

by Lucas Stach

[permalink] [raw]
Subject: Re: [PATCH] PCI: imx6: Invoke the PHY exit function after PHY power off

Am Donnerstag, dem 03.03.2022 um 14:34 +0800 schrieb Richard Zhu:
> To balance phy->init_count, invoke the phy_exit() after phy_power_off().
>
This looks okay as a fix, but overall I don't like that we need to have
special PHY handling in the suspend path and PHY init hidden in
imx6_pcie_assert_core_reset() in the resume path. Maybe we can make
this PHY handling a bit more obvious by splitting it out of the core
reset sequence. I don't see the full implications of such a change yet,
but I think we should at least give it a try.

For now, this patch is:
Reviewed-by: Lucas Stach <[email protected]>

> Fixes: 178e244cb6e2 ("PCI: imx: Add the imx8mm pcie support")
> Signed-off-by: Richard Zhu <[email protected]>
> ---
> drivers/pci/controller/dwc/pci-imx6.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index 331490614d55..343fe1429e3c 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -973,6 +973,7 @@ static int imx6_pcie_suspend_noirq(struct device *dev)
> case IMX8MM:
> if (phy_power_off(imx6_pcie->phy))
> dev_err(dev, "unable to power off PHY\n");
> + phy_exit(imx6_pcie->phy);
> break;
> default:
> break;


2022-03-17 05:33:06

by Hongxing Zhu

[permalink] [raw]
Subject: RE: [PATCH] PCI: imx6: Invoke the PHY exit function after PHY power off

> -----Original Message-----
> From: Lucas Stach <[email protected]>
> Sent: 2022年3月16日 17:38
> To: Hongxing Zhu <[email protected]>; [email protected];
> [email protected]
> Cc: [email protected]; [email protected];
> [email protected]; [email protected]; dl-linux-imx
> <[email protected]>
> Subject: Re: [PATCH] PCI: imx6: Invoke the PHY exit function after PHY power
> off
>
> Am Donnerstag, dem 03.03.2022 um 14:34 +0800 schrieb Richard Zhu:
> > To balance phy->init_count, invoke the phy_exit() after phy_power_off().
> >
> This looks okay as a fix, but overall I don't like that we need to have special PHY
> handling in the suspend path and PHY init hidden in
> imx6_pcie_assert_core_reset() in the resume path. Maybe we can make this
> PHY handling a bit more obvious by splitting it out of the core reset sequence. I
> don't see the full implications of such a change yet, but I think we should at
> least give it a try.
>
> For now, this patch is:
> Reviewed-by: Lucas Stach <[email protected]>
Hi Lucas:
Thanks for your review comment.
Agree with you, the PHY handling shouldn't be include in the reset function.
I would plan to refine the PHY handling after this fix.

Best Regards
Richard Zhu

>
> > Fixes: 178e244cb6e2 ("PCI: imx: Add the imx8mm pcie support")
> > Signed-off-by: Richard Zhu <[email protected]>
> > ---
> > drivers/pci/controller/dwc/pci-imx6.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/pci/controller/dwc/pci-imx6.c
> > b/drivers/pci/controller/dwc/pci-imx6.c
> > index 331490614d55..343fe1429e3c 100644
> > --- a/drivers/pci/controller/dwc/pci-imx6.c
> > +++ b/drivers/pci/controller/dwc/pci-imx6.c
> > @@ -973,6 +973,7 @@ static int imx6_pcie_suspend_noirq(struct device
> *dev)
> > case IMX8MM:
> > if (phy_power_off(imx6_pcie->phy))
> > dev_err(dev, "unable to power off PHY\n");
> > + phy_exit(imx6_pcie->phy);
> > break;
> > default:
> > break;
>

2022-03-17 12:56:04

by Lorenzo Pieralisi

[permalink] [raw]
Subject: Re: [PATCH] PCI: imx6: Invoke the PHY exit function after PHY power off

On Thu, 3 Mar 2022 14:34:35 +0800, Richard Zhu wrote:
> To balance phy->init_count, invoke the phy_exit() after phy_power_off().
>
>

Applied to pci/imx6, thanks!

[1/1] PCI: imx6: Invoke the PHY exit function after PHY power off
https://git.kernel.org/lpieralisi/pci/c/deaf7a2c2e

Thanks,
Lorenzo