lkml.org 
[lkml]   [2014]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [V2 PATCH] ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec
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;
*/
}
if (led_set_func(TPACPI_LED_MICMUTE, false) >= 0) {
/*
if (spec->num_adc_nids > 1)
codec_dbg(codec,
"Skipping micmute LED control due to several ADCs");
else {
spec->cap_sync_hook = update_tpacpi_micmute_led;
removefunc = false;
}
*/
}


If power button can work well, please uncomment one section of the code
to find which section code introduce this problem.

Regards,
Hui.
>
> Jan
>
>



\
 
 \ /
  Last update: 2014-07-03 11:21    [W:0.906 / U:0.328 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site