diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-01-14 13:39:16 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-01-14 13:39:20 +0100 |
commit | 50da59975f32e46d1208a348dbfa52849f602ecd (patch) | |
tree | 14e1f150933fe74866686c6ae811f3248caa36d0 /drivers/led | |
parent | 1431f4a7fc315553628b5f762abcc7b8e16e7159 (diff) | |
download | barebox-50da59975f32e46d1208a348dbfa52849f602ecd.tar.gz barebox-50da59975f32e46d1208a348dbfa52849f602ecd.tar.xz |
led: test for led->set callback before calling it
Registering a LED can fail. If someone calls led_set for such
a LED no set function will be there. Fail gracefully in this
case.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/led')
-rw-r--r-- | drivers/led/core.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/led/core.c b/drivers/led/core.c index 46123bc34f..8537aa15ea 100644 --- a/drivers/led/core.c +++ b/drivers/led/core.c @@ -106,6 +106,9 @@ int led_set(struct led *led, unsigned int value) if (value > led->max_value) value = led->max_value; + if (!led->set) + return -ENODEV; + led->set(led, value); return 0; |