> -----Original Message----- > From: Mark Brown <broonie@xxxxxxxxxx> > Sent: Friday, October 29, 2021 7:46 PM > To: Richard Zhu <hongxing.zhu@xxxxxxx> > Cc: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx>; > l.stach@xxxxxxxxxxxxxx; bhelgaas@xxxxxxxxxx; > lorenzo.pieralisi@xxxxxxx; jingoohan1@xxxxxxxxx; > linux-pci@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > kernel@xxxxxxxxxxxxxx > Subject: Re: [PATCH v3 3/7] PCI: imx6: Fix the regulator dump when link > never came up > > On Fri, Oct 29, 2021 at 03:58:41AM +0000, Richard Zhu wrote: > > > > The driver should undo any enables it did itself, it should not undo > > > any enables that anything else did which means it should never be > > > basing decisions on regulator_is_enabled(). While the regulator may > > > not be shared in the particular board you're looking at it may be > > > shared in other systems. > > > [Richard Zhu] Understood. Thanks. > > Can I disabled this regulator in PCIe probe failure handler without > > the > > regulator_is_enabled() check? > > If the driver called regulator_enable() (and that didn't return an > error) it can always call regulator_disable() as many times as it called > regulator_enable(), no need to check if the regulator is still enabled. > When the driver hasn't successfully called regulator_enable() it shouldn't > call regulator_disable() even if the regualtor is enabled. > This means that after your driver has enabled the regulator it can just > disable it but between the regulator_get() and regulator_enable() it > shouldn't do that. [Richard Zhu] Got that, thanks a lot. BR Richard