[alsa-devel] Balanced output support for Xonar: Patches for Virtuoso driver to add mixer option for balanced mono output (PCM179x dacs)

Christian Wisner-Carlson christian at freedomofknowledge.org
Wed Nov 3 14:01:36 CET 2010

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 at freedomofknowledge.org> 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

More information about the Alsa-devel mailing list