[alsa-devel] Future of the HDA driver

Takashi Iwai tiwai at suse.de
Mon Oct 3 14:27:34 CEST 2011


At Mon, 03 Oct 2011 14:01:00 +0200,
David Henningsson wrote:
> 
> 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?

Sure, we can hold a meeting spontaneously, as this would be for
smaller group.  The sound BoF isn't exactly scheduled at all yet.
I don't know how many guys will be there, so I thought it can be
managed spontaneously by announcing on the message board there or so.

> 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?

The merge window for 3.2 is almost closed now, as 3.1 will come out
today or tomorrow, I suppose.  Such a big change as you suggested in
the above is a 3.3-material, I suppose.

The unification of parsers is a longterm goal.  My plan is to reduce
the rest of Realtek-quirk codes as much as possible in 3.3, try to
clean up / implement the auto-parser for AD codecs, and slowly
starting to the unified parser by moving the pieces to the core
hd-audio code from codec-specific codes.

> 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...

Yeah, the current code is still messy although you cleaned up a lot.
This needs revisited.


thanks,

Takashi


More information about the Alsa-devel mailing list