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: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87r1zvx7i8.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
0b1c899442
commit
450312b640
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user