From 965868f2f97eaaecb959424e8186dd4eeb67b03f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Povi=C5=A1er?= <povik+lin@cutebit.org>
Date: Mon, 17 Oct 2022 12:16:20 +0200
Subject: [PATCH] ASoC: macaudio: Improve message on opening of unrouted PCM
 devices
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Martin PoviĊĦer <povik+lin@cutebit.org>
---
 sound/soc/apple/macaudio.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/sound/soc/apple/macaudio.c b/sound/soc/apple/macaudio.c
index f0784dad05db..8a6b5e74dcfd 100644
--- a/sound/soc/apple/macaudio.c
+++ b/sound/soc/apple/macaudio.c
@@ -455,6 +455,29 @@ static int macaudio_dpcm_hw_params(struct snd_pcm_substream *substream,
 	return 0;
 }
 
+static int macaudio_fe_hw_params(struct snd_pcm_substream *substream,
+				   struct snd_pcm_hw_params *params)
+{
+	struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
+	struct snd_soc_pcm_runtime *be;
+	struct snd_soc_dpcm *dpcm;
+
+	be = NULL;
+	for_each_dpcm_be(rtd, substream->stream, dpcm) {
+		be = dpcm->be;
+		break;
+	}
+
+	if (!be) {
+		dev_err(rtd->dev, "opening PCM device '%s' with no audio route configured (bad settings applied to the sound card)\n",
+				rtd->dai_link->name);
+		return -EINVAL;
+	}
+
+	return macaudio_dpcm_hw_params(substream, params);
+}
+
+
 static void macaudio_dpcm_shutdown(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
@@ -473,7 +496,7 @@ static void macaudio_dpcm_shutdown(struct snd_pcm_substream *substream)
 
 static const struct snd_soc_ops macaudio_fe_ops = {
 	.shutdown	= macaudio_dpcm_shutdown,
-	.hw_params	= macaudio_dpcm_hw_params,
+	.hw_params	= macaudio_fe_hw_params,
 };
 
 static const struct snd_soc_ops macaudio_be_ops = {
-- 
2.37.0 (Apple Git-136)