aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/leds/trigger/ledtrig-timer.c
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2018-07-02 16:05:21 -0400
committerJacek Anaszewski <jacek.anaszewski@gmail.com>2018-07-05 17:21:10 -0400
commit2282e125a406e09331c5a785e3df29035c99a607 (patch)
treeb5936ee2bde7c85bf71aaff259026857b2bda6d9 /drivers/leds/trigger/ledtrig-timer.c
parent033692eb3ec8305f6e9998b297aaec6899680637 (diff)
leds: triggers: let struct led_trigger::activate() return an error code
Given that activating a trigger can fail, let the callback return an indication. This prevents to have a trigger active according to the "trigger" sysfs attribute but not functional. All users are changed accordingly to return 0 for now. There is no intended change in behaviour. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Diffstat (limited to 'drivers/leds/trigger/ledtrig-timer.c')
-rw-r--r--drivers/leds/trigger/ledtrig-timer.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/leds/trigger/ledtrig-timer.c b/drivers/leds/trigger/ledtrig-timer.c
index 10fc0966b0e3..527055d815ad 100644
--- a/drivers/leds/trigger/ledtrig-timer.c
+++ b/drivers/leds/trigger/ledtrig-timer.c
@@ -70,7 +70,7 @@ static ssize_t led_delay_off_store(struct device *dev,
70static DEVICE_ATTR(delay_on, 0644, led_delay_on_show, led_delay_on_store); 70static DEVICE_ATTR(delay_on, 0644, led_delay_on_show, led_delay_on_store);
71static DEVICE_ATTR(delay_off, 0644, led_delay_off_show, led_delay_off_store); 71static DEVICE_ATTR(delay_off, 0644, led_delay_off_show, led_delay_off_store);
72 72
73static void timer_trig_activate(struct led_classdev *led_cdev) 73static int timer_trig_activate(struct led_classdev *led_cdev)
74{ 74{
75 int rc; 75 int rc;
76 76
@@ -78,7 +78,7 @@ static void timer_trig_activate(struct led_classdev *led_cdev)
78 78
79 rc = device_create_file(led_cdev->dev, &dev_attr_delay_on); 79 rc = device_create_file(led_cdev->dev, &dev_attr_delay_on);
80 if (rc) 80 if (rc)
81 return; 81 return 0;
82 rc = device_create_file(led_cdev->dev, &dev_attr_delay_off); 82 rc = device_create_file(led_cdev->dev, &dev_attr_delay_off);
83 if (rc) 83 if (rc)
84 goto err_out_delayon; 84 goto err_out_delayon;
@@ -87,10 +87,12 @@ static void timer_trig_activate(struct led_classdev *led_cdev)
87 &led_cdev->blink_delay_off); 87 &led_cdev->blink_delay_off);
88 led_cdev->activated = true; 88 led_cdev->activated = true;
89 89
90 return; 90 return 0;
91 91
92err_out_delayon: 92err_out_delayon:
93 device_remove_file(led_cdev->dev, &dev_attr_delay_on); 93 device_remove_file(led_cdev->dev, &dev_attr_delay_on);
94
95 return 0;
94} 96}
95 97
96static void timer_trig_deactivate(struct led_classdev *led_cdev) 98static void timer_trig_deactivate(struct led_classdev *led_cdev)