]> err.no Git - linux-2.6/blobdiff - drivers/base/platform.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6
[linux-2.6] / drivers / base / platform.c
index cd6453905a9bcf4a05265387ce1e51c9cb3fdb57..d597c922af11969213d3ea8bbe310bc57089d277 100644 (file)
  * information.
  */
 
-#include <linux/device.h>
+#include <linux/platform_device.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/dma-mapping.h>
 #include <linux/bootmem.h>
 #include <linux/err.h>
+#include <linux/slab.h>
+
+#include "base.h"
 
 struct device platform_bus = {
        .bus_id         = "platform",
@@ -115,7 +118,7 @@ int platform_add_devices(struct platform_device **devs, int num)
 
 /**
  *     platform_device_register - add a platform-level device
- *     @dev:   platform device we're adding
+ *     @pdev:  platform device we're adding
  *
  */
 int platform_device_register(struct platform_device * pdev)
@@ -174,7 +177,7 @@ int platform_device_register(struct platform_device * pdev)
 
 /**
  *     platform_device_unregister - remove a platform-level device
- *     @dev:   platform device we're removing
+ *     @pdev:  platform device we're removing
  *
  *     Note that this function will also release all memory- and port-based
  *     resources owned by the device (@dev->resource).
@@ -225,13 +228,12 @@ struct platform_device *platform_device_register_simple(char *name, unsigned int
        struct platform_object *pobj;
        int retval;
 
-       pobj = kmalloc(sizeof(struct platform_object) + sizeof(struct resource) * num, GFP_KERNEL);
+       pobj = kzalloc(sizeof(*pobj) + sizeof(struct resource) * num, GFP_KERNEL);
        if (!pobj) {
                retval = -ENOMEM;
                goto error;
        }
 
-       memset(pobj, 0, sizeof(*pobj));
        pobj->pdev.name = name;
        pobj->pdev.id = id;
        pobj->pdev.dev.release = platform_device_release_simple;
@@ -280,13 +282,9 @@ static int platform_suspend(struct device * dev, pm_message_t state)
 {
        int ret = 0;
 
-       if (dev->driver && dev->driver->suspend) {
-               ret = dev->driver->suspend(dev, state, SUSPEND_DISABLE);
-               if (ret == 0)
-                       ret = dev->driver->suspend(dev, state, SUSPEND_SAVE_STATE);
-               if (ret == 0)
-                       ret = dev->driver->suspend(dev, state, SUSPEND_POWER_DOWN);
-       }
+       if (dev->driver && dev->driver->suspend)
+               ret = dev->driver->suspend(dev, state);
+
        return ret;
 }
 
@@ -294,13 +292,9 @@ static int platform_resume(struct device * dev)
 {
        int ret = 0;
 
-       if (dev->driver && dev->driver->resume) {
-               ret = dev->driver->resume(dev, RESUME_POWER_ON);
-               if (ret == 0)
-                       ret = dev->driver->resume(dev, RESUME_RESTORE_STATE);
-               if (ret == 0)
-                       ret = dev->driver->resume(dev, RESUME_ENABLE);
-       }
+       if (dev->driver && dev->driver->resume)
+               ret = dev->driver->resume(dev);
+
        return ret;
 }