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

Jan Kiszka jan.kiszka at web.de
Sat May 23 18:22:22 CEST 2015


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.

Jan

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dsdt.dsl.xz
Type: application/x-xz
Size: 35272 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20150523/04c70e1b/attachment-0001.xz>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20150523/04c70e1b/attachment-0001.sig>


More information about the Alsa-devel mailing list