[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 Jul 1 11:51:20 CEST 2015


On 06/29/2015 08:49 AM, Hui Wang wrote:
> On 06/27/2015 11:03 AM, Raymond Yau 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);
>>>>
>>>>
>> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/platform/x86/thinkpad_acpi.c?id=9a417ec0c9d1f7af5394333411fc4d98adb8761b 
>>
>>
>> It seem that software mute also depend on HAUM and SAUM ACPI interface
>>
>> Seem regression of the above patch is SSMS is not supported
>>
>> https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1450947
>>
>> Which models of thinkpad are tested by the author ?
> A lot, we tested this patch on all Lenovo machines with mute led we 
> have. I need to check the models name and provide them at a later time.

What I can remeber now are x230, x240, x250, L560 and x1
>
>> _______________________________________________
>> 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