Skip to content

Commit

Permalink
PCI: centralize the capabilities code in probe.c
Browse files Browse the repository at this point in the history
This patch centralizes the initialization and release functions of
various PCI capabilities in probe.c, which makes the introduction
of new capability support functions cleaner in the future.

Signed-off-by: Yu Zhao <yu.zhao@intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
  • Loading branch information
Zhao, Yu authored and Jesse Barnes committed Oct 20, 2008
1 parent 280c73d commit 201de56
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions drivers/pci/probe.c
Original file line number Diff line number Diff line change
Expand Up @@ -842,6 +842,11 @@ static int pci_setup_device(struct pci_dev * dev)
return 0;
}

static void pci_release_capabilities(struct pci_dev *dev)
{
pci_vpd_release(dev);
}

/**
* pci_release_dev - free a pci device structure when all users of it are finished.
* @dev: device that's been disconnected
Expand All @@ -854,7 +859,7 @@ static void pci_release_dev(struct device *dev)
struct pci_dev *pci_dev;

pci_dev = to_pci_dev(dev);
pci_vpd_release(pci_dev);
pci_release_capabilities(pci_dev);
kfree(pci_dev);
}

Expand Down Expand Up @@ -935,8 +940,6 @@ struct pci_dev *alloc_pci_dev(void)

INIT_LIST_HEAD(&dev->bus_list);

pci_msi_init_pci_dev(dev);

return dev;
}
EXPORT_SYMBOL(alloc_pci_dev);
Expand Down Expand Up @@ -1009,11 +1012,21 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)
return NULL;
}

pci_vpd_pci22_init(dev);

return dev;
}

static void pci_init_capabilities(struct pci_dev *dev)
{
/* MSI/MSI-X list */
pci_msi_init_pci_dev(dev);

/* Power Management */
pci_pm_init(dev);

/* Vital Product Data */
pci_vpd_pci22_init(dev);
}

void pci_device_add(struct pci_dev *dev, struct pci_bus *bus)
{
device_initialize(&dev->dev);
Expand All @@ -1030,8 +1043,8 @@ void pci_device_add(struct pci_dev *dev, struct pci_bus *bus)
/* Fix up broken headers */
pci_fixup_device(pci_fixup_header, dev);

/* Initialize power management of the device */
pci_pm_init(dev);
/* Initialize various capabilities */
pci_init_capabilities(dev);

/*
* Add the device to our list of discovered devices
Expand Down

0 comments on commit 201de56

Please sign in to comment.