Messages in this thread | | | Date | Thu, 03 Jul 2014 17:24:22 +0800 | From | Hui Wang <> | Subject | Re: [V2 PATCH] ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec |
| |
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 > >
| |