PCI: mobiveil: Fix devfn check in mobiveil_pcie_valid_device()
authorHou Zhiqiang <Zhiqiang.Hou@nxp.com>
Fri, 5 Jul 2019 09:56:39 +0000 (17:56 +0800)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 8 Jul 2019 11:28:44 +0000 (12:28 +0100)
Current check for devfn number in mobiveil_pci_valid_device() is
wrong in that it flags as invalid functions present in PCI device 0
in the root bus while it is perfectly valid to access all functions
in PCI device 0 in the root bus.

Update the check in mobiveil_pci_valid_device() to fix the issue.

Fixes: 9af6bcb11e12 ("PCI: mobiveil: Add Mobiveil PCIe Host Bridge IP driver")
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Minghuan Lian <Minghuan.Lian@nxp.com>
drivers/pci/controller/pcie-mobiveil.c

index 8f561300a88e722f7b74b0c78fa33226f5cac9cb..c9bf5658c4e761f6b2f3f18f211eff1c5c45c7f8 100644 (file)
@@ -283,7 +283,7 @@ static bool mobiveil_pcie_valid_device(struct pci_bus *bus, unsigned int devfn)
         * Do not read more than one device on the bus directly
         * attached to RC
         */
-       if ((bus->primary == pcie->root_bus_nr) && (devfn > 0))
+       if ((bus->primary == pcie->root_bus_nr) && (PCI_SLOT(devfn) > 0))
                return false;
 
        return true;