aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2009-01-01 13:52:12 -0500
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-01-07 14:13:27 -0500
commitfa6c993736cb8cc18af86b8d17b608efa7882ab5 (patch)
tree7ec2c443fab2049ca49f5bf6060eec2ca5985d07 /drivers/pci
parente7ae88486670f3904f187d0fff9dcf469bcdd8ba (diff)
PCI: PCIe portdrv: Rearrange code so that related things are together
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>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pcie/portdrv_bus.c10
-rw-r--r--drivers/pci/pcie/portdrv_core.c90
2 files changed, 50 insertions, 50 deletions
diff --git a/drivers/pci/pcie/portdrv_bus.c b/drivers/pci/pcie/portdrv_bus.c
index 3a03db4323ad..eec89b767f9f 100644
--- a/drivers/pci/pcie/portdrv_bus.c
+++ b/drivers/pci/pcie/portdrv_bus.c
@@ -44,3 +44,13 @@ static int pcie_port_bus_match(struct device *dev, struct device_driver *drv)
44 44
45 return 1; 45 return 1;
46} 46}
47
48int pcie_port_bus_register(void)
49{
50 return bus_register(&pcie_port_bus_type);
51}
52
53void pcie_port_bus_unregister(void)
54{
55 bus_unregister(&pcie_port_bus_type);
56}
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c
index 6ca5a40cc61c..a0d51e3f34f4 100644
--- a/drivers/pci/pcie/portdrv_core.c
+++ b/drivers/pci/pcie/portdrv_core.c
@@ -19,50 +19,6 @@
19 19
20extern int pcie_mch_quirk; /* MSI-quirk Indicator */ 20extern int pcie_mch_quirk; /* MSI-quirk Indicator */
21 21
22static int pcie_port_probe_service(struct device *dev)
23{
24 struct pcie_device *pciedev;
25 struct pcie_port_service_driver *driver;
26 int status;
27
28 if (!dev || !dev->driver)
29 return -ENODEV;
30
31 driver = to_service_driver(dev->driver);
32 if (!driver || !driver->probe)
33 return -ENODEV;
34
35 pciedev = to_pcie_device(dev);
36 status = driver->probe(pciedev, driver->id_table);
37 if (!status) {
38 dev_printk(KERN_DEBUG, dev, "service driver %s loaded\n",
39 driver->name);
40 get_device(dev);
41 }
42 return status;
43}
44
45static int pcie_port_remove_service(struct device *dev)
46{
47 struct pcie_device *pciedev;
48 struct pcie_port_service_driver *driver;
49
50 if (!dev || !dev->driver)
51 return 0;
52
53 pciedev = to_pcie_device(dev);
54 driver = to_service_driver(dev->driver);
55 if (driver && driver->remove) {
56 dev_printk(KERN_DEBUG, dev, "unloading service driver %s\n",
57 driver->name);
58 driver->remove(pciedev);
59 put_device(dev);
60 }
61 return 0;
62}
63
64static void pcie_port_shutdown_service(struct device *dev) {}
65
66/** 22/**
67 * release_pcie_device - free PCI Express port service device structure 23 * release_pcie_device - free PCI Express port service device structure
68 * @dev: Port service device to release 24 * @dev: Port service device to release
@@ -414,16 +370,50 @@ void pcie_port_device_remove(struct pci_dev *dev)
414 pci_disable_msi(dev); 370 pci_disable_msi(dev);
415} 371}
416 372
417int pcie_port_bus_register(void) 373static int pcie_port_probe_service(struct device *dev)
418{ 374{
419 return bus_register(&pcie_port_bus_type); 375 struct pcie_device *pciedev;
376 struct pcie_port_service_driver *driver;
377 int status;
378
379 if (!dev || !dev->driver)
380 return -ENODEV;
381
382 driver = to_service_driver(dev->driver);
383 if (!driver || !driver->probe)
384 return -ENODEV;
385
386 pciedev = to_pcie_device(dev);
387 status = driver->probe(pciedev, driver->id_table);
388 if (!status) {
389 dev_printk(KERN_DEBUG, dev, "service driver %s loaded\n",
390 driver->name);
391 get_device(dev);
392 }
393 return status;
420} 394}
421 395
422void pcie_port_bus_unregister(void) 396static int pcie_port_remove_service(struct device *dev)
423{ 397{
424 bus_unregister(&pcie_port_bus_type); 398 struct pcie_device *pciedev;
399 struct pcie_port_service_driver *driver;
400
401 if (!dev || !dev->driver)
402 return 0;
403
404 pciedev = to_pcie_device(dev);
405 driver = to_service_driver(dev->driver);
406 if (driver && driver->remove) {
407 dev_printk(KERN_DEBUG, dev, "unloading service driver %s\n",
408 driver->name);
409 driver->remove(pciedev);
410 put_device(dev);
411 }
412 return 0;
425} 413}
426 414
415static void pcie_port_shutdown_service(struct device *dev) {}
416
427int pcie_port_service_register(struct pcie_port_service_driver *new) 417int pcie_port_service_register(struct pcie_port_service_driver *new)
428{ 418{
429 new->driver.name = (char *)new->name; 419 new->driver.name = (char *)new->name;
@@ -435,9 +425,9 @@ int pcie_port_service_register(struct pcie_port_service_driver *new)
435 return driver_register(&new->driver); 425 return driver_register(&new->driver);
436} 426}
437 427
438void pcie_port_service_unregister(struct pcie_port_service_driver *new) 428void pcie_port_service_unregister(struct pcie_port_service_driver *drv)
439{ 429{
440 driver_unregister(&new->driver); 430 driver_unregister(&drv->driver);
441} 431}
442 432
443EXPORT_SYMBOL(pcie_port_service_register); 433EXPORT_SYMBOL(pcie_port_service_register);