Re: [V2 PATCH] ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec

From: Hui Wang
Date: Thu Jul 03 2014 - 05:41:05 EST


On 07/03/2014 05:05 PM, Jan Kiszka wrote:
On 2014-07-03 10:59, Hui Wang wrote:
On 07/03/2014 03:04 PM, Jan Kiszka wrote:
On 2014-07-01 11:26, Hui Wang wrote:
On 07/01/2014 03:38 PM, Jan Kiszka wrote:
On 2014-07-01 04:15, Hui Wang wrote:
On 06/30/2014 02:45 PM, Jan Kiszka wrote:
On 2014-06-30 04:04, Hui Wang wrote:
On 06/29/2014 07:33 PM, Jan Kiszka wrote:
On 2013-11-27 07:47, Hui Wang wrote:
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:

1. 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

2. return ACPI_SUCCESS(acpi_get_devices("IBM0068", acpi_check_cb,
&found, NULL)) && found; // same as above

3. if (led_set_func(TPACPI_LED_MUTE, false) >= 0) { //in the
sound/pci/hda/thinkpad_helper.c, hda_fixup_thinkpad_acpi()
...and this

4. 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);


@alexhung,
Do you have any idea why this can affect the power button behavior?


Jan



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/