leds: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. Cc: Richard Purdie <rpurdie@rpsys.net> Cc: Pavel Machek <pavel@ucw.cz> Cc: Willy Tarreau <w@1wt.eu> Cc: linux-leds@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
This commit is contained in:
parent
3f3d60d625
commit
49404665b9
|
@ -45,9 +45,9 @@ static int __led_set_brightness_blocking(struct led_classdev *led_cdev,
|
|||
return led_cdev->brightness_set_blocking(led_cdev, value);
|
||||
}
|
||||
|
||||
static void led_timer_function(unsigned long data)
|
||||
static void led_timer_function(struct timer_list *t)
|
||||
{
|
||||
struct led_classdev *led_cdev = (void *)data;
|
||||
struct led_classdev *led_cdev = from_timer(led_cdev, t, blink_timer);
|
||||
unsigned long brightness;
|
||||
unsigned long delay;
|
||||
|
||||
|
@ -178,8 +178,7 @@ void led_init_core(struct led_classdev *led_cdev)
|
|||
{
|
||||
INIT_WORK(&led_cdev->set_brightness_work, set_brightness_delayed);
|
||||
|
||||
setup_timer(&led_cdev->blink_timer, led_timer_function,
|
||||
(unsigned long)led_cdev);
|
||||
timer_setup(&led_cdev->blink_timer, led_timer_function, 0);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(led_init_core);
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ static int panic_detected;
|
|||
|
||||
struct activity_data {
|
||||
struct timer_list timer;
|
||||
struct led_classdev *led_cdev;
|
||||
u64 last_used;
|
||||
u64 last_boot;
|
||||
int time_left;
|
||||
|
@ -31,10 +32,11 @@ struct activity_data {
|
|||
int invert;
|
||||
};
|
||||
|
||||
static void led_activity_function(unsigned long data)
|
||||
static void led_activity_function(struct timer_list *t)
|
||||
{
|
||||
struct led_classdev *led_cdev = (struct led_classdev *)data;
|
||||
struct activity_data *activity_data = led_cdev->trigger_data;
|
||||
struct activity_data *activity_data = from_timer(activity_data, t,
|
||||
timer);
|
||||
struct led_classdev *led_cdev = activity_data->led_cdev;
|
||||
struct timespec boot_time;
|
||||
unsigned int target;
|
||||
unsigned int usage;
|
||||
|
@ -195,11 +197,11 @@ static void activity_activate(struct led_classdev *led_cdev)
|
|||
return;
|
||||
}
|
||||
|
||||
setup_timer(&activity_data->timer,
|
||||
led_activity_function, (unsigned long)led_cdev);
|
||||
activity_data->led_cdev = led_cdev;
|
||||
timer_setup(&activity_data->timer, led_activity_function, 0);
|
||||
if (!led_cdev->blink_brightness)
|
||||
led_cdev->blink_brightness = led_cdev->max_brightness;
|
||||
led_activity_function(activity_data->timer.data);
|
||||
led_activity_function(&activity_data->timer);
|
||||
set_bit(LED_BLINK_SW, &led_cdev->work_flags);
|
||||
led_cdev->activated = true;
|
||||
}
|
||||
|
|
|
@ -33,12 +33,14 @@ struct transient_trig_data {
|
|||
int restore_state;
|
||||
unsigned long duration;
|
||||
struct timer_list timer;
|
||||
struct led_classdev *led_cdev;
|
||||
};
|
||||
|
||||
static void transient_timer_function(unsigned long data)
|
||||
static void transient_timer_function(struct timer_list *t)
|
||||
{
|
||||
struct led_classdev *led_cdev = (struct led_classdev *) data;
|
||||
struct transient_trig_data *transient_data = led_cdev->trigger_data;
|
||||
struct transient_trig_data *transient_data =
|
||||
from_timer(transient_data, t, timer);
|
||||
struct led_classdev *led_cdev = transient_data->led_cdev;
|
||||
|
||||
transient_data->activate = 0;
|
||||
led_set_brightness_nosleep(led_cdev, transient_data->restore_state);
|
||||
|
@ -169,6 +171,7 @@ static void transient_trig_activate(struct led_classdev *led_cdev)
|
|||
return;
|
||||
}
|
||||
led_cdev->trigger_data = tdata;
|
||||
tdata->led_cdev = led_cdev;
|
||||
|
||||
rc = device_create_file(led_cdev->dev, &dev_attr_activate);
|
||||
if (rc)
|
||||
|
@ -182,8 +185,7 @@ static void transient_trig_activate(struct led_classdev *led_cdev)
|
|||
if (rc)
|
||||
goto err_out_state;
|
||||
|
||||
setup_timer(&tdata->timer, transient_timer_function,
|
||||
(unsigned long) led_cdev);
|
||||
timer_setup(&tdata->timer, transient_timer_function, 0);
|
||||
led_cdev->activated = true;
|
||||
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue