I realize that this is not completely necessary, but it really would get rid of a lot of potential duplicate code and could allow some current code to be simplified. On Wed, Nov 3, 2010 at 12:50 AM, Christian Wisner-Carlson <christian@xxxxxxxxxxxxxxxxxxxxxx> wrote: >>> It allows for 4 balanced outputs, 8 unbalanced outputs, or any >>> combination of balanced and unbalanced outputs. HOWEVER, it adds 4 >>> mixer controls and the code isn't very pretty. >> >> The controller can route any stereo pair to each DAC, so it would be a >> good idea to have one global control that also affects this routing so >> that, e.g., configuring the card for 4 outputs works correctly when >> playing 4-channel data. > > Currently, routing is set up by void oxygen_update_dac_routing(struct > oxygen *chip) in oxygen_mixer.c. > However, it only allows for five different routing configurations, > which it statically defines internally as int reg_values[5]. > Do you mind (ie, would you mind merging/using it) if I defined a new struct: > struct oxygen_routing_table = { > u8 channels; > unsigned int dac0; > unsigned int dac1; > unsigned int dac2; > unsigned int dac3; > } > that would be passed to oxygen_update_dac_routing() as a new field of > struct oxygen? This would allow for > arbitrary routing configurations for the dacs (needed to implement 4 > channel balanced output) and would > not require many changes to the driver as a whole. Where should I > define this struct? (ie, in what file?) > > Thanks, > Christian Wisner-Carlson > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel