Merge branch 'upstream'
[linux-2.6-microblaze.git] / kernel / power / pm.c
index 1591493..0f6908c 100644 (file)
@@ -23,7 +23,9 @@
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/pm.h>
+#include <linux/pm_legacy.h>
 #include <linux/interrupt.h>
+#include <linux/mutex.h>
 
 int pm_active;
 
@@ -39,7 +41,7 @@ int pm_active;
  *     until a resume but that will be fine.
  */
  
-static DECLARE_MUTEX(pm_devs_lock);
+static DEFINE_MUTEX(pm_devs_lock);
 static LIST_HEAD(pm_devs);
 
 /**
@@ -66,9 +68,9 @@ struct pm_dev *pm_register(pm_dev_t type,
                dev->id = id;
                dev->callback = callback;
 
-               down(&pm_devs_lock);
+               mutex_lock(&pm_devs_lock);
                list_add(&dev->entry, &pm_devs);
-               up(&pm_devs_lock);
+               mutex_unlock(&pm_devs_lock);
        }
        return dev;
 }
@@ -84,9 +86,9 @@ struct pm_dev *pm_register(pm_dev_t type,
 void pm_unregister(struct pm_dev *dev)
 {
        if (dev) {
-               down(&pm_devs_lock);
+               mutex_lock(&pm_devs_lock);
                list_del(&dev->entry);
-               up(&pm_devs_lock);
+               mutex_unlock(&pm_devs_lock);
 
                kfree(dev);
        }
@@ -117,7 +119,7 @@ void pm_unregister_all(pm_callback callback)
        if (!callback)
                return;
 
-       down(&pm_devs_lock);
+       mutex_lock(&pm_devs_lock);
        entry = pm_devs.next;
        while (entry != &pm_devs) {
                struct pm_dev *dev = list_entry(entry, struct pm_dev, entry);
@@ -125,7 +127,7 @@ void pm_unregister_all(pm_callback callback)
                if (dev->callback == callback)
                        __pm_unregister(dev);
        }
-       up(&pm_devs_lock);
+       mutex_unlock(&pm_devs_lock);
 }
 
 /**
@@ -233,7 +235,7 @@ int pm_send_all(pm_request_t rqst, void *data)
 {
        struct list_head *entry;
        
-       down(&pm_devs_lock);
+       mutex_lock(&pm_devs_lock);
        entry = pm_devs.next;
        while (entry != &pm_devs) {
                struct pm_dev *dev = list_entry(entry, struct pm_dev, entry);
@@ -245,13 +247,13 @@ int pm_send_all(pm_request_t rqst, void *data)
                                 */
                                if (rqst == PM_SUSPEND)
                                        pm_undo_all(dev);
-                               up(&pm_devs_lock);
+                               mutex_unlock(&pm_devs_lock);
                                return status;
                        }
                }
                entry = entry->next;
        }
-       up(&pm_devs_lock);
+       mutex_unlock(&pm_devs_lock);
        return 0;
 }