summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/base/power/main.c5
-rw-r--r--drivers/base/power/power.h5
-rw-r--r--drivers/base/power/resume.c8
-rw-r--r--drivers/base/power/suspend.c10
4 files changed, 0 insertions, 28 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index aad32119cb79..c622902b441b 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -29,7 +29,6 @@ LIST_HEAD(dpm_suspended);
LIST_HEAD(dpm_off);
LIST_HEAD(dpm_off_irq);
-spinlock_t dpm_lock = SPIN_LOCK_UNLOCKED;
DECLARE_MUTEX(dpm_sem);
static struct attribute power_attrs[] = {
@@ -47,9 +46,7 @@ int device_pm_add(struct device * dev)
pr_debug("PM: Adding info for %s:%s\n",
dev->bus ? dev->bus->name : "No Bus", dev->kobj.name);
down(&dpm_sem);
- spin_lock(&dpm_lock);
list_add_tail(&dev->power.entry,&dpm_active);
- spin_unlock(&dpm_lock);
error = sysfs_create_group(&dev->kobj,&pm_attr_group);
up(&dpm_sem);
return error;
@@ -61,8 +58,6 @@ void device_pm_remove(struct device * dev)
dev->bus ? dev->bus->name : "No Bus", dev->kobj.name);
down(&dpm_sem);
sysfs_remove_group(&dev->kobj,&pm_attr_group);
- spin_lock(&dpm_lock);
list_del(&dev->power.entry);
- spin_unlock(&dpm_lock);
up(&dpm_sem);
}
diff --git a/drivers/base/power/power.h b/drivers/base/power/power.h
index 477911caf1ac..728a58e4e99e 100644
--- a/drivers/base/power/power.h
+++ b/drivers/base/power/power.h
@@ -4,11 +4,6 @@
*/
extern struct semaphore dpm_sem;
-/*
- * Used to protect PM lists.
- */
-extern spinlock_t dpm_lock;
-
/*
* The PM lists.
*/
diff --git a/drivers/base/power/resume.c b/drivers/base/power/resume.c
index 37809c79efd7..e95a61c7fa1c 100644
--- a/drivers/base/power/resume.c
+++ b/drivers/base/power/resume.c
@@ -39,17 +39,13 @@ static int resume_device(struct device * dev)
int dpm_resume(void)
{
- spin_lock(&dpm_lock);
while(!list_empty(&dpm_suspended)) {
struct list_head * entry = dpm_suspended.next;
struct device * dev = to_device(entry);
list_del_init(entry);
- spin_unlock(&dpm_lock);
resume_device(dev);
- spin_lock(&dpm_lock);
list_add_tail(entry,&dpm_active);
}
- spin_unlock(&dpm_lock);
return 0;
}
@@ -95,14 +91,12 @@ static void power_up_device(struct device * dev)
void dpm_power_up_irq(void)
{
- spin_lock_irq(&dpm_lock);
while(!list_empty(&dpm_off_irq)) {
struct list_head * entry = dpm_off_irq.next;
list_del_init(entry);
power_up_device(to_device(entry));
list_add_tail(entry,&dpm_suspended);
}
- spin_unlock_irq(&dpm_lock);
}
@@ -116,14 +110,12 @@ void dpm_power_up_irq(void)
void dpm_power_up(void)
{
- spin_lock(&dpm_lock);
while (!list_empty(&dpm_off)) {
struct list_head * entry = dpm_off.next;
list_del_init(entry);
power_up_device(to_device(entry));
list_add_tail(entry,&dpm_suspended);
}
- spin_unlock(&dpm_lock);
}
diff --git a/drivers/base/power/suspend.c b/drivers/base/power/suspend.c
index bec063c21921..cb43a62438a9 100644
--- a/drivers/base/power/suspend.c
+++ b/drivers/base/power/suspend.c
@@ -71,15 +71,12 @@ int device_pm_suspend(u32 state)
int error = 0;
down(&dpm_sem);
- spin_lock(&dpm_lock);
while(!list_empty(&dpm_active)) {
struct list_head * entry = dpm_active.prev;
struct device * dev = to_device(entry);
list_del_init(entry);
- spin_unlock(&dpm_lock);
error = suspend_device(dev,state);
- spin_lock(&dpm_lock);
if (!error)
list_add(entry,&dpm_suspended);
else {
@@ -87,7 +84,6 @@ int device_pm_suspend(u32 state)
goto Error;
}
}
- spin_unlock(&dpm_lock);
if ((error = sysdev_save(state)))
goto Error;
@@ -129,15 +125,12 @@ static int power_down_device(struct device * dev, u32 state)
static int dpm_power_down(u32 state)
{
- spin_lock(&dpm_lock);
while(!list_empty(&dpm_suspended)) {
struct list_head * entry = dpm_suspended.prev;
int error;
list_del_init(entry);
- spin_unlock(&dpm_lock);
error = power_down_device(to_device(entry),state);
- spin_lock(&dpm_lock);
if (!error)
list_add(entry,&dpm_off);
else if (error == -EAGAIN)
@@ -147,7 +140,6 @@ static int dpm_power_down(u32 state)
return error;
}
}
- spin_unlock(&dpm_lock);
return 0;
}
@@ -166,12 +158,10 @@ static int dpm_power_down_irq(u32 state)
struct device * dev;
int error = 0;
- spin_lock_irq(&dpm_lock);
list_for_each_entry_reverse(dev,&dpm_off_irq,power.entry) {
if ((error = power_down_device(dev,state)))
break;
}
- spin_unlock_irq(&dpm_lock);
return error;
}