revert android-tegra-2.6.36-honeycomb-mr1-9001adc to v2.6.36
[firefly-linux-kernel-4.4.55.git] / drivers / power / power_supply_core.c
index 127617195629873befb2966799a8b17aae4221bd..91606bb55318110307e3997bcb61722cd247ee73 100644 (file)
@@ -41,40 +41,23 @@ static int __power_supply_changed_work(struct device *dev, void *data)
 
 static void power_supply_changed_work(struct work_struct *work)
 {
-       unsigned long flags;
        struct power_supply *psy = container_of(work, struct power_supply,
                                                changed_work);
 
        dev_dbg(psy->dev, "%s\n", __func__);
 
-       spin_lock_irqsave(&psy->changed_lock, flags);
-       if (psy->changed) {
-               psy->changed = false;
-               spin_unlock_irqrestore(&psy->changed_lock, flags);
+       class_for_each_device(power_supply_class, NULL, psy,
+                             __power_supply_changed_work);
 
-               class_for_each_device(power_supply_class, NULL, psy,
-                                     __power_supply_changed_work);
+       power_supply_update_leds(psy);
 
-               power_supply_update_leds(psy);
-
-               kobject_uevent(&psy->dev->kobj, KOBJ_CHANGE);
-               spin_lock_irqsave(&psy->changed_lock, flags);
-       }
-       if (!psy->changed)
-               wake_unlock(&psy->work_wake_lock);
-       spin_unlock_irqrestore(&psy->changed_lock, flags);
+       kobject_uevent(&psy->dev->kobj, KOBJ_CHANGE);
 }
 
 void power_supply_changed(struct power_supply *psy)
 {
-       unsigned long flags;
-
        dev_dbg(psy->dev, "%s\n", __func__);
 
-       spin_lock_irqsave(&psy->changed_lock, flags);
-       psy->changed = true;
-       wake_lock(&psy->work_wake_lock);
-       spin_unlock_irqrestore(&psy->changed_lock, flags);
        schedule_work(&psy->changed_work);
 }
 EXPORT_SYMBOL_GPL(power_supply_changed);
@@ -197,8 +180,6 @@ int power_supply_register(struct device *parent, struct power_supply *psy)
                goto device_add_failed;
 
        INIT_WORK(&psy->changed_work, power_supply_changed_work);
-       spin_lock_init(&psy->changed_lock);
-       wake_lock_init(&psy->work_wake_lock, WAKE_LOCK_SUSPEND, "power-supply");
 
        rc = power_supply_create_triggers(psy);
        if (rc)
@@ -209,7 +190,6 @@ int power_supply_register(struct device *parent, struct power_supply *psy)
        goto success;
 
 create_triggers_failed:
-       wake_lock_destroy(&psy->work_wake_lock);
        device_unregister(psy->dev);
 kobject_set_name_failed:
 device_add_failed:
@@ -223,7 +203,6 @@ void power_supply_unregister(struct power_supply *psy)
 {
        flush_scheduled_work();
        power_supply_remove_triggers(psy);
-       wake_lock_destroy(&psy->work_wake_lock);
        device_unregister(psy->dev);
 }
 EXPORT_SYMBOL_GPL(power_supply_unregister);