summaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-pcm.c
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2019-07-26 00:50:07 -0400
committerMark Brown <broonie@kernel.org>2019-08-05 11:18:06 -0400
commit3672beb8cad6beb7b8c017514aef0f4f507debcf (patch)
tree69d97094c22566fa5052156fadf48b20e6bafc32 /sound/soc/soc-pcm.c
parentae2f4849286eed48a3aa79a7b73bb5bcd0c9213b (diff)
ASoC: soc-component: add snd_soc_component_close()
Current ALSA SoC is directly using component->driver->ops->xxx, thus, it is deep nested, and makes code difficult to read, and is not good for encapsulation. This patch adds new snd_soc_component_close() and use it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87ef2d5rnr.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-pcm.c')
-rw-r--r--sound/soc/soc-pcm.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index caf7028cee62..4848642ef159 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -465,6 +465,7 @@ static int soc_pcm_components_close(struct snd_pcm_substream *substream,
465 struct snd_soc_pcm_runtime *rtd = substream->private_data; 465 struct snd_soc_pcm_runtime *rtd = substream->private_data;
466 struct snd_soc_rtdcom_list *rtdcom; 466 struct snd_soc_rtdcom_list *rtdcom;
467 struct snd_soc_component *component; 467 struct snd_soc_component *component;
468 int ret = 0;
468 469
469 for_each_rtdcom(rtd, rtdcom) { 470 for_each_rtdcom(rtd, rtdcom) {
470 component = rtdcom->component; 471 component = rtdcom->component;
@@ -472,14 +473,11 @@ static int soc_pcm_components_close(struct snd_pcm_substream *substream,
472 if (component == last) 473 if (component == last)
473 break; 474 break;
474 475
475 if (component->driver->ops && 476 ret |= snd_soc_component_close(component, substream);
476 component->driver->ops->close)
477 component->driver->ops->close(substream);
478
479 snd_soc_component_module_put_when_close(component); 477 snd_soc_component_module_put_when_close(component);
480 } 478 }
481 479
482 return 0; 480 return ret;
483} 481}
484 482
485/* 483/*