[alsa-devel] [pulseaudio-discuss] ThinkPad T-510 audio output mute LED non-workingness
Takashi Iwai
tiwai at suse.de
Mon Apr 27 19:12:21 CEST 2015
[Switched Cc to alsa-devel ML, as it's irrelevant from PA but rather a
driver issue.]
At Mon, 27 Apr 2015 07:58:59 -0600,
Glenn Golden wrote:
>
> Takashi Iwai <tiwai at suse.de> [2015-04-27 08:50:34 +0200]:
> >
> > Gah, I hate reports without alsa-info.sh output (not a link to
> > somewhere else).
> >
> > Glenn, please attach alsa-info.sh outputs (run it with --no-upload
> > option) and the whole dmesg output after boot. 3.19 should already
> > contain the hook to thinkpad_acpi.c. If anything is missing, you
> > should have a warning indicating it.
> >
>
> Apologies for the omissions. Both are attached.
Thanks!
> Fwiw -- perhaps nothing at this point -- a good deal of info has also been
> posted to the kernel bugtracker ticket:
>
> https://bugzilla.kernel.org/show_bug.cgi?id=96171
>
> Re: "...you should have a warning indicating it": I'm an unskilled laboror
> here w.r.t. kernel affairs, and not even sure what sort of warnings to be
> looking for, so may have missed something important without realizing it.
> Just let me know what add'l info you need, I'll be happy to post it. I do
> appreciate your attention to the issue.
I see no such warning in the log you attached, so it's not the issue,
as it seems.
Below is a debug patch, and now you should see messages like "XXX ..."
in kernel log at loading the driver. If there is no such a message,
it means that the thinkpad hook isn't built in at all. Please check
the kernel log again with the patch.
Takashi
---
diff --git a/sound/pci/hda/thinkpad_helper.c b/sound/pci/hda/thinkpad_helper.c
index 0a4ad5feb82e..48ce61e46599 100644
--- a/sound/pci/hda/thinkpad_helper.c
+++ b/sound/pci/hda/thinkpad_helper.c
@@ -34,6 +34,7 @@ static void update_tpacpi_mute_led(void *private_data, int enabled)
if (old_vmaster_hook)
old_vmaster_hook(private_data, enabled);
+ pr_info("XXX mute led updated %d\n", enabled);
if (led_set_func)
led_set_func(TPACPI_LED_MUTE, !enabled);
}
@@ -58,8 +59,10 @@ static void hda_fixup_thinkpad_acpi(struct hda_codec *codec,
bool removefunc = false;
if (action == HDA_FIXUP_ACT_PROBE) {
+ codec_info(codec, "XXX hda_fixup_thinkpad_acpi init...\n");
if (!is_thinkpad(codec))
return;
+ codec_info(codec, "XXX ok, this is thinkpad\n");
if (!led_set_func)
led_set_func = symbol_request(tpacpi_led_set);
if (!led_set_func) {
@@ -70,18 +73,24 @@ static void hda_fixup_thinkpad_acpi(struct hda_codec *codec,
removefunc = true;
if (led_set_func(TPACPI_LED_MUTE, false) >= 0) {
+ codec_info(codec, "XXX ok, mute LED is hooked\n");
old_vmaster_hook = spec->vmaster_mute.hook;
spec->vmaster_mute.hook = update_tpacpi_mute_led;
removefunc = false;
+ } else {
+ codec_err(codec, "XXX mute LED NOT WORKING!\n");
}
if (led_set_func(TPACPI_LED_MICMUTE, false) >= 0) {
if (spec->num_adc_nids > 1)
codec_dbg(codec,
"Skipping micmute LED control due to several ADCs");
else {
+ codec_info(codec, "XXX ok, mic LED is hooked\n");
spec->cap_sync_hook = update_tpacpi_micmute_led;
removefunc = false;
}
+ } else {
+ codec_err(codec, "XXX mic LED NOT WORKING!\n");
}
}
More information about the Alsa-devel
mailing list