aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/leds/led-triggers.c
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2016-03-08 17:08:36 -0500
committerJacek Anaszewski <j.anaszewski@samsung.com>2016-03-14 04:22:23 -0400
commit7296c33ed12ef13de50e03c76643382123766f96 (patch)
tree0e638f9b24d7ca375cdbfb323689626f2c21ed1d /drivers/leds/led-triggers.c
parent1c430f90216d00b7db13abe306d4f7fac9c6869f (diff)
leds: triggers: simplify led_trigger_store
led_trigger_store can be significantly simplified by using sysfs_streq(). Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Diffstat (limited to 'drivers/leds/led-triggers.c')
-rw-r--r--drivers/leds/led-triggers.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index e1e933424ac9..2181581795d3 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -34,9 +34,7 @@ ssize_t led_trigger_store(struct device *dev, struct device_attribute *attr,
34 const char *buf, size_t count) 34 const char *buf, size_t count)
35{ 35{
36 struct led_classdev *led_cdev = dev_get_drvdata(dev); 36 struct led_classdev *led_cdev = dev_get_drvdata(dev);
37 char trigger_name[TRIG_NAME_MAX];
38 struct led_trigger *trig; 37 struct led_trigger *trig;
39 size_t len;
40 int ret = count; 38 int ret = count;
41 39
42 mutex_lock(&led_cdev->led_access); 40 mutex_lock(&led_cdev->led_access);
@@ -46,21 +44,14 @@ ssize_t led_trigger_store(struct device *dev, struct device_attribute *attr,
46 goto unlock; 44 goto unlock;
47 } 45 }
48 46
49 trigger_name[sizeof(trigger_name) - 1] = '\0'; 47 if (sysfs_streq(buf, "none")) {
50 strncpy(trigger_name, buf, sizeof(trigger_name) - 1);
51 len = strlen(trigger_name);
52
53 if (len && trigger_name[len - 1] == '\n')
54 trigger_name[len - 1] = '\0';
55
56 if (!strcmp(trigger_name, "none")) {
57 led_trigger_remove(led_cdev); 48 led_trigger_remove(led_cdev);
58 goto unlock; 49 goto unlock;
59 } 50 }
60 51
61 down_read(&triggers_list_lock); 52 down_read(&triggers_list_lock);
62 list_for_each_entry(trig, &trigger_list, next_trig) { 53 list_for_each_entry(trig, &trigger_list, next_trig) {
63 if (!strcmp(trigger_name, trig->name)) { 54 if (sysfs_streq(buf, trig->name)) {
64 down_write(&led_cdev->trigger_lock); 55 down_write(&led_cdev->trigger_lock);
65 led_trigger_set(led_cdev, trig); 56 led_trigger_set(led_cdev, trig);
66 up_write(&led_cdev->trigger_lock); 57 up_write(&led_cdev->trigger_lock);