aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/leds/led-class.c2
-rw-r--r--drivers/leds/led-triggers.c25
-rw-r--r--drivers/leds/leds-88pm860x.c9
-rw-r--r--drivers/leds/leds-adp5520.c4
-rw-r--r--drivers/leds/leds-bd2802.c10
-rw-r--r--drivers/leds/leds-clevo-mail.c11
-rw-r--r--drivers/leds/leds-cobalt-qube.c11
-rw-r--r--drivers/leds/leds-cobalt-raq.c11
-rw-r--r--drivers/leds/leds-da903x.c10
-rw-r--r--drivers/leds/leds-fsg.c15
-rw-r--r--drivers/leds/leds-gpio.c37
-rw-r--r--drivers/leds/leds-lm355x.c4
-rw-r--r--drivers/leds/leds-lm3642.c12
-rw-r--r--drivers/leds/leds-lp3944.c2
-rw-r--r--drivers/leds/leds-lp5521.c13
-rw-r--r--drivers/leds/leds-lp5523.c24
-rw-r--r--drivers/leds/leds-lt3593.c20
-rw-r--r--drivers/leds/leds-net48xx.c2
-rw-r--r--drivers/leds/leds-netxbig.c2
-rw-r--r--drivers/leds/leds-ns2.c36
-rw-r--r--drivers/leds/leds-pca955x.c2
-rw-r--r--drivers/leds/leds-pwm.c2
-rw-r--r--drivers/leds/leds-rb532.c2
-rw-r--r--drivers/leds/leds-renesas-tpu.c25
-rw-r--r--drivers/leds/leds-ss4200.c2
-rw-r--r--drivers/leds/leds-wm8350.c4
-rw-r--r--drivers/leds/leds-wrap.c2
-rw-r--r--drivers/leds/ledtrig-backlight.c4
-rw-r--r--drivers/leds/ledtrig-gpio.c2
-rw-r--r--include/linux/leds.h17
30 files changed, 164 insertions, 158 deletions
diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
index 48cce18e9d6d..a20752f562bc 100644
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -211,7 +211,7 @@ int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
211 led_trigger_set_default(led_cdev); 211 led_trigger_set_default(led_cdev);
212#endif 212#endif
213 213
214 printk(KERN_DEBUG "Registered led device: %s\n", 214 dev_dbg(parent, "Registered led device: %s\n",
215 led_cdev->name); 215 led_cdev->name);
216 216
217 return 0; 217 return 0;
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index 262eb4193710..3c972b2f9893 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -166,6 +166,19 @@ void led_trigger_set_default(struct led_classdev *led_cdev)
166} 166}
167EXPORT_SYMBOL_GPL(led_trigger_set_default); 167EXPORT_SYMBOL_GPL(led_trigger_set_default);
168 168
169void led_trigger_rename_static(const char *name, struct led_trigger *trig)
170{
171 /* new name must be on a temporary string to prevent races */
172 BUG_ON(name == trig->name);
173
174 down_write(&triggers_list_lock);
175 /* this assumes that trig->name was originaly allocated to
176 * non constant storage */
177 strcpy((char *)trig->name, name);
178 up_write(&triggers_list_lock);
179}
180EXPORT_SYMBOL_GPL(led_trigger_rename_static);
181
169/* LED Trigger Interface */ 182/* LED Trigger Interface */
170 183
171int led_trigger_register(struct led_trigger *trig) 184int led_trigger_register(struct led_trigger *trig)
@@ -300,13 +313,13 @@ void led_trigger_register_simple(const char *name, struct led_trigger **tp)
300 if (err < 0) { 313 if (err < 0) {
301 kfree(trig); 314 kfree(trig);
302 trig = NULL; 315 trig = NULL;
303 printk(KERN_WARNING "LED trigger %s failed to register" 316 pr_warn("LED trigger %s failed to register (%d)\n",
304 " (%d)\n", name, err); 317 name, err);
305 } 318 }
306 } else 319 } else {
307 printk(KERN_WARNING "LED trigger %s failed to register" 320 pr_warn("LED trigger %s failed to register (no memory)\n",
308 " (no memory)\n", name); 321 name);
309 322 }
310 *tp = trig; 323 *tp = trig;
311} 324}
312EXPORT_SYMBOL_GPL(led_trigger_register_simple); 325EXPORT_SYMBOL_GPL(led_trigger_register_simple);
diff --git a/drivers/leds/leds-88pm860x.c b/drivers/leds/leds-88pm860x.c
index b7e8cc0957fc..6be2edd41173 100644
--- a/drivers/leds/leds-88pm860x.c
+++ b/drivers/leds/leds-88pm860x.c
@@ -165,15 +165,13 @@ static int pm860x_led_probe(struct platform_device *pdev)
165 res = platform_get_resource_byname(pdev, IORESOURCE_REG, "control"); 165 res = platform_get_resource_byname(pdev, IORESOURCE_REG, "control");
166 if (!res) { 166 if (!res) {
167 dev_err(&pdev->dev, "No REG resource for control\n"); 167 dev_err(&pdev->dev, "No REG resource for control\n");
168 ret = -ENXIO; 168 return -ENXIO;
169 goto out;
170 } 169 }
171 data->reg_control = res->start; 170 data->reg_control = res->start;
172 res = platform_get_resource_byname(pdev, IORESOURCE_REG, "blink"); 171 res = platform_get_resource_byname(pdev, IORESOURCE_REG, "blink");
173 if (!res) { 172 if (!res) {
174 dev_err(&pdev->dev, "No REG resource for blink\n"); 173 dev_err(&pdev->dev, "No REG resource for blink\n");
175 ret = -ENXIO; 174 return -ENXIO;
176 goto out;
177 } 175 }
178 data->reg_blink = res->start; 176 data->reg_blink = res->start;
179 memset(data->name, 0, MFD_NAME_SIZE); 177 memset(data->name, 0, MFD_NAME_SIZE);
@@ -224,9 +222,6 @@ static int pm860x_led_probe(struct platform_device *pdev)
224 } 222 }
225 pm860x_led_set(&data->cdev, 0); 223 pm860x_led_set(&data->cdev, 0);
226 return 0; 224 return 0;
227out:
228 devm_kfree(&pdev->dev, data);
229 return ret;
230} 225}
231 226
232static int pm860x_led_remove(struct platform_device *pdev) 227static int pm860x_led_remove(struct platform_device *pdev)
diff --git a/drivers/leds/leds-adp5520.c b/drivers/leds/leds-adp5520.c
index dcd9128a51a9..e8072abe76e5 100644
--- a/drivers/leds/leds-adp5520.c
+++ b/drivers/leds/leds-adp5520.c
@@ -5,10 +5,10 @@
5 * 5 *
6 * Loosely derived from leds-da903x: 6 * Loosely derived from leds-da903x:
7 * Copyright (C) 2008 Compulab, Ltd. 7 * Copyright (C) 2008 Compulab, Ltd.
8 * Mike Rapoport <mike@compulab.co.il> 8 * Mike Rapoport <mike@compulab.co.il>
9 * 9 *
10 * Copyright (C) 2006-2008 Marvell International Ltd. 10 * Copyright (C) 2006-2008 Marvell International Ltd.
11 * Eric Miao <eric.miao@marvell.com> 11 * Eric Miao <eric.miao@marvell.com>
12 * 12 *
13 * Licensed under the GPL-2 or later. 13 * Licensed under the GPL-2 or later.
14 */ 14 */
diff --git a/drivers/leds/leds-bd2802.c b/drivers/leds/leds-bd2802.c
index 9abe8de40edd..851517030cc1 100644
--- a/drivers/leds/leds-bd2802.c
+++ b/drivers/leds/leds-bd2802.c
@@ -26,8 +26,8 @@
26#define BD2802_LED_OFFSET 0xa 26#define BD2802_LED_OFFSET 0xa
27#define BD2802_COLOR_OFFSET 0x3 27#define BD2802_COLOR_OFFSET 0x3
28 28
29#define BD2802_REG_CLKSETUP 0x00 29#define BD2802_REG_CLKSETUP 0x00
30#define BD2802_REG_CONTROL 0x01 30#define BD2802_REG_CONTROL 0x01
31#define BD2802_REG_HOURSETUP 0x02 31#define BD2802_REG_HOURSETUP 0x02
32#define BD2802_REG_CURRENT1SETUP 0x03 32#define BD2802_REG_CURRENT1SETUP 0x03
33#define BD2802_REG_CURRENT2SETUP 0x04 33#define BD2802_REG_CURRENT2SETUP 0x04
@@ -93,7 +93,7 @@ struct bd2802_led {
93 * In ADF mode, user can set registers of BD2802GU directly, 93 * In ADF mode, user can set registers of BD2802GU directly,
94 * therefore BD2802GU doesn't enter reset state. 94 * therefore BD2802GU doesn't enter reset state.
95 */ 95 */
96 int adf_on; 96 int adf_on;
97 97
98 enum led_ids led_id; 98 enum led_ids led_id;
99 enum led_colors color; 99 enum led_colors color;
@@ -328,7 +328,7 @@ static ssize_t bd2802_store_reg##reg_addr(struct device *dev, \
328 int ret; \ 328 int ret; \
329 if (!count) \ 329 if (!count) \
330 return -EINVAL; \ 330 return -EINVAL; \
331 ret = strict_strtoul(buf, 16, &val); \ 331 ret = kstrtoul(buf, 16, &val); \
332 if (ret) \ 332 if (ret) \
333 return ret; \ 333 return ret; \
334