On Thu, 2011-10-06 at 19:57 +0100, Mark Brown wrote:
On Thu, Oct 06, 2011 at 11:19:05AM -0500, Brian Austin wrote:
- {"DAC1 Mixer", "Headphone Switch", "XSPIN"},
- {"DAC1 Mixer", "LineOut Switch", "XSPIN"},
- {"DAC2 Mixer", "Speakerphone Switch", "XSPIN"},
- {"DAC2 Mixer", "Speakerphone LineOut Switch", "XSPIN"},
- {"DAC2 Mixer", "EarSpeaker Switch", "XSPIN"},
- {"DAC1 Mixer", "Headphone Switch", "ASPIN"},
- {"DAC1 Mixer", "LineOut Switch", "ASPIN"},
- {"DAC2 Mixer", "Speakerphone Switch", "ASPIN"},
- {"DAC2 Mixer", "Speakerphone LineOut Switch", "ASPIN"},
- {"DAC2 Mixer", "EarSpeaker Switch", "ASPIN"},
- {"DAC1 Mixer", "Headphone Switch", "VSPIN"},
- {"DAC1 Mixer", "LineOut Switch", "VSPIN"},
- {"DAC2 Mixer", "Speakerphone Switch", "VSPIN"},
- {"DAC2 Mixer", "Speakerphone LineOut Switch", "VSPIN"},
- {"DAC2 Mixer", "EarSpeaker Switch", "VSPIN"},
This all looks totally wrong and I'm surprised the driver loads without errors. There's two issues:
All the controls here are for the input to the DAC mixers but their names are for physical outputs. I'd expect the switches to name inputs (for example, "DAC1 Mixer VSPIN Switch"). What's actually going on here?
You've got three copies of each of the controls for each mixer - I'm surprsied this loads without the core complaining that it can't create controls with duplicate names.
This codec has two DACs, three PCM ports. Each DAC has a mixer to allow any port to be routed to it
I recommended this to be done as it helps DAPM to power off unused paths.