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