[alsa-devel] asoc SND_SOC_DAPM_AIF_IN question
Koul, Vinod
vinod.koul at intel.com
Wed Dec 22 18:09:55 CET 2010
Hi,
In the codec driver I am writing I added 2 paths in map, one for Headset and
second for Speaker. Both of these paths have common PCM port enable button so I
added that using SND_SOC_DAPM_AIF_IN
So my codec map looks like:
/*headset map*/
{ "HSDAC Left", NULL, "PCM_In"},
{ "HSDAC Right", NULL, "PCM_In"},
{ "PCM_In", NULL, "Headset Rail"},
{ "Headset Rail", NULL, "Audio Rail"},
/*speaker map*/
{ "IHFDAC Left", NULL, "PCM_In"},
{ "IHFDAC Right", NULL, "PCM_In"},
{ "PCM_In", NULL, "Speaker Rail"},
{ "Speaker Rail", NULL, "Audio Rail"},
The debugfs tell me this seems right
[root at localhost dapm]# cat PCM_In
PCM_In: Off in 0 out 5 - R636(0x27c) bit 0
stream HeadSet Speaker inactive
in static Speaker Rail
in static Headset Rail
out static IHFDAC Right
out static IHFDAC Left
out static HSDAC Right
out static HSDAC Left
But when the stream is started now all the widgets get powered on. The debugfs
entry says
[root at localhost dapm]# cat PCM_In
PCM_In: On in 1 out 5 - R636(0x27c) bit 0
stream HeadSet Speaker active
in static Speaker Rail
in static Headset Rail
out static IHFDAC Right
out static IHFDAC Left
out static HSDAC Right
out static HSDAC Left
How is this detecting input as 1 (is this due to AIF_IN and thus turning on all
the widgets in map? (turns on IHFDAC for HeadSet stream as well :(
What could I be doing wrong here? I want to add this PCM button for all streams
(4 eventually) and this be enabled whenever anyone of them is started.
~Vinod
More information about the Alsa-devel
mailing list