Hi Takashi etc,
1) I think it would make sense to have a designated time and room for a "future of HDA" discussion in Prague. We could e g discuss input jacks as kcontrols, and exposing routing to user space, as IIRC Mark Brown was suggestion earlier. What do you think?
2) With Ubuntu 11.10 in a "Freeze" state and PulseAudio 1.0 out the door, I might have some time to contribute to the HDA driver...at least if not a lot of urgent stuff comes up, and up to the 3.2 merge window or so. (Any idea how far away that would be?) Do you think it would make sense to split hda_codec.c into hda_codec.c and hda_autoparser.c, move snd_hda_parse_pin_defcfg there, then add more functions as discovered to be useful to more than one autoparser?
3) One thing that has been annoyed me lately is the moving of hp out or speaker out to line out, which IMO leads to somewhat messy code. Seen in retrospect of course, don't you think it would make more sense to do let line_out_pins be "line out" only, and add one more variable primary_out that would be initialized as:
primary_out_pins = line_outs ? &line_out_pins : (speaker_outs ? &speaker_out_pins : (hp_outs ? &hp_out_pins : NULL))
..and then you could do something like:
#define hp_is_primary_out(_auto) ((_auto)->primary_out_pins == &(_auto)->hp_out_pins)
Redoing that will probably require careful reading to avoid regressions though...