• Fabio Estevam's avatar
    ASoC: fsl_ssi: Add suspend/resume support · b20e53a8
    Fabio Estevam authored
    Doing a suspend/resume sequence while playing an audio track in the backgroung
    causes broken audio right after resume:
    
    root@freescale /$ aplay clarinet.wav &
    
    root@freescale /home$ Playing WAVE 'clarinet.wav' : Signed 16 bit Little Endian,
     Rate 44100 Hz, Mono
    
    root@freescale /home$ echo mem > /sys/power/state
    PM: Syncing filesystems ... done.
    Freezing user space processes ... (elapsed 0.002 seconds) done.
    Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
    Suspending console(s) (use no_console_suspend to debug)
    PM: suspend of devices complete after 37.082 msecs
    PM: suspend devices took 0.040 seconds
    PM: late suspend of devices complete after 4.234 msecs
    PM: noirq suspend of devices complete after 4.618 msecs
    Disabling non-boot CPUs ...
    PM: noirq resume of devices complete after 4.013 msecs
    PM: early resume of devices complete after 4.000 msecs
    PM: resume of devices complete after 68.907 msecs
    PM: resume devices took 0.070 seconds
    Restarting tasks ... Suspended. Trying resume. Failed. Restarting stream. Done.
    Suspended. Trying resume. Failed. Restarting stream. Done.
    Suspended. Trying resume. Failed. Restarting stream. Done.
    Suspended. Trying resume. Failed. Restarting stream. Done.
    Suspended. Trying resume. Failed. Restarting stream. Done.
    Suspended. Trying resume. Failed. Restarting stream. Done.
    Suspended. Trying resume. Failed. Restarting stream. Done.
    ....
    
    Add SNDRV_PCM_TRIGGER_RESUME/SUSPEND cases so that we can gracefully handle
    system suspend/resume.
    Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
    Acked-by: default avatarShawn Guo <shawn.guo@freescale.com>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    b20e53a8
fsl_ssi.c 38.1 KB