[alsa-devel] ASoC: SND_SOC_DAPM_LINE behavior

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Sep 29 14:44:40 CEST 2009


On Tue, Sep 29, 2009 at 03:36:39PM +0300, Peter Ujfalusi wrote:

> The DAPM routing is something like this in the codec driver:

> |DAC|------------->|              |              
>                    |Playback Mixer|->|OUTPUT|
> |INPUT|->|Bypass|->|              |
>          |SWITCH|

> Now if in the machine driver I create the following DAPM widget:
> SND_SOC_DAPM_LINE("Line In", NULL),

> and than connect this DAPM_LINE to the codec's INPUT (LINE-IN):
> {"LINE-IN", NULL, "Line In"},

> Than the codec bias level would be always in ON state, regardless of the state 
> of the Bypass Switch (it is off by default).

That shouldn't happen, turning off the bypass switch should break the
path and let the bias sit at standby.  I'd need to check the code but I
expect that the fact that LINE can be either an input or an output is
confusing things and we need to split it into two widgets, one for input
and one for output.

The easiest thing for an actual system would just be to not bother with
the external widget if you're not doing anything with it.  It'll only
make things work better, there's no need for the external widgets unless
you're switching them.


More information about the Alsa-devel mailing list