Commit 3289dc02 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: soc.h: use array instead of playback/capture_widget

snd_soc_pcm_runtime has playback/capture_widget for Codec2Coddec.
The naming is unclear.
This patch names it as c2c_widget and uses array.

	struct snd_soc_pcm_runtime {
		...
=>		struct snd_soc_dapm_widget *playback_widget;
=>		struct snd_soc_dapm_widget *capture_widget;
		...
	}
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87pmfqv9mk.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent a26ec2ac
...@@ -1063,6 +1063,7 @@ struct snd_soc_pcm_runtime { ...@@ -1063,6 +1063,7 @@ struct snd_soc_pcm_runtime {
/* Dynamic PCM BE runtime data */ /* Dynamic PCM BE runtime data */
struct snd_soc_dpcm_runtime dpcm[SNDRV_PCM_STREAM_LAST + 1]; struct snd_soc_dpcm_runtime dpcm[SNDRV_PCM_STREAM_LAST + 1];
struct snd_soc_dapm_widget *c2c_widget[SNDRV_PCM_STREAM_LAST + 1];
long pmdown_time; long pmdown_time;
...@@ -1079,9 +1080,6 @@ struct snd_soc_pcm_runtime { ...@@ -1079,9 +1080,6 @@ struct snd_soc_pcm_runtime {
*/ */
struct snd_soc_dai **dais; struct snd_soc_dai **dais;
struct snd_soc_dapm_widget *playback_widget;
struct snd_soc_dapm_widget *capture_widget;
struct delayed_work delayed_work; struct delayed_work delayed_work;
void (*close_delayed_work_func)(struct snd_soc_pcm_runtime *rtd); void (*close_delayed_work_func)(struct snd_soc_pcm_runtime *rtd);
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
......
...@@ -4361,6 +4361,7 @@ static void dapm_connect_dai_pair(struct snd_soc_card *card, ...@@ -4361,6 +4361,7 @@ static void dapm_connect_dai_pair(struct snd_soc_card *card,
struct snd_soc_dapm_widget *dai, *codec, *playback_cpu, *capture_cpu; struct snd_soc_dapm_widget *dai, *codec, *playback_cpu, *capture_cpu;
struct snd_pcm_substream *substream; struct snd_pcm_substream *substream;
struct snd_pcm_str *streams = rtd->pcm->streams; struct snd_pcm_str *streams = rtd->pcm->streams;
int stream;
if (dai_link->params) { if (dai_link->params) {
playback_cpu = cpu_dai->capture_widget; playback_cpu = cpu_dai->capture_widget;
...@@ -4371,37 +4372,39 @@ static void dapm_connect_dai_pair(struct snd_soc_card *card, ...@@ -4371,37 +4372,39 @@ static void dapm_connect_dai_pair(struct snd_soc_card *card,
} }
/* connect BE DAI playback if widgets are valid */ /* connect BE DAI playback if widgets are valid */
stream = SNDRV_PCM_STREAM_PLAYBACK;
codec = codec_dai->playback_widget; codec = codec_dai->playback_widget;
if (playback_cpu && codec) { if (playback_cpu && codec) {
if (dai_link->params && !rtd->playback_widget) { if (dai_link->params && !rtd->c2c_widget[stream]) {
substream = streams[SNDRV_PCM_STREAM_PLAYBACK].substream; substream = streams[stream].substream;
dai = snd_soc_dapm_new_dai(card, substream, "playback"); dai = snd_soc_dapm_new_dai(card, substream, "playback");
if (IS_ERR(dai)) if (IS_ERR(dai))
goto capture; goto capture;
rtd->playback_widget = dai; rtd->c2c_widget[stream] = dai;
} }
dapm_connect_dai_routes(&card->dapm, cpu_dai, playback_cpu, dapm_connect_dai_routes(&card->dapm, cpu_dai, playback_cpu,
rtd->playback_widget, rtd->c2c_widget[stream],
codec_dai, codec); codec_dai, codec);
} }
capture: capture:
/* connect BE DAI capture if widgets are valid */ /* connect BE DAI capture if widgets are valid */
stream = SNDRV_PCM_STREAM_CAPTURE;
codec = codec_dai->capture_widget; codec = codec_dai->capture_widget;
if (codec && capture_cpu) { if (codec && capture_cpu) {
if (dai_link->params && !rtd->capture_widget) { if (dai_link->params && !rtd->c2c_widget[stream]) {
substream = streams[SNDRV_PCM_STREAM_CAPTURE].substream; substream = streams[stream].substream;
dai = snd_soc_dapm_new_dai(card, substream, "capture"); dai = snd_soc_dapm_new_dai(card, substream, "capture");
if (IS_ERR(dai)) if (IS_ERR(dai))
return; return;
rtd->capture_widget = dai; rtd->c2c_widget[stream] = dai;
} }
dapm_connect_dai_routes(&card->dapm, codec_dai, codec, dapm_connect_dai_routes(&card->dapm, codec_dai, codec,
rtd->capture_widget, rtd->c2c_widget[stream],
cpu_dai, capture_cpu); cpu_dai, capture_cpu);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment