On 2015-06-24 10:46, Hui Wang wrote: > On 06/24/2015 01:37 PM, Jan Kiszka wrote: >> On 2015-05-23 18:22, Jan Kiszka wrote: >>> On 2015-05-23 18:06, Raymond Yau wrote: >>>> 2015-5-23 下午4:50 於 "Jan Kiszka" <jan.kis...@web.de> 寫道: >>>>>>>>>>>>>>>> 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? >>>>>> >>>>> I think we all lost track of this issue, but it unfortunately still >>>>> exists in the latest kernel, requiring custom builds here. How can we >>>>> proceed? >>>> http://mailman.alsa-project.org/pipermail/alsa-devel/2015-May/091561.html >>>> >>>> >>>> If you cannot find "SSMS" in your T520 ACPI dump, this mean mute LED >>>> cannot be turn on/off similar to T510 >>> There is an entry (see attached disassembly), but this device has at >>> least no physical LED to drive. > Some hotkey leds are embedded on button. Through the pictures I found > on the internet (thinkpad t520), it looks like there is a led at the > center of the mute button.
Again, I'm on a X121e, and that has only a single physical LED for signaling the power state. The mute button is behind key combination of the keyboard. Jan
signature.asc
Description: OpenPGP digital signature