arm64: tegra: Fix Tegra194 PCIe compatible string
authorJon Hunter <jonathanh@nvidia.com>
Fri, 14 Feb 2020 13:53:53 +0000 (13:53 +0000)
committerThierry Reding <treding@nvidia.com>
Thu, 12 Mar 2020 11:14:25 +0000 (12:14 +0100)
If the kernel configuration option CONFIG_PCIE_DW_PLAT_HOST is enabled
then this can cause the kernel to incorrectly probe the generic
designware PCIe platform driver instead of the Tegra194 designware PCIe
driver. This causes a boot failure on Tegra194 because the necessary
configuration to access the hardware is not performed.

The order in which the compatible strings are populated in Device-Tree
is not relevant in this case, because the kernel will attempt to probe
the device as soon as a driver is loaded and if the generic designware
PCIe driver is loaded first, then this driver will be probed first.
Therefore, to fix this problem, remove the "snps,dw-pcie" string from
the compatible string as we never want this driver to be probe on
Tegra194.

Fixes: 2602c32f15e7 ("arm64: tegra: Add P2U and PCIe controller nodes to Tegra194 DT")
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt
arch/arm64/boot/dts/nvidia/tegra194.dtsi

index b739f92da58e53d4e762f8069105a3401e9ff11f..1f90eb39870bec5a4a4747756872a33dfd77cfe1 100644 (file)
@@ -118,7 +118,7 @@ Tegra194:
 --------
 
        pcie@14180000 {
-               compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+               compatible = "nvidia,tegra194-pcie";
                power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
                reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
                       0x00 0x38000000 0x0 0x00040000   /* configuration space (256K) */
index ccac43be12acc16b723b4780befa60b7e7d469fa..4c58cb10fb9c9c58b75ac65a25d781544541faa7 100644 (file)
        };
 
        pcie@14100000 {
-               compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+               compatible = "nvidia,tegra194-pcie";
                power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
                reg = <0x00 0x14100000 0x0 0x00020000   /* appl registers (128K)      */
                       0x00 0x30000000 0x0 0x00040000   /* configuration space (256K) */
        };
 
        pcie@14120000 {
-               compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+               compatible = "nvidia,tegra194-pcie";
                power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
                reg = <0x00 0x14120000 0x0 0x00020000   /* appl registers (128K)      */
                       0x00 0x32000000 0x0 0x00040000   /* configuration space (256K) */
        };
 
        pcie@14140000 {
-               compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+               compatible = "nvidia,tegra194-pcie";
                power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
                reg = <0x00 0x14140000 0x0 0x00020000   /* appl registers (128K)      */
                       0x00 0x34000000 0x0 0x00040000   /* configuration space (256K) */
        };
 
        pcie@14160000 {
-               compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+               compatible = "nvidia,tegra194-pcie";
                power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>;
                reg = <0x00 0x14160000 0x0 0x00020000   /* appl registers (128K)      */
                       0x00 0x36000000 0x0 0x00040000   /* configuration space (256K) */
        };
 
        pcie@14180000 {
-               compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+               compatible = "nvidia,tegra194-pcie";
                power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
                reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
                       0x00 0x38000000 0x0 0x00040000   /* configuration space (256K) */
        };
 
        pcie@141a0000 {
-               compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+               compatible = "nvidia,tegra194-pcie";
                power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
                reg = <0x00 0x141a0000 0x0 0x00020000   /* appl registers (128K)      */
                       0x00 0x3a000000 0x0 0x00040000   /* configuration space (256K) */