Commit 450312b6 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: soc-core: remove DAI suspend/resume

Historically, CPU and Codec were implemented different, but now it is
merged as Component.
ALSA SoC is supporting suspend/resume at DAI and Component level.
The method is like below.

	1) Suspend/Resume all CPU DAI if bus-control was 0
	2) Suspend/Resume all Component
	3) Suspend/Resume all CPU DAI if bus-control was 1

Historically 2) was Codec special operation.
Because CPU and Codec were merged into Component,
CPU   suspend/resume has 3 chance to suspend(= 1/2/3), but
Codec suspend/resume has 1 chance (= 2).

Here, DAI side suspend/resume is caring bus-control, but no driver
which is supporting suspend/resume is setting bus-control.
This means 3) was never used.

Here, used parameter for suspend/resume component->dev and dai->dev are
same pointer.
For that reason, we can merge DAI and Component suspend/resume.
One note is that we should use 2), because it is caring BIAS level.

This patch removes 1) and 3).
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87r1zvx7i8.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 0b1c8994
......@@ -286,8 +286,6 @@ struct snd_soc_dai_driver {
/* DAI driver callbacks */
int (*probe)(struct snd_soc_dai *dai);
int (*remove)(struct snd_soc_dai *dai);
int (*suspend)(struct snd_soc_dai *dai);
int (*resume)(struct snd_soc_dai *dai);
/* compress dai */
int (*compress_new)(struct snd_soc_pcm_runtime *rtd, int num);
/* Optional Callback used at pcm creation*/
......
......@@ -558,16 +558,6 @@ int snd_soc_suspend(struct device *dev)
if (card->suspend_pre)
card->suspend_pre(card);
for_each_card_rtds(card, rtd) {
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
if (rtd->dai_link->ignore_suspend)
continue;
if (!cpu_dai->driver->bus_control)
snd_soc_dai_suspend(cpu_dai);
}
/* close any waiting streams */
snd_soc_flush_all_delayed_work(card);
......@@ -639,16 +629,6 @@ int snd_soc_suspend(struct device *dev)
}
}
for_each_card_rtds(card, rtd) {
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
if (rtd->dai_link->ignore_suspend)
continue;
if (cpu_dai->driver->bus_control)
snd_soc_dai_suspend(cpu_dai);
}
if (card->suspend_post)
card->suspend_post(card);
......@@ -682,17 +662,6 @@ static void soc_resume_deferred(struct work_struct *work)
if (card->resume_pre)
card->resume_pre(card);
/* resume control bus DAIs */
for_each_card_rtds(card, rtd) {
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
if (rtd->dai_link->ignore_suspend)
continue;
if (cpu_dai->driver->bus_control)
snd_soc_dai_resume(cpu_dai);
}
for_each_card_components(card, component) {
if (snd_soc_component_is_suspended(component))
snd_soc_component_resume(component);
......@@ -726,16 +695,6 @@ static void soc_resume_deferred(struct work_struct *work)
}
}
for_each_card_rtds(card, rtd) {
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
if (rtd->dai_link->ignore_suspend)
continue;
if (!cpu_dai->driver->bus_control)
snd_soc_dai_resume(cpu_dai);
}
if (card->resume_post)
card->resume_post(card);
......
......@@ -354,18 +354,6 @@ snd_pcm_sframes_t snd_soc_dai_delay(struct snd_soc_dai *dai,
return delay;
}
void snd_soc_dai_suspend(struct snd_soc_dai *dai)
{
if (dai->driver->suspend)
dai->driver->suspend(dai);
}
void snd_soc_dai_resume(struct snd_soc_dai *dai)
{
if (dai->driver->resume)
dai->driver->resume(dai);
}
int snd_soc_dai_probe(struct snd_soc_dai *dai)
{
if (dai->driver->probe)
......
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