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