My first approach to that problem would be to try to tweak user_pin_configs, assuming that the generic parser (model=auto) is used. See sections 4.3 and 4.4 on this document for how to do that:
http://mirror.leaseweb.com/kernel/people/tiwai/docs/HD-Audio.html
That way you won't have to update the kernel code at all.
To figure out the values of user_pin_configs, you'll need to know the pin widget NIDs (see your /proc/asound/card*/codec* file for that) and pin values (see official Intel HDA documentation, or read hda_proc.c).
Hi David
Thank you very much for your guidance, I have gotten a bit further, and this is very exciting!
After reading HD-Audio.html, I used the hda-analyzer to configure NIDs 0x14, 0x19 and 0x1b to become outputs, and when I execute:
speaker-test -Dplug:surround51 -c6
I can hear sound on all 3 jacks, but only for Front left/right channels. In other words, all 3 jacks are being treated as Front. To confirm this, in alsamixer, the mute on Front (0x14) does mute all 3 jacks.
I guess I am missing the relationship between alsamixer and the codec. How can I get aplay and speaker-test (with plug:surround51) to map to Front/Mic2/Line2, now that I have configured them as outputs?
Regards Keith