Merge series "ASoC: Intel: machine driver updates for 5.9" from Pierre-Louis Bossart...
[linux-block.git] / sound / soc / soc-dai.c
index 457159975b01a22237e81810855940e4b955618c..98f0c98b06bbd78dbe56e39d80d8ba4be5e6e24b 100644 (file)
@@ -298,13 +298,15 @@ int snd_soc_dai_digital_mute(struct snd_soc_dai *dai, int mute,
 {
        int ret = -ENOTSUPP;
 
+       /*
+        * ignore if direction was CAPTURE
+        * and it had .no_capture_mute flag
+        */
        if (dai->driver->ops &&
-           dai->driver->ops->mute_stream)
+           dai->driver->ops->mute_stream &&
+           (direction == SNDRV_PCM_STREAM_PLAYBACK ||
+            !dai->driver->ops->no_capture_mute))
                ret = dai->driver->ops->mute_stream(dai, mute, direction);
-       else if (direction == SNDRV_PCM_STREAM_PLAYBACK &&
-                dai->driver->ops &&
-                dai->driver->ops->digital_mute)
-               ret = dai->driver->ops->digital_mute(dai, mute);
 
        return soc_dai_ret(dai, ret);
 }