RE: [PATCH v3 3/7] PCI: imx6: Fix the regulator dump when link never came up

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Mark Brown <broonie@xxxxxxxxxx>
> Sent: Monday, October 25, 2021 7:24 PM
> To: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx>
> Cc: Richard Zhu <hongxing.zhu@xxxxxxx>; 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 Mon, Oct 25, 2021 at 01:13:12PM +0200, Francesco Dolcini wrote:
> 
> > Hello Richard,
> > please see this comment from Mark,
> https://lore.kernel.org/all/YXaGve1ZJq0DGZ9l@xxxxxxxxxxxxx/.
> 
> > > +		if (imx6_pcie->vpcie
> > > +		    && regulator_is_enabled(imx6_pcie->vpcie) > 0)
> > > +			regulator_disable(imx6_pcie->vpcie);
> > >  		return ret;
> 
> I should probably also say that the check for the regulator looks buggy as well,
> regulators should only be optional if they can be physically absent which does
> not seem likely for PCI devices.  If the driver is not doing something to
> reconfigure the hardware to account for a missing supply this is generally a big
> warning sign.
> 
> I really don't understand why regulator support is so frequently problematic
> for PCI controllers.  :(
[Richard Zhu] Hi Mark:
The _enabled check is used because that this regulator is optional in the HW design.
To make the codes clean and aligned on different HW boards, the _enabled check is added.

The root cause is that the error return is not handled properly by the controller driver.
I.MX PCIe controller doesn't support the Hot-Plug, and it would return -110 error
when PCIe link never came up. Thus, the _probe would be failed in the end.
The clocks/regulator usage balance should be considered by i.MX PCIe controller, that's all.
It's not a general case, and the problem is not caused by the regulator support.

Best Regards
Richard Zhu





[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux