[alsa-devel] why snd_soc_suspend is not called

zhangfei gao zhangfei.gao at gmail.com
Tue Jun 19 07:45:26 CEST 2012


On Tue, Jun 19, 2012 at 1:12 PM, zhangfei gao <zhangfei.gao at gmail.com> wrote:
> Hi, Mark
>
> Excuse me, I am confused about snd_soc_suspend.
>
> When realizing cpu_dai->driver->suspend, we found snd_soc_suspend is not called.
> In fact, even soc_probe is not called since no soc-audio device.
>
> We manually alloc soc-audio deivce before in platfrom.c.
> dev = platform_device_alloc("soc-audio", -1);
> platform_set_drvdata(device, &snd_soc_card);
> platform_device_add(dev);
>
By the way, If move back to the old method, suspend works normal.
snd_soc_suspend -> cpu_dai->driver->suspend are called.

However, kernel prints
[    1.212731] soc-audio soc-audio: ASoC machine brownstone should use
snd_soc_register_card()

Which one is right direction?

> When running, system recommend using snd_soc_register_card instead.
> After doing such modification, the audio could work.
> But strangely snd_soc_suspend is not called, as well as soc-probe.
> So cpu_dai->driver->suspend will no be called accordingly.
>
> If manually add "soc-audio" in arch/, the soc-probe can be called.
> But snd_soc_suspend still fail to be called.
>
> Could you give me some suggestion?
>
> Thanks a lot.


More information about the Alsa-devel mailing list