forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
leds: trigger: Introduce audio mute LED trigger
This patch adds a new LED trigger for coupling the audio mixer change with the LED on laptops or other devices. Currently there are two trigger types, "audio-mute" and "audio-micmute". The audio driver triggers the LED brightness change via ledtrig_audio_set() call with the proper type (either mute or mic-mute). OTOH, the consumers may call ledtrig_audio_get() for the initial brightness value that may have been set by the audio driver beforehand. This new stuff will be used by HD-audio codec driver and some platform drivers (thinkpad_acpi and dell-laptop, also upcoming huawei-wmi). Acked-by: Jacek Anaszewski <[email protected]> Acked-by: Pavel Machek <[email protected]> Acked-by: Pali Rohár <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
- Loading branch information
Showing
4 changed files
with
72 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
// | ||
// Audio Mute LED trigger | ||
// | ||
|
||
#include <linux/kernel.h> | ||
#include <linux/leds.h> | ||
#include <linux/module.h> | ||
|
||
static struct led_trigger *ledtrig_audio[NUM_AUDIO_LEDS]; | ||
static enum led_brightness audio_state[NUM_AUDIO_LEDS]; | ||
|
||
enum led_brightness ledtrig_audio_get(enum led_audio type) | ||
{ | ||
return audio_state[type]; | ||
} | ||
EXPORT_SYMBOL_GPL(ledtrig_audio_get); | ||
|
||
void ledtrig_audio_set(enum led_audio type, enum led_brightness state) | ||
{ | ||
audio_state[type] = state; | ||
led_trigger_event(ledtrig_audio[type], state); | ||
} | ||
EXPORT_SYMBOL_GPL(ledtrig_audio_set); | ||
|
||
static int __init ledtrig_audio_init(void) | ||
{ | ||
led_trigger_register_simple("audio-mute", | ||
&ledtrig_audio[LED_AUDIO_MUTE]); | ||
led_trigger_register_simple("audio-micmute", | ||
&ledtrig_audio[LED_AUDIO_MICMUTE]); | ||
return 0; | ||
} | ||
module_init(ledtrig_audio_init); | ||
|
||
static void __exit ledtrig_audio_exit(void) | ||
{ | ||
led_trigger_unregister_simple(ledtrig_audio[LED_AUDIO_MUTE]); | ||
led_trigger_unregister_simple(ledtrig_audio[LED_AUDIO_MICMUTE]); | ||
} | ||
module_exit(ledtrig_audio_exit); | ||
|
||
MODULE_DESCRIPTION("LED trigger for audio mute control"); | ||
MODULE_LICENSE("GPL v2"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters