RE: [PATCH v8 8/8] PCI: imx6: Add compliance tests mode support

Hongxing Zhu
2022-04-02T03:03:12Z

> -----Original Message-----
> From: Rob Herring <robh@kernel.org>
> Sent: 2022年4月2日 4:27
> To: Hongxing Zhu <hongxing.zhu@nxp.com>
> Cc: l.stach@pengutronix.de; bhelgaas@google.com; broonie@kernel.org;
> lorenzo.pieralisi@arm.com; jingoohan1@gmail.com; festevam@gmail.com;
> francesco.dolcini@toradex.com; linux-pci@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org;
> kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>
> Subject: Re: [PATCH v8 8/8] PCI: imx6: Add compliance tests mode support
>
> On Fri, Feb 25, 2022 at 11:44:27AM +0800, Richard Zhu wrote:
> > Refer to the Chapter 3.2 System Board Signal Quality of PCI Express
> > Architecture PHY Test Specification Revision 2.0.
> >
> > Signal quality tests (for example: jitter, differential eye opening
> > and so on) can be executed with devices in the polling.compliance state.
> >
> > To let the device support polling.compliance state, the clocks and
> > powers shouldn't be turned off when the probe of device driver fails.
> >
> > Based on CLB (Compliance Load Board) Test Fixture and so on test
> > equipments, the PHY link would be down during the compliance tests.
> > Refer to this scenario, add the i.MX PCIe compliance tests mode enable
> > support, and keep the clocks and powers on, and finish the driver
> > probe without error return.
>
> How is this specific to i.MX? If there's a need for compliance test mode, then
> shouldn't it be common? However, while your usecase is compliance testing,
> there doesn't seem to be any need for the kernel to know what the usecase is.
>
> In the same series you've argued both ways. You need the driver to probe
> successfully with no link and you need it to shutdown on no link.
>
Hi Rob:
Thank a lot for your review comments.
Based on this series, to save power consumption, i.MX PCIe would turn off the
power/clocks when probe failed. Thus, it's specific to i.MX to add one more
option to keep power/clocks on when compliance tests mode is required.
The compliance test mode can be enabled dynamically through the
module_para setting.

Best Regards
Richard Zhu

> >
> > Use the "pci_imx6.compliance=1" in kernel command line to enable the
> > compliance tests mode.
> >
> > Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
> > ---
> > drivers/pci/controller/dwc/pci-imx6.c | 47
> > ++++++++++++++++++---------
> > 1 file changed, 31 insertions(+), 16 deletions(-)