mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 10:45:49 +00:00
leds: trigger: Add led_mc_trigger_event() function
Add a new led_mc_trigger_event() function for triggers which want to change the color of a multi-color LED based on their trigger conditions. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Jacek Anaszewski <jacek.anaszewski@gmail.com> Reviewed-by: Andy Shevchenko <andy@kernel.org> Link: https://lore.kernel.org/r/20240531114124.45346-6-hdegoede@redhat.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
5607ca92e6
commit
0921a57c91
@ -396,6 +396,26 @@ void led_trigger_event(struct led_trigger *trig,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(led_trigger_event);
|
||||
|
||||
void led_mc_trigger_event(struct led_trigger *trig,
|
||||
unsigned int *intensity_value, unsigned int num_colors,
|
||||
enum led_brightness brightness)
|
||||
{
|
||||
struct led_classdev *led_cdev;
|
||||
|
||||
if (!trig)
|
||||
return;
|
||||
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(led_cdev, &trig->led_cdevs, trig_list) {
|
||||
if (!(led_cdev->flags & LED_MULTI_COLOR))
|
||||
continue;
|
||||
|
||||
led_mc_set_brightness(led_cdev, intensity_value, num_colors, brightness);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(led_mc_trigger_event);
|
||||
|
||||
static void led_trigger_blink_setup(struct led_trigger *trig,
|
||||
unsigned long delay_on,
|
||||
unsigned long delay_off,
|
||||
|
@ -510,6 +510,9 @@ void led_trigger_register_simple(const char *name,
|
||||
struct led_trigger **trigger);
|
||||
void led_trigger_unregister_simple(struct led_trigger *trigger);
|
||||
void led_trigger_event(struct led_trigger *trigger, enum led_brightness event);
|
||||
void led_mc_trigger_event(struct led_trigger *trig,
|
||||
unsigned int *intensity_value, unsigned int num_colors,
|
||||
enum led_brightness brightness);
|
||||
void led_trigger_blink(struct led_trigger *trigger, unsigned long delay_on,
|
||||
unsigned long delay_off);
|
||||
void led_trigger_blink_oneshot(struct led_trigger *trigger,
|
||||
@ -552,6 +555,9 @@ static inline void led_trigger_register_simple(const char *name,
|
||||
static inline void led_trigger_unregister_simple(struct led_trigger *trigger) {}
|
||||
static inline void led_trigger_event(struct led_trigger *trigger,
|
||||
enum led_brightness event) {}
|
||||
static inline void led_mc_trigger_event(struct led_trigger *trig,
|
||||
unsigned int *intensity_value, unsigned int num_colors,
|
||||
enum led_brightness brightness) {}
|
||||
static inline void led_trigger_blink(struct led_trigger *trigger,
|
||||
unsigned long delay_on,
|
||||
unsigned long delay_off) {}
|
||||
|
Loading…
Reference in New Issue
Block a user