ASoC: Intel: broadwell: Mark FE DAIs as nonatomic
authorCezary Rojewski <cezary.rojewski@intel.com>
Sun, 4 Oct 2020 09:06:08 +0000 (11:06 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 5 Oct 2020 17:18:43 +0000 (18:18 +0100)
PCM operations for DAI links connected with DSP platform component
involve communication with DSP firmware by IPCs. As IPC protocol may
cause thread to sleep while waiting for a response from DSP, propagate
that information to ALSA core by marking all FE DAIs as nonatomic.

Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20201004090609.29066-3-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/broadwell.c

index 648b471..77c85f1 100644 (file)
@@ -174,6 +174,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
        {
                .name = "System PCM",
                .stream_name = "System Playback/Capture",
+               .nonatomic = 1,
                .dynamic = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .ops = &broadwell_fe_ops,
@@ -184,6 +185,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
        {
                .name = "Offload0",
                .stream_name = "Offload0 Playback",
+               .nonatomic = 1,
                .dynamic = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_playback = 1,
@@ -192,6 +194,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
        {
                .name = "Offload1",
                .stream_name = "Offload1 Playback",
+               .nonatomic = 1,
                .dynamic = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_playback = 1,
@@ -200,6 +203,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
        {
                .name = "Loopback PCM",
                .stream_name = "Loopback",
+               .nonatomic = 1,
                .dynamic = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_capture = 1,