>>>>>> Most Thinkpad Edge series laptops use conexant codec, so far >>>>>> although
<snip> >>> Is there anything I can debug or any information I can collect >>> from my >>> box to examine this? >> What is the linux distribution on your machine? And use showkey to >> catch >> the keycode of that button. > I'm running OpenSUSE 13.1. The reported keycode of the power > button is > 116. It seems the keycode is correct, it is power keycode rather the mute keycode.
Could you please do some debug, let us find which line of code is
the
root cause for this problem. for example:
after running the line, the problem shows up:
if (ACPI_SUCCESS(acpi_get_devices("LEN0068", acpi_check_cb,
&found, NULL)) && found) // in the sound/pci/hda/thinkpad_helper.c, is_thinkpad()
This evaluates to true
return ACPI_SUCCESS(acpi_get_devices("IBM0068",
acpi_check_cb,
&found, NULL)) && found; // same as above
if (led_set_func(TPACPI_LED_MUTE, false) >= 0) { //in the
sound/pci/hda/thinkpad_helper.c, hda_fixup_thinkpad_acpi()
...and this
- if (led_set_func(TPACPI_LED_MICMUTE, false) >= 0) { // same as
above
...and this as well. spec->num_adc_nids is 1.
If we change the code like below, does the power button can work well?
in the thinkpad_helper.c, hda_fixup_thinkpad_acpi()
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; */
Disabling only this block resolves the issue.
So Below two lines make the power button change to the reset button.
drivers/platform/x86/thinkpad_acpi.c mute_led_on_off():
acpi_get_handle(hkey_handle, "SSMS", &temp); acpi_evalf(hkey_handle, &output, "SSMS", "dd", 1);
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/driver...
It seem that software mute also depend on HAUM and SAUM ACPI interface
Seem regression of the above patch is SSMS is not supported
https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1450947
Which models of thinkpad are tested by the author ?