cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ledtrig-audio.c (1613B)


      1// SPDX-License-Identifier: GPL-2.0
      2//
      3// Audio Mute LED trigger
      4//
      5
      6#include <linux/kernel.h>
      7#include <linux/leds.h>
      8#include <linux/module.h>
      9#include "../leds.h"
     10
     11static enum led_brightness audio_state[NUM_AUDIO_LEDS];
     12
     13static int ledtrig_audio_mute_activate(struct led_classdev *led_cdev)
     14{
     15	led_set_brightness_nosleep(led_cdev, audio_state[LED_AUDIO_MUTE]);
     16	return 0;
     17}
     18
     19static int ledtrig_audio_micmute_activate(struct led_classdev *led_cdev)
     20{
     21	led_set_brightness_nosleep(led_cdev, audio_state[LED_AUDIO_MICMUTE]);
     22	return 0;
     23}
     24
     25static struct led_trigger ledtrig_audio[NUM_AUDIO_LEDS] = {
     26	[LED_AUDIO_MUTE] = {
     27		.name     = "audio-mute",
     28		.activate = ledtrig_audio_mute_activate,
     29	},
     30	[LED_AUDIO_MICMUTE] = {
     31		.name     = "audio-micmute",
     32		.activate = ledtrig_audio_micmute_activate,
     33	},
     34};
     35
     36enum led_brightness ledtrig_audio_get(enum led_audio type)
     37{
     38	return audio_state[type];
     39}
     40EXPORT_SYMBOL_GPL(ledtrig_audio_get);
     41
     42void ledtrig_audio_set(enum led_audio type, enum led_brightness state)
     43{
     44	audio_state[type] = state;
     45	led_trigger_event(&ledtrig_audio[type], state);
     46}
     47EXPORT_SYMBOL_GPL(ledtrig_audio_set);
     48
     49static int __init ledtrig_audio_init(void)
     50{
     51	led_trigger_register(&ledtrig_audio[LED_AUDIO_MUTE]);
     52	led_trigger_register(&ledtrig_audio[LED_AUDIO_MICMUTE]);
     53	return 0;
     54}
     55module_init(ledtrig_audio_init);
     56
     57static void __exit ledtrig_audio_exit(void)
     58{
     59	led_trigger_unregister(&ledtrig_audio[LED_AUDIO_MUTE]);
     60	led_trigger_unregister(&ledtrig_audio[LED_AUDIO_MICMUTE]);
     61}
     62module_exit(ledtrig_audio_exit);
     63
     64MODULE_DESCRIPTION("LED trigger for audio mute control");
     65MODULE_LICENSE("GPL v2");