Hello folks,
I am working on enabling a new alsa codec driver and I am stuck with this below routing problem.
SND_SOC_DAPM_AIF_OUT("AIF1TX1",)
{ "AIF3RX1", NULL, "AIF3 Playback" }, { "AIF1TX1 Input 1", NULL, "AIF3RX1" }, { "AIF1TX1", AIF1TX1, "AIF1TX1 Input 1" }, { "AIF1TX1", AIF1TX2, "AIF1TX1 Input 1" }, { "AIF1 Capture", NULL, "AIF1TX1" },
AIF3 Playback and AIF1 Capture is stream name of AIF3 and AIF1 dai respectively.
After setting the paths using mixer command and triggering AIF3 playback dai, I see that it is not powering AIF3 Playback widget.
After debugging I found the problem to be that ALSA core searches for physically connected or active widget path before it can power on the widget. So I think the codec developer wanted me start the AIF1 capturing to turn on the whole path. However in our system we just want to connect AIF3RX1 to AIF1TX1.
So i changed to below and now it is powering on the AIF3 Playback widget. SND_SOC_DAPM_OUTPUT("DUMMY_NODE"), // { "AIF1 Capture", NULL, "AIF1TX1" }, { "DUMMY_NODE", NULL, "AIF1TX1" },
Is ALSA core working as designed as I am using 3.11?
Thanks, Variksla