From 2f7c68cb55ecb7331f2381deb497c27155f32faf Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 03 Jan 2024 09:43:39 +0000 Subject: [PATCH] update kernel to 5.10.198 --- kernel/sound/pci/hda/thinkpad_helper.c | 50 +++----------------------------------------------- 1 files changed, 3 insertions(+), 47 deletions(-) diff --git a/kernel/sound/pci/hda/thinkpad_helper.c b/kernel/sound/pci/hda/thinkpad_helper.c index 568575b..6698ae2 100644 --- a/kernel/sound/pci/hda/thinkpad_helper.c +++ b/kernel/sound/pci/hda/thinkpad_helper.c @@ -6,10 +6,7 @@ #if IS_ENABLED(CONFIG_THINKPAD_ACPI) #include <linux/acpi.h> -#include <linux/thinkpad_acpi.h> - -static int (*led_set_func)(int, bool); -static void (*old_vmaster_hook)(void *, int); +#include <linux/leds.h> static bool is_thinkpad(struct hda_codec *codec) { @@ -18,55 +15,14 @@ acpi_dev_found("IBM0068")); } -static void update_tpacpi_mute_led(void *private_data, int enabled) -{ - if (old_vmaster_hook) - old_vmaster_hook(private_data, enabled); - - if (led_set_func) - led_set_func(TPACPI_LED_MUTE, !enabled); -} - -static void update_tpacpi_micmute(struct hda_codec *codec) -{ - struct hda_gen_spec *spec = codec->spec; - - led_set_func(TPACPI_LED_MICMUTE, spec->micmute_led.led_value); -} - static void hda_fixup_thinkpad_acpi(struct hda_codec *codec, const struct hda_fixup *fix, int action) { - struct hda_gen_spec *spec = codec->spec; - bool removefunc = false; - if (action == HDA_FIXUP_ACT_PROBE) { if (!is_thinkpad(codec)) return; - if (!led_set_func) - led_set_func = symbol_request(tpacpi_led_set); - if (!led_set_func) { - codec_warn(codec, - "Failed to find thinkpad-acpi symbol tpacpi_led_set\n"); - return; - } - - removefunc = true; - if (led_set_func(TPACPI_LED_MUTE, false) >= 0) { - old_vmaster_hook = spec->vmaster_mute.hook; - spec->vmaster_mute.hook = update_tpacpi_mute_led; - removefunc = false; - } - if (led_set_func(TPACPI_LED_MICMUTE, false) >= 0 && - !snd_hda_gen_add_micmute_led(codec, - update_tpacpi_micmute)) - removefunc = false; - } - - if (led_set_func && (action == HDA_FIXUP_ACT_FREE || removefunc)) { - symbol_put(tpacpi_led_set); - led_set_func = NULL; - old_vmaster_hook = NULL; + snd_hda_gen_add_mute_led_cdev(codec, NULL); + snd_hda_gen_add_micmute_led_cdev(codec, NULL); } } -- Gitblit v1.6.2