drm/i915: Deprecate pci_get_bus_and_slot()
authorSinan Kaya <okaya@codeaurora.org>
Mon, 27 Nov 2017 16:57:46 +0000 (11:57 -0500)
committerBjorn Helgaas <helgaas@kernel.org>
Fri, 16 Feb 2018 14:48:07 +0000 (08:48 -0600)
pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
where a PCI device is present. This restricts the device drivers to be
reused for other domain numbers.

Getting ready to remove pci_get_bus_and_slot() function in favor of
pci_get_domain_bus_and_slot().

Extract the domain number from drm_device and pass it into
pci_get_domain_bus_and_slot() function.

Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
drivers/gpu/drm/i915/i915_drv.c

index 173d0095e3b2120e2bd2f4090cbe7da1e25c6619..ca17508fd28c065548ce650007496d57b7aae045 100644 (file)
@@ -434,7 +434,10 @@ static int i915_getparam(struct drm_device *dev, void *data,
 
 static int i915_get_bridge_dev(struct drm_i915_private *dev_priv)
 {
-       dev_priv->bridge_dev = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0));
+       int domain = pci_domain_nr(dev_priv->drm.pdev->bus);
+
+       dev_priv->bridge_dev =
+               pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 0));
        if (!dev_priv->bridge_dev) {
                DRM_ERROR("bridge device not found\n");
                return -1;