Commit 0df2ec8e authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: mediatek: use helper function

Current ASoC has many helper function.
This patch use it.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/87sffrea3z.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent ec4b2099
...@@ -32,7 +32,7 @@ int mtk_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd, ...@@ -32,7 +32,7 @@ int mtk_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
continue; continue;
for_each_rtd_cpu_dais(runtime, j, cpu_dai) { for_each_rtd_cpu_dais(runtime, j, cpu_dai) {
if (cpu_dai->stream_active[conn->stream_dir] > 0) { if (snd_soc_dai_stream_active(cpu_dai, conn->stream_dir) > 0) {
sof_dai_link = runtime->dai_link; sof_dai_link = runtime->dai_link;
break; break;
} }
...@@ -111,21 +111,17 @@ int mtk_sof_card_late_probe(struct snd_soc_card *card) ...@@ -111,21 +111,17 @@ int mtk_sof_card_late_probe(struct snd_soc_card *card)
for_each_rtd_cpu_dais(sof_rtd, j, cpu_dai) { for_each_rtd_cpu_dais(sof_rtd, j, cpu_dai) {
struct snd_soc_dapm_route route; struct snd_soc_dapm_route route;
struct snd_soc_dapm_path *p = NULL; struct snd_soc_dapm_path *p = NULL;
struct snd_soc_dapm_widget *play_widget = struct snd_soc_dapm_widget *widget = snd_soc_dai_get_widget(cpu_dai, conn->stream_dir);
cpu_dai->playback_widget;
struct snd_soc_dapm_widget *cap_widget =
cpu_dai->capture_widget;
memset(&route, 0, sizeof(route)); memset(&route, 0, sizeof(route));
if (conn->stream_dir == SNDRV_PCM_STREAM_CAPTURE && if (conn->stream_dir == SNDRV_PCM_STREAM_CAPTURE && widget) {
cap_widget) { snd_soc_dapm_widget_for_each_sink_path(widget, p) {
snd_soc_dapm_widget_for_each_sink_path(cap_widget, p) {
route.source = conn->sof_dma; route.source = conn->sof_dma;
route.sink = p->sink->name; route.sink = p->sink->name;
snd_soc_dapm_add_routes(&card->dapm, &route, 1); snd_soc_dapm_add_routes(&card->dapm, &route, 1);
} }
} else if (conn->stream_dir == SNDRV_PCM_STREAM_PLAYBACK && } else if (conn->stream_dir == SNDRV_PCM_STREAM_PLAYBACK && widget) {
play_widget) { snd_soc_dapm_widget_for_each_source_path(widget, p) {
snd_soc_dapm_widget_for_each_source_path(play_widget, p) {
route.source = p->source->name; route.source = p->source->name;
route.sink = conn->sof_dma; route.sink = conn->sof_dma;
snd_soc_dapm_add_routes(&card->dapm, &route, 1); snd_soc_dapm_add_routes(&card->dapm, &route, 1);
......
...@@ -183,6 +183,8 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -183,6 +183,8 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai); struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
struct snd_soc_dapm_widget *p = snd_soc_dai_get_widget_playback(dai);
struct snd_soc_dapm_widget *c = snd_soc_dai_get_widget_capture(dai);
unsigned int rate = params_rate(params); unsigned int rate = params_rate(params);
unsigned int rate_reg = mt6797_rate_transform(afe->dev, rate, dai->id); unsigned int rate_reg = mt6797_rate_transform(afe->dev, rate, dai->id);
unsigned int pcm_con = 0; unsigned int pcm_con = 0;
...@@ -193,10 +195,10 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -193,10 +195,10 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream,
substream->stream, substream->stream,
rate, rate,
rate_reg, rate_reg,
dai->playback_widget->active, p->active,
dai->capture_widget->active); c->active);
if (dai->playback_widget->active || dai->capture_widget->active) if (p->active || c->active)
return 0; return 0;
switch (dai->id) { switch (dai->id) {
......
...@@ -183,6 +183,8 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -183,6 +183,8 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai); struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
struct snd_soc_dapm_widget *p = snd_soc_dai_get_widget_playback(dai);
struct snd_soc_dapm_widget *c = snd_soc_dai_get_widget_capture(dai);
unsigned int rate = params_rate(params); unsigned int rate = params_rate(params);
unsigned int rate_reg = mt8183_rate_transform(afe->dev, rate, dai->id); unsigned int rate_reg = mt8183_rate_transform(afe->dev, rate, dai->id);
unsigned int pcm_con = 0; unsigned int pcm_con = 0;
...@@ -193,10 +195,9 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -193,10 +195,9 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream,
substream->stream, substream->stream,
rate, rate,
rate_reg, rate_reg,
dai->playback_widget->active, p->active, c->active);
dai->capture_widget->active);
if (dai->playback_widget->active || dai->capture_widget->active) if (p->active || c->active)
return 0; return 0;
switch (dai->id) { switch (dai->id) {
......
...@@ -218,6 +218,8 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -218,6 +218,8 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream,
{ {
struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai); struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
struct mt8186_afe_private *afe_priv = afe->platform_priv; struct mt8186_afe_private *afe_priv = afe->platform_priv;
struct snd_soc_dapm_widget *p = snd_soc_dai_get_widget_playback(dai);
struct snd_soc_dapm_widget *c = snd_soc_dai_get_widget_capture(dai);
int pcm_id = dai->id; int pcm_id = dai->id;
struct mtk_afe_pcm_priv *pcm_priv = afe_priv->dai_priv[pcm_id]; struct mtk_afe_pcm_priv *pcm_priv = afe_priv->dai_priv[pcm_id];
unsigned int rate = params_rate(params); unsigned int rate = params_rate(params);
...@@ -230,12 +232,11 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -230,12 +232,11 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream,
unsigned int pcm_con = 0; unsigned int pcm_con = 0;
dev_dbg(afe->dev, "%s(), id %d, stream %d, widget active p %d, c %d\n", dev_dbg(afe->dev, "%s(), id %d, stream %d, widget active p %d, c %d\n",
__func__, dai->id, substream->stream, dai->playback_widget->active, __func__, dai->id, substream->stream, p->active, c->active);
dai->capture_widget->active);
dev_dbg(afe->dev, "%s(), rate %d, rate_reg %d, data_width %d, wlen_width %d\n", dev_dbg(afe->dev, "%s(), rate %d, rate_reg %d, data_width %d, wlen_width %d\n",
__func__, rate, rate_reg, data_width, wlen_width); __func__, rate, rate_reg, data_width, wlen_width);
if (dai->playback_widget->active || dai->capture_widget->active) if (p->active || c->active)
return 0; return 0;
switch (dai->id) { switch (dai->id) {
......
...@@ -227,7 +227,8 @@ static int mtk_dai_pcm_configure(struct snd_pcm_substream *substream, ...@@ -227,7 +227,8 @@ static int mtk_dai_pcm_configure(struct snd_pcm_substream *substream,
static int mtk_dai_pcm_prepare(struct snd_pcm_substream *substream, static int mtk_dai_pcm_prepare(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
if (dai->playback_widget->active || dai->capture_widget->active) if (snd_soc_dai_get_widget_playback(dai)->active ||
snd_soc_dai_get_widget_capture(dai)->active)
return 0; return 0;
return mtk_dai_pcm_configure(substream, dai); return mtk_dai_pcm_configure(substream, dai);
......
...@@ -273,6 +273,8 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -273,6 +273,8 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai); struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
struct snd_soc_dapm_widget *p = snd_soc_dai_get_widget_playback(dai);
struct snd_soc_dapm_widget *c = snd_soc_dai_get_widget_capture(dai);
unsigned int rate = params_rate(params); unsigned int rate = params_rate(params);
unsigned int rate_reg = mt8192_rate_transform(afe->dev, rate, dai->id); unsigned int rate_reg = mt8192_rate_transform(afe->dev, rate, dai->id);
unsigned int pcm_con = 0; unsigned int pcm_con = 0;
...@@ -283,10 +285,10 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -283,10 +285,10 @@ static int mtk_dai_pcm_hw_params(struct snd_pcm_substream *substream,
substream->stream, substream->stream,
rate, rate,
rate_reg, rate_reg,
dai->playback_widget->active, p->active,
dai->capture_widget->active); c->active);
if (dai->playback_widget->active || dai->capture_widget->active) if (p->active || c->active)
return 0; return 0;
switch (dai->id) { switch (dai->id) {
......
...@@ -213,11 +213,14 @@ static int mtk_dai_pcm_configure(struct snd_pcm_substream *substream, ...@@ -213,11 +213,14 @@ static int mtk_dai_pcm_configure(struct snd_pcm_substream *substream,
static int mtk_dai_pcm_prepare(struct snd_pcm_substream *substream, static int mtk_dai_pcm_prepare(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
struct snd_soc_dapm_widget *p = snd_soc_dai_get_widget_playback(dai);
struct snd_soc_dapm_widget *c = snd_soc_dai_get_widget_capture(dai);
dev_dbg(dai->dev, "%s(), id %d, stream %d, widget active p %d, c %d\n", dev_dbg(dai->dev, "%s(), id %d, stream %d, widget active p %d, c %d\n",
__func__, dai->id, substream->stream, __func__, dai->id, substream->stream,
dai->playback_widget->active, dai->capture_widget->active); p->active, c->active);
if (dai->playback_widget->active || dai->capture_widget->active) if (p->active || c->active)
return 0; return 0;
return mtk_dai_pcm_configure(substream, dai); return mtk_dai_pcm_configure(substream, dai);
......
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