Re: [RFC BUG] pci: Freescale i.MX6 PCIe controller: revert mainline regression

From: Trent Piepho
Date: Tue Dec 18 2018 - 18:07:18 EST


On Tue, 2018-12-18 at 16:04 -0500, Sven Van Asbroeck wrote:
> We are using a Broadcom BCM57780 ethernet adapter (Tigon3) connected
> to a i.MX6 PCIe controller. On a Freescale i.MX6 SoC.
>
> This combo worked ok on mainline v4.17.
> On mainline v4.18-rc1, a regression was introduced that caused a crash.
> This regression is still present in current mainline as of v4.20-rc7
>
> Bisected the regression to the following merge head:
> commit 0ecda3a08746 ("Merge branch 'pci/kconfig'")
> When this merge head is removed, the regression disappears. This commit
> reverts the changes introduced by the offending merge head.

It's actually commit f3fdfc4ac3a2 ("PCI: Remove host driver Kconfig
selection of CONFIG_PCIEPORTBUS") that made this problem apparent.

But the real bug is not in that commit, but a problem with imx6/7 not
configuring a setting in the RC correctly without pcieportbus, which
should not be necessary.

See "[v4] PCI: imx: make msi work without CONFIG_PCIEPORTBUS=y" by
Richard Zhu for a real fix.

There another bug that makes this driver sometimes lose an MSI, but
that regression was in v4.14 and would not be fixed by your patch, so
this tigon3 problem is almost certainly caused by the previously
mentioned issue with pcieportbus.

> diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
> index 6671946dbf66..6e4241ac0a1e 100644
> --- a/drivers/pci/controller/Kconfig
> +++ b/drivers/pci/controller/Kconfig
> @@ -113,6 +113,7 @@ config PCI_XGENE
> bool "X-Gene PCIe controller"
> depends on ARM64 || COMPILE_TEST
> depends on OF || (ACPI && PCI_QUIRKS)
> + select PCIEPORTBUS
> help
> Say Y here if you want internal PCI support on APM X-Gene SoC.
>