Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 127414
b: refs/heads/master
c: fa6c993
h: refs/heads/master
v: v3
  • Loading branch information
Rafael J. Wysocki authored and Jesse Barnes committed Jan 7, 2009
1 parent af995fc commit c0219c0
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 51 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e7ae88486670f3904f187d0fff9dcf469bcdd8ba
refs/heads/master: fa6c993736cb8cc18af86b8d17b608efa7882ab5
10 changes: 10 additions & 0 deletions trunk/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 trunk/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 c0219c0

Please sign in to comment.