RE: [PATCH v10 5/7] PCI: imx6: Turn off regulator when the system is in suspend mode

From: Hongxing Zhu
Date: Mon Jun 13 2022 - 20:58:44 EST


> -----Original Message-----
> From: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx>
> Sent: 2022年6月13日 18:17
> To: Hongxing Zhu <hongxing.zhu@xxxxxxx>; l.stach@xxxxxxxxxxxxxx;
> bhelgaas@xxxxxxxxxx; robh@xxxxxxxxxx
> Cc: broonie@xxxxxxxxxx; lorenzo.pieralisi@xxxxxxx; festevam@xxxxxxxxx;
> francesco.dolcini@xxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> kernel@xxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>
> Subject: Re: [PATCH v10 5/7] PCI: imx6: Turn off regulator when the system is
> in suspend mode
>
> On Mon, Jun 13, 2022 at 04:55:36PM +0800, Richard Zhu wrote:
> > The driver should undo any enables it did itself. The regulator
> > disable shouldn't be basing decisions on regulator_is_enabled().
> >
> > Move the regulator_disable to the suspend function, turn off regulator
> > when the system is in suspend mode.
>
> According to the documentation:
>
> vpcie-supply:
> description: Should specify the regulator in charge of PCIe port power.
> The regulator will be enabled when initializing the PCIe host and
> disabled either as part of the init process or when shutting down
> the host (optional required).
>
> Is this really what we want to do (remove power in suspend, enable it on
> resume)? On our boards this powers a PCIe device connected to the host port,
> that sound fair according to the binding documentation for it.
> Am I wrong?
>
> We do have issues with PCIe not working anymore after suspend/resume,
> wondering (I did not have time to properly dig into it) if this is the root cause.
>
Hi Francesco:
Yes, you're right. This regulator is used to powered up the port. It's
reasonable to move the disable to suspend refer to Lucas' review comments.
BTW, I suspect that your PCIe failure after suspend/resume is caused by the
MSI_ADDR missing. Can you make a double check on it?
I used found that the MSI_ADDR should be re-configured again during resume on
some platforms. But I didn't issue that fix patch in time. Sorry about that.

Best Regards
Richard Zhu

> Francesco