Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
[pandora-kernel.git] / drivers / pci / pcie / portdrv_core.c
index 393e0ce..bd6615b 100644 (file)
@@ -6,11 +6,14 @@
  * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
  */
 
+#include <linux/compiler.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/pm.h>
+#include <linux/string.h>
+#include <linux/slab.h>
 #include <linux/pcieport_if.h>
 
 #include "portdrv.h"
@@ -61,7 +64,7 @@ static int pcie_port_remove_service(struct device *dev)
 
 static void pcie_port_shutdown_service(struct device *dev) {}
 
-static int pcie_port_suspend_service(struct device *dev, pm_message_t state, u32 level)
+static int pcie_port_suspend_service(struct device *dev, pm_message_t state)
 {
        struct pcie_device *pciedev;
        struct pcie_port_service_driver *driver;
@@ -76,7 +79,7 @@ static int pcie_port_suspend_service(struct device *dev, pm_message_t state, u32
        return 0;
 }
 
-static int pcie_port_resume_service(struct device *dev, u32 level)
+static int pcie_port_resume_service(struct device *dev)
 {
        struct pcie_device *pciedev;
        struct pcie_port_service_driver *driver;
@@ -236,8 +239,8 @@ static void pcie_device_init(struct pci_dev *parent, struct pcie_device *dev,
        device->driver = NULL;
        device->driver_data = NULL;
        device->release = release_pcie_device;  /* callback to free pcie dev */
-       sprintf(&device->bus_id[0], "pcie%02x",
-               get_descriptor_id(port_type, service_type));
+       snprintf(device->bus_id, sizeof(device->bus_id), "%s:pcie%02x",
+                pci_name(parent), get_descriptor_id(port_type, service_type));
        device->parent = &parent->dev;
 }
 
@@ -246,11 +249,10 @@ static struct pcie_device* alloc_pcie_device(struct pci_dev *parent,
 {
        struct pcie_device *device;
 
-       device = kmalloc(sizeof(struct pcie_device), GFP_KERNEL);
+       device = kzalloc(sizeof(struct pcie_device), GFP_KERNEL);
        if (!device)
                return NULL;
 
-       memset(device, 0, sizeof(struct pcie_device));
        pcie_device_init(parent, device, port_type, service_type, irq,irq_mode);
        printk(KERN_DEBUG "Allocate Port Service[%s]\n", device->device.bus_id);
        return device;
@@ -338,8 +340,7 @@ static int suspend_iter(struct device *dev, void *data)
 
 int pcie_port_device_suspend(struct pci_dev *dev, pm_message_t state)
 {
-       device_for_each_child(&dev->dev, &state, suspend_iter);
-       return 0;
+       return device_for_each_child(&dev->dev, &state, suspend_iter);
 }
 
 static int resume_iter(struct device *dev, void *data)
@@ -357,8 +358,7 @@ static int resume_iter(struct device *dev, void *data)
 
 int pcie_port_device_resume(struct pci_dev *dev)
 {
-       device_for_each_child(&dev->dev, NULL, resume_iter);
-       return 0;
+       return device_for_each_child(&dev->dev, NULL, resume_iter);
 }
 #endif
 
@@ -401,9 +401,9 @@ void pcie_port_device_remove(struct pci_dev *dev)
                pci_disable_msi(dev);
 }
 
-void pcie_port_bus_register(void)
+int __must_check pcie_port_bus_register(void)
 {
-       bus_register(&pcie_port_bus_type);
+       return bus_register(&pcie_port_bus_type);
 }
 
 void pcie_port_bus_unregister(void)