Re: [alsa-devel] [V2 PATCH] ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec
From: Jan Kiszka
Date: Thu Jun 25 2015 - 07:03:02 EST
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.kiszka@xxxxxx> åéï
>>>>>>>>>>>>>>>> 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
Attachment:
signature.asc
Description: OpenPGP digital signature