hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/sound/pci/hda/thinkpad_helper.c
....@@ -6,10 +6,7 @@
66 #if IS_ENABLED(CONFIG_THINKPAD_ACPI)
77
88 #include <linux/acpi.h>
9
-#include <linux/thinkpad_acpi.h>
10
-
11
-static int (*led_set_func)(int, bool);
12
-static void (*old_vmaster_hook)(void *, int);
9
+#include <linux/leds.h>
1310
1411 static bool is_thinkpad(struct hda_codec *codec)
1512 {
....@@ -18,55 +15,14 @@
1815 acpi_dev_found("IBM0068"));
1916 }
2017
21
-static void update_tpacpi_mute_led(void *private_data, int enabled)
22
-{
23
- if (old_vmaster_hook)
24
- old_vmaster_hook(private_data, enabled);
25
-
26
- if (led_set_func)
27
- led_set_func(TPACPI_LED_MUTE, !enabled);
28
-}
29
-
30
-static void update_tpacpi_micmute(struct hda_codec *codec)
31
-{
32
- struct hda_gen_spec *spec = codec->spec;
33
-
34
- led_set_func(TPACPI_LED_MICMUTE, spec->micmute_led.led_value);
35
-}
36
-
3718 static void hda_fixup_thinkpad_acpi(struct hda_codec *codec,
3819 const struct hda_fixup *fix, int action)
3920 {
40
- struct hda_gen_spec *spec = codec->spec;
41
- bool removefunc = false;
42
-
4321 if (action == HDA_FIXUP_ACT_PROBE) {
4422 if (!is_thinkpad(codec))
4523 return;
46
- if (!led_set_func)
47
- led_set_func = symbol_request(tpacpi_led_set);
48
- if (!led_set_func) {
49
- codec_warn(codec,
50
- "Failed to find thinkpad-acpi symbol tpacpi_led_set\n");
51
- return;
52
- }
53
-
54
- removefunc = true;
55
- if (led_set_func(TPACPI_LED_MUTE, false) >= 0) {
56
- old_vmaster_hook = spec->vmaster_mute.hook;
57
- spec->vmaster_mute.hook = update_tpacpi_mute_led;
58
- removefunc = false;
59
- }
60
- if (led_set_func(TPACPI_LED_MICMUTE, false) >= 0 &&
61
- !snd_hda_gen_add_micmute_led(codec,
62
- update_tpacpi_micmute))
63
- removefunc = false;
64
- }
65
-
66
- if (led_set_func && (action == HDA_FIXUP_ACT_FREE || removefunc)) {
67
- symbol_put(tpacpi_led_set);
68
- led_set_func = NULL;
69
- old_vmaster_hook = NULL;
24
+ snd_hda_gen_add_mute_led_cdev(codec, NULL);
25
+ snd_hda_gen_add_micmute_led_cdev(codec, NULL);
7026 }
7127 }
7228