2015-05-23 16:22:39

by Jan Kiszka

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

On 2015-05-23 18:06, Raymond Yau wrote:
> 2015-5-23 下午4:50 於 "Jan Kiszka" <[email protected]> 寫道:
>>
>>>>>>>>>>>>> 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


Attachments:
dsdt.dsl.xz (34.45 kB)
signature.asc (198.00 B)
OpenPGP digital signature
Download all attachments

2015-06-24 05:37:46

by Jan Kiszka

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

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" <[email protected]> 寫道:
>>>
>>>>>>>>>>>>>> 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
>

Ping...

Jan

2015-06-24 08:47:20

by Hui Wang

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

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" <[email protected]> 寫道:
>>>>>>>>>>>>>>> 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
> [email protected]
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

2015-06-25 11:03:00

by Jan Kiszka

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

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" <[email protected]> 寫道:
>>>>>>>>>>>>>>>> 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



Attachments:
signature.asc (181.00 B)
OpenPGP digital signature

2015-06-26 02:23:05

by Hui Wang

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

On 06/25/2015 07:02 PM, Jan Kiszka wrote:
> 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" <[email protected]> 寫道:
>>>>>>>>>>>>>>>>> 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
There is no reason to change a power button to a reset button after
accessing the acpi device "SSMS", the "SSMS" is for the mute led instead
of the power management.

I think it is better you login to the lenovo website and look for the
latest BIOS image, then upgrade the BIOS on your machine to see if it
can solve the problem or not.
>

2015-06-26 04:07:05

by Jan Kiszka

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

On 2015-06-26 04:22, Hui Wang wrote:
> On 06/25/2015 07:02 PM, Jan Kiszka wrote:
>> 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" <[email protected]> 寫道:
>>>>>>>>>>>>>>>>>> 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
> There is no reason to change a power button to a reset button after
> accessing the acpi device "SSMS", the "SSMS" is for the mute led instead
> of the power management.
>
> I think it is better you login to the lenovo website and look for the
> latest BIOS image, then upgrade the BIOS on your machine to see if it
> can solve the problem or not.

There is no more update since 2013, and I'm using the latest one. The
real bug is likely in the BIOS (it also has some other oddities), but
the trigger was this patch.

I suggested to have a quirk installed for my model - it cannot benefit
from this change anyway. Now I'm waiting for feedback on how to address
this best *in Linux* (because this is what we have under control).

Thanks,
Jan


Attachments:
signature.asc (181.00 B)
OpenPGP digital signature
Subject: Re: [alsa-devel] [V2 PATCH] ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec

On Fri, 26 Jun 2015, Hui Wang wrote:
> >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
> There is no reason to change a power button to a reset button after
> accessing the acpi device "SSMS", the "SSMS" is for the mute led instead of
> the power management.
>
> I think it is better you login to the lenovo website and look for the latest
> BIOS image, then upgrade the BIOS on your machine to see if it can solve the
> problem or not.

Hmm, I think I am missing something here.

Please explain _in detail_ what you mean with "changing a power button to a
reset button by acessing the SSMS ACPI method in a X121e".

Are we trigering a bug somewhere that crashes the x121e and causes it to
reboot?

--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh

2015-06-27 06:00:18

by Jan Kiszka

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

On 2015-06-27 00:49, Henrique de Moraes Holschuh wrote:
> On Fri, 26 Jun 2015, Hui Wang wrote:
>>> 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
>> There is no reason to change a power button to a reset button after
>> accessing the acpi device "SSMS", the "SSMS" is for the mute led instead of
>> the power management.
>>
>> I think it is better you login to the lenovo website and look for the latest
>> BIOS image, then upgrade the BIOS on your machine to see if it can solve the
>> problem or not.
>
> Hmm, I think I am missing something here.
>
> Please explain _in detail_ what you mean with "changing a power button to a
> reset button by acessing the SSMS ACPI method in a X121e".
>
> Are we trigering a bug somewhere that crashes the x121e and causes it to
> reboot?

Well, there aren't much details to describe in this case: When this
patch is applied and I press the power button, the device performs a
hard reset. It doesn't reveal if the kernel crashes catastrophically,
causing a triple fault or so, or if the firmware decides to reset the
platform. Reverting the patch or preventing its effect via a quirk
filter like I posted [1] makes the issue go away.

Jan

[1]
http://mailman.alsa-project.org/pipermail/alsa-devel/2014-June/078284.html


Attachments:
signature.asc (181.00 B)
OpenPGP digital signature
Subject: Re: [alsa-devel] [V2 PATCH] ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec

On Sat, 27 Jun 2015, Jan Kiszka wrote:
> > Please explain _in detail_ what you mean with "changing a power button to a
> > reset button by acessing the SSMS ACPI method in a X121e".
> >
> > Are we trigering a bug somewhere that crashes the x121e and causes it to
> > reboot?
>
> Well, there aren't much details to describe in this case: When this
> patch is applied and I press the power button, the device performs a
> hard reset. It doesn't reveal if the kernel crashes catastrophically,
> causing a triple fault or so, or if the firmware decides to reset the
> platform. Reverting the patch or preventing its effect via a quirk
> filter like I posted [1] makes the issue go away.

Ok, so we crashing the firmware, and on a box that is not likely to get
further updates. Well, this is a pretty clear case: blacklist.

Since calling SSMS in the X121e is unsafe, it needs to be blacklisted in
thinkpad-acpi. I will need dmidecode output for that (please XXX-out UUIDs
and serial numbers in the dmidecode output before you send it to me, but do
keep model numbers intact).

We can also have a blacklist in ALSA to avoid the whole symbol_request() for
something that will have to fail, of course. I leave that for the ALSA
maintainers to decide.

That said, you blacklisted in ALSA by full codec->subsystem_id. Which
thinkpads have the 0x17aa21ec subsystem ID on the codec? Just the x121e?

--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh

2015-06-29 09:06:06

by Takashi Iwai

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

At Sat, 27 Jun 2015 12:50:44 -0300,
Henrique de Moraes Holschuh wrote:
>
> On Sat, 27 Jun 2015, Jan Kiszka wrote:
> > > Please explain _in detail_ what you mean with "changing a power button to a
> > > reset button by acessing the SSMS ACPI method in a X121e".
> > >
> > > Are we trigering a bug somewhere that crashes the x121e and causes it to
> > > reboot?
> >
> > Well, there aren't much details to describe in this case: When this
> > patch is applied and I press the power button, the device performs a
> > hard reset. It doesn't reveal if the kernel crashes catastrophically,
> > causing a triple fault or so, or if the firmware decides to reset the
> > platform. Reverting the patch or preventing its effect via a quirk
> > filter like I posted [1] makes the issue go away.
>
> Ok, so we crashing the firmware, and on a box that is not likely to get
> further updates. Well, this is a pretty clear case: blacklist.
>
> Since calling SSMS in the X121e is unsafe, it needs to be blacklisted in
> thinkpad-acpi. I will need dmidecode output for that (please XXX-out UUIDs
> and serial numbers in the dmidecode output before you send it to me, but do
> keep model numbers intact).
>
> We can also have a blacklist in ALSA to avoid the whole symbol_request() for
> something that will have to fail, of course. I leave that for the ALSA
> maintainers to decide.

IMO, it's simpler to just leave the decision in thinkpad_acpi.

> That said, you blacklisted in ALSA by full codec->subsystem_id. Which
> thinkpads have the 0x17aa21ec subsystem ID on the codec? Just the x121e?

It's not guaranteed, but Lenovo doesn't share the same PCI SSID for
multiple models, AFAIK.


thanks,

Takashi