]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
PCI: Bind DPC to Root Ports as well as Downstream Ports
authorKeith Busch <keith.busch@intel.com>
Wed, 6 Jul 2016 16:06:00 +0000 (10:06 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 25 Jul 2016 17:45:19 +0000 (12:45 -0500)
PCIe port type values are not flags, so OR'ing them is not correct.
Previously the result was equivalent to PCIe Downstream Ports, so we were
missing binding to DPC-capable Root Ports.

Change the type to 'any' so we can bind to both port types.  While this
will cause the code to check Upstream Ports, the driver won't claim them
since they are not DPC-capable.

Reported-by: Alexander Antonov <alexanderx.v.antonov@intel.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/pci/pcie/pcie-dpc.c

index fcd19430d41e81f9943d65bb2d6172e0a56e95bb..250f878617863e1452f95d57e5055f8599a1e2b5 100644 (file)
@@ -133,7 +133,7 @@ static void dpc_remove(struct pcie_device *dev)
 
 static struct pcie_port_service_driver dpcdriver = {
        .name           = "dpc",
-       .port_type      = PCI_EXP_TYPE_ROOT_PORT | PCI_EXP_TYPE_DOWNSTREAM,
+       .port_type      = PCIE_ANY_PORT,
        .service        = PCIE_PORT_SERVICE_DPC,
        .probe          = dpc_probe,
        .remove         = dpc_remove,