Skip to content

Commit

Permalink
PCI: PCIe portdrv: Rearrange code so that related things are together
Browse files Browse the repository at this point in the history
Rearrange code in drivers/pci/pcie/portdrv_bus.c and
drivers/pci/pcie/portdrv_core.c so that related functions and data
structures are closer together.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
  • Loading branch information
Rafael J. Wysocki authored and Jesse Barnes committed Jan 7, 2009
1 parent e7ae884 commit fa6c993
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 50 deletions.
10 changes: 10 additions & 0 deletions drivers/pci/pcie/portdrv_bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,13 @@ static int pcie_port_bus_match(struct device *dev, struct device_driver *drv)

return 1;
}

int pcie_port_bus_register(void)
{
return bus_register(&pcie_port_bus_type);
}

void pcie_port_bus_unregister(void)
{
bus_unregister(&pcie_port_bus_type);
}
90 changes: 40 additions & 50 deletions drivers/pci/pcie/portdrv_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,50 +19,6 @@

extern int pcie_mch_quirk; /* MSI-quirk Indicator */

static int pcie_port_probe_service(struct device *dev)
{
struct pcie_device *pciedev;
struct pcie_port_service_driver *driver;
int status;

if (!dev || !dev->driver)
return -ENODEV;

driver = to_service_driver(dev->driver);
if (!driver || !driver->probe)
return -ENODEV;

pciedev = to_pcie_device(dev);
status = driver->probe(pciedev, driver->id_table);
if (!status) {
dev_printk(KERN_DEBUG, dev, "service driver %s loaded\n",
driver->name);
get_device(dev);
}
return status;
}

static int pcie_port_remove_service(struct device *dev)
{
struct pcie_device *pciedev;
struct pcie_port_service_driver *driver;

if (!dev || !dev->driver)
return 0;

pciedev = to_pcie_device(dev);
driver = to_service_driver(dev->driver);
if (driver && driver->remove) {
dev_printk(KERN_DEBUG, dev, "unloading service driver %s\n",
driver->name);
driver->remove(pciedev);
put_device(dev);
}
return 0;
}

static void pcie_port_shutdown_service(struct device *dev) {}

/**
* release_pcie_device - free PCI Express port service device structure
* @dev: Port service device to release
Expand Down Expand Up @@ -414,16 +370,50 @@ void pcie_port_device_remove(struct pci_dev *dev)
pci_disable_msi(dev);
}

int pcie_port_bus_register(void)
static int pcie_port_probe_service(struct device *dev)
{
return bus_register(&pcie_port_bus_type);
struct pcie_device *pciedev;
struct pcie_port_service_driver *driver;
int status;

if (!dev || !dev->driver)
return -ENODEV;

driver = to_service_driver(dev->driver);
if (!driver || !driver->probe)
return -ENODEV;

pciedev = to_pcie_device(dev);
status = driver->probe(pciedev, driver->id_table);
if (!status) {
dev_printk(KERN_DEBUG, dev, "service driver %s loaded\n",
driver->name);
get_device(dev);
}
return status;
}

void pcie_port_bus_unregister(void)
static int pcie_port_remove_service(struct device *dev)
{
bus_unregister(&pcie_port_bus_type);
struct pcie_device *pciedev;
struct pcie_port_service_driver *driver;

if (!dev || !dev->driver)
return 0;

pciedev = to_pcie_device(dev);
driver = to_service_driver(dev->driver);
if (driver && driver->remove) {
dev_printk(KERN_DEBUG, dev, "unloading service driver %s\n",
driver->name);
driver->remove(pciedev);
put_device(dev);
}
return 0;
}

static void pcie_port_shutdown_service(struct device *dev) {}

int pcie_port_service_register(struct pcie_port_service_driver *new)
{
new->driver.name = (char *)new->name;
Expand All @@ -435,9 +425,9 @@ int pcie_port_service_register(struct pcie_port_service_driver *new)
return driver_register(&new->driver);
}

void pcie_port_service_unregister(struct pcie_port_service_driver *new)
void pcie_port_service_unregister(struct pcie_port_service_driver *drv)
{
driver_unregister(&new->driver);
driver_unregister(&drv->driver);
}

EXPORT_SYMBOL(pcie_port_service_register);
Expand Down

0 comments on commit fa6c993

Please sign in to comment.