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

Hui Wang hui.wang at canonical.com
Wed Jun 24 10:46:56 CEST 2015


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


Jan

> Ping...
>
> Jan
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



More information about the Alsa-devel mailing list