diff options
author | Heiner Kallweit <hkallweit1@gmail.com> | 2016-03-08 17:08:36 -0500 |
---|---|---|
committer | Jacek Anaszewski <j.anaszewski@samsung.com> | 2016-03-14 04:22:23 -0400 |
commit | 7296c33ed12ef13de50e03c76643382123766f96 (patch) | |
tree | 0e638f9b24d7ca375cdbfb323689626f2c21ed1d /drivers/leds/led-triggers.c | |
parent | 1c430f90216d00b7db13abe306d4f7fac9c6869f (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.c | 13 |
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); |