At Wed, 17 Jul 2013 01:23:29 +0200, Tormen wrote:
Dear Takashi,
On 16/07/13 21:24, Takashi Iwai wrote:
At Tue, 16 Jul 2013 20:37:19 +0200, Tormen wrote:
On 16/07/13 11:15, Takashi Iwai wrote:
It doesn't look like the driver patched properly. Try to put some printk() in the patched code path to confirm that you're really testing the patched driver.
Takashi
I am not 100% sure if it was or not, because I had applied the patch not with "quilt" ... but now I am: I put in some printk()'s and it still shows speaker_outs=0 :(
This doesn't matter at all from the beginning. You see a line "line_outs=1 (type: speaker)" before that. So, the speaker output is assigned as the primary output there.
The problem is, instead, that the primary DAC (thus its selector widget) is assigned to the headphone. Check whether NID 0x0c is assigned to "Speaker" volume, not for "Headphone". The no_primary_hp flag should have achieved it, but it turned out that 5.1 surround setup blocks it. That's why you got "Headphone" on NID 0x0c, and 0x0d/0x0e for the rest speaker and possible surrounds.
The new flag, no_multi_io prevents the creation of 5.1 setup, so that the speaker will be assigned to NID 0x0c, together with the combination of no_primary_hp.
I was wondering if it's a problem that the speaker_outs=0 is printed way before all the "fill_and_eval_dacs" changes of yours are executed?
I attached you my patch so that you can see what output corresponds to what piece of code.
alsa-info.sh: http://www.alsa-project.org/db/?f=c644b65a9e25fd1cef5b4b53d6d806d45526e5b2
And the complete output of my debug messages:
FIRST just loading the modules: modprobe snd debug=2 modprobe snd_hda_intel
[10263.731133] snd_hda_intel 0000:00:1b.0: irq 45 for MSI/MSI-X [10263.747274] Tormen: alc882_fixup_no_primary_hp: AAA [10263.750059] Tormen: alc882_fixup_no_primary_hp: BBB ==> set spec->no_multi_io = 1
OK, so far, so good. Check whether NID 0x0c is assigned to "Speaker".
I would have to look how to do that.
[10263.752896] hda_codec: ALC889: SKU not ready 0x411111f0 [10263.755938] ALSA hda_auto_parser.c:335 autoconfig: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker [10263.758707] ALSA hda_auto_parser.c:339 speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [10263.761476] ALSA hda_auto_parser.c:343 hp_outs=1 (0x15/0x0/0x0/0x0/0x0) [10263.764246] ALSA hda_auto_parser.c:344 mono: mono_out=0x0 [10263.767028] ALSA hda_auto_parser.c:348 inputs: [10263.769908] ALSA hda_auto_parser.c:352 Mic=0x18 [10263.772632] ALSA hda_auto_parser.c:352 Mic=0x19 [10263.775354] ALSA hda_auto_parser.c:352 Internal Mic=0x12
And this didn't work? Did you adjust the mixer element again? Since this changes the mixer configuration, some new mixer element may come up. Give alsa-info.sh output at this moment, please.
Sure:
http://www.alsa-project.org/db/?f=c8e8a56c21101322df1f5d847f8d1a37c7d44baf
< Master > Headphone Speaker Surround Center LFE Mic Mic Boost Mic 1 Mic Boost 1 Beep Auto-Mute Mode Enabled Channel Mode 2ch
echo "multi_io = no"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/hwC0D0/hints
echo "1"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/hwC0D0/reconfigure
http://www.alsa-project.org/db/?f=8494525c7988dc528a45cc1e45134666f3793d7a
< Master > Headphone Speaker Mic Mic Boost Mic 1 Mic Boost 1 Beep Auto-Mute Mode Enabled
AT THIS POINT IT WORKED !
But not automatically though ?! I have to manually put in the hint.
Hm, so something clears the flag again (or prevents the flag working). Could you try to figure out when and where no_multi_io flag is set and cleared, e.g. by adding printk()s in the code path?
thanks,
Takashi
Tormen.
[10263.778038] ALSA patch_realtek.c:466 realtek: No valid SSID, checking pincfg 0x411111f0 for NID 0x1d [10263.780832] ALSA patch_realtek.c:549 realtek: Enable default setup for auto mode as fallback [10263.783693] Tormen: parse_user_hints: val (from 'multi_io') == '-2' [10263.786078] Tormen: fill_and_eval_dacs: 111 spec->no_multi_io == '0' [10263.787634] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10263.789531] Tormen: fill_and_eval_dacs: DDD [10263.790957] Tormen: fill_and_eval_dacs: 111 spec->no_multi_io == '0' [10263.792364] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10263.793749] Tormen: fill_and_eval_dacs: DDD [10263.795150] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10263.796546] Tormen: fill_and_eval_dacs: DDD [10263.797932] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10263.799363] Tormen: fill_and_eval_dacs: DDD [10263.800759] Tormen: fill_and_eval_dacs: 111 spec->no_multi_io == '0' [10263.802161] Tormen: fill_and_eval_dacs: AAA [10263.804110] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10263.805609] Tormen: fill_and_eval_dacs: BBB [10263.807265] Tormen: fill_and_eval_dacs: CCC [10263.810445] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input25 [10263.812063] Tormen: alc882_fixup_no_primary_hp: AAA [10263.818856] Tormen: alc882_fixup_no_primary_hp: AAA [10263.820812] Tormen: alc882_fixup_no_primary_hp: AAA [10263.822315] input: HDA Intel MID Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input26 [10263.823905] input: HDA Intel MID Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input27 [10263.825607] input: HDA Intel MID Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input28
THEN with manual set multi_io = yes:
No, you need to set multi_io=no, as mentioned.
Takashi
echo "multi_io = yes"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/hwC0D0/hints
echo "1" >/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/hwC0D0/reconfig
[10462.452100] ALSA hda_hwdep.c:221 hda-codec: reconfiguring [10462.614742] Tormen: alc882_fixup_no_primary_hp: AAA [10462.618508] Tormen: alc882_fixup_no_primary_hp: AAA [10462.620912] Tormen: alc882_fixup_no_primary_hp: BBB ==> set spec->no_multi_io = 1 [10462.623365] hda_codec: ALC889: SKU not ready 0x411111f0 [10462.626209] ALSA hda_auto_parser.c:335 autoconfig: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker [10462.628736] ALSA hda_auto_parser.c:339 speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [10462.631345] ALSA hda_auto_parser.c:343 hp_outs=1 (0x15/0x0/0x0/0x0/0x0) [10462.633911] ALSA hda_auto_parser.c:344 mono: mono_out=0x0 [10462.636543] ALSA hda_auto_parser.c:348 inputs: [10462.639122] ALSA hda_auto_parser.c:352 Mic=0x18 [10462.640323] ALSA hda_auto_parser.c:352 Mic=0x19 [10462.641419] ALSA hda_auto_parser.c:352 Internal Mic=0x12 [10462.642554] ALSA patch_realtek.c:466 realtek: No valid SSID, checking pincfg 0x411111f0 for NID 0x1d [10462.643700] ALSA patch_realtek.c:549 realtek: Enable default setup for auto mode as fallback [10462.644841] Tormen: parse_user_hints: val (from 'multi_io') == '1' [10462.645988] Tormen: parse_user_hints: spec->no_multi_io == '1' [10462.647186] Tormen: fill_and_eval_dacs: 111 spec->no_multi_io == '0' [10462.648520] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10462.649847] Tormen: fill_and_eval_dacs: DDD [10462.651038] Tormen: fill_and_eval_dacs: 111 spec->no_multi_io == '0' [10462.652201] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10462.653352] Tormen: fill_and_eval_dacs: DDD [10462.654522] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10462.655673] Tormen: fill_and_eval_dacs: DDD [10462.656804] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10462.657944] Tormen: fill_and_eval_dacs: DDD [10462.659122] Tormen: fill_and_eval_dacs: 111 spec->no_multi_io == '0' [10462.660266] Tormen: fill_and_eval_dacs: AAA [10462.661392] Tormen: fill_and_eval_dacs: 222 spec->no_multi_io == '0' [10462.662576] Tormen: fill_and_eval_dacs: BBB [10462.664050] Tormen: fill_and_eval_dacs: CCC [10462.665700] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input29 [10462.667026] Tormen: alc882_fixup_no_primary_hp: AAA [10462.673168] Tormen: alc882_fixup_no_primary_hp: AAA [10462.674864] Tormen: alc882_fixup_no_primary_hp: AAA [10462.675957] input: HDA Intel MID Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input30 [10462.677133] input: HDA Intel MID Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input31 [10462.678328] input: HDA Intel MID Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input32
Tormen