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

From: Jan Kiszka
Date: Sat May 23 2015 - 04:50:19 EST


On 2014-07-03 11:24, Hui Wang wrote:
> 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?
>

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?

Thanks,
Jan


Attachment: signature.asc
Description: OpenPGP digital signature