Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[safe/jmp/linux-2.6] / drivers / power / power_supply_leds.c
index 7232490..031a554 100644 (file)
  *  You may use this code as per GPL version 2
  */
 
+#include <linux/kernel.h>
 #include <linux/power_supply.h>
+#include <linux/slab.h>
+
+#include "power_supply.h"
 
 /* Battery specific LEDs triggers. */
 
@@ -21,7 +25,7 @@ static void power_supply_update_bat_leds(struct power_supply *psy)
        if (psy->get_property(psy, POWER_SUPPLY_PROP_STATUS, &status))
                return;
 
-       dev_dbg(psy->dev, "%s %d\n", __FUNCTION__, status.intval);
+       dev_dbg(psy->dev, "%s %d\n", __func__, status.intval);
 
        switch (status.intval) {
        case POWER_SUPPLY_STATUS_FULL:
@@ -40,36 +44,26 @@ static void power_supply_update_bat_leds(struct power_supply *psy)
                led_trigger_event(psy->full_trig, LED_OFF);
                break;
        }
-
-       return;
 }
 
 static int power_supply_create_bat_triggers(struct power_supply *psy)
 {
        int rc = 0;
 
-       psy->charging_full_trig_name = kmalloc(strlen(psy->name) +
-                                 sizeof("-charging-or-full"), GFP_KERNEL);
+       psy->charging_full_trig_name = kasprintf(GFP_KERNEL,
+                                       "%s-charging-or-full", psy->name);
        if (!psy->charging_full_trig_name)
                goto charging_full_failed;
 
-       psy->charging_trig_name = kmalloc(strlen(psy->name) +
-                                         sizeof("-charging"), GFP_KERNEL);
+       psy->charging_trig_name = kasprintf(GFP_KERNEL,
+                                       "%s-charging", psy->name);
        if (!psy->charging_trig_name)
                goto charging_failed;
 
-       psy->full_trig_name = kmalloc(strlen(psy->name) +
-                                     sizeof("-full"), GFP_KERNEL);
+       psy->full_trig_name = kasprintf(GFP_KERNEL, "%s-full", psy->name);
        if (!psy->full_trig_name)
                goto full_failed;
 
-       strcpy(psy->charging_full_trig_name, psy->name);
-       strcat(psy->charging_full_trig_name, "-charging-or-full");
-       strcpy(psy->charging_trig_name, psy->name);
-       strcat(psy->charging_trig_name, "-charging");
-       strcpy(psy->full_trig_name, psy->name);
-       strcat(psy->full_trig_name, "-full");
-
        led_trigger_register_simple(psy->charging_full_trig_name,
                                    &psy->charging_full_trig);
        led_trigger_register_simple(psy->charging_trig_name,
@@ -97,7 +91,6 @@ static void power_supply_remove_bat_triggers(struct power_supply *psy)
        kfree(psy->full_trig_name);
        kfree(psy->charging_trig_name);
        kfree(psy->charging_full_trig_name);
-       return;
 }
 
 /* Generated power specific LEDs triggers. */
@@ -109,28 +102,22 @@ static void power_supply_update_gen_leds(struct power_supply *psy)
        if (psy->get_property(psy, POWER_SUPPLY_PROP_ONLINE, &online))
                return;
 
-       dev_dbg(psy->dev, "%s %d\n", __FUNCTION__, online.intval);
+       dev_dbg(psy->dev, "%s %d\n", __func__, online.intval);
 
        if (online.intval)
                led_trigger_event(psy->online_trig, LED_FULL);
        else
                led_trigger_event(psy->online_trig, LED_OFF);
-
-       return;
 }
 
 static int power_supply_create_gen_triggers(struct power_supply *psy)
 {
        int rc = 0;
 
-       psy->online_trig_name = kmalloc(strlen(psy->name) + sizeof("-online"),
-                                       GFP_KERNEL);
+       psy->online_trig_name = kasprintf(GFP_KERNEL, "%s-online", psy->name);
        if (!psy->online_trig_name)
                goto online_failed;
 
-       strcpy(psy->online_trig_name, psy->name);
-       strcat(psy->online_trig_name, "-online");
-
        led_trigger_register_simple(psy->online_trig_name, &psy->online_trig);
 
        goto success;
@@ -145,7 +132,6 @@ static void power_supply_remove_gen_triggers(struct power_supply *psy)
 {
        led_trigger_unregister_simple(psy->online_trig);
        kfree(psy->online_trig_name);
-       return;
 }
 
 /* Choice what triggers to create&update. */
@@ -156,7 +142,6 @@ void power_supply_update_leds(struct power_supply *psy)
                power_supply_update_bat_leds(psy);
        else
                power_supply_update_gen_leds(psy);
-       return;
 }
 
 int power_supply_create_triggers(struct power_supply *psy)
@@ -172,5 +157,4 @@ void power_supply_remove_triggers(struct power_supply *psy)
                power_supply_remove_bat_triggers(psy);
        else
                power_supply_remove_gen_triggers(psy);
-       return;
 }