lkml.org 
[lkml]   [2020]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.6 068/254] ASoC: dpcm: allow start or stop during pause for backend
    Date
    From: 이경택 <gt82.lee@samsung.com>

    commit 21fca8bdbb64df1297e8c65a746c4c9f4a689751 upstream.

    soc_compr_trigger_fe() allows start or stop after pause_push.
    In dpcm_be_dai_trigger(), however, only pause_release is allowed
    command after pause_push.
    So, start or stop after pause in compress offload is always
    returned as error if the compress offload is used with dpcm.
    To fix the problem, SND_SOC_DPCM_STATE_PAUSED should be allowed
    for start or stop command.

    Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
    Reviewed-by: Vinod Koul <vkoul@kernel.org>
    Link: https://lore.kernel.org/r/004d01d607c1$7a3d5250$6eb7f6f0$@samsung.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    sound/soc/soc-pcm.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/sound/soc/soc-pcm.c
    +++ b/sound/soc/soc-pcm.c
    @@ -2236,7 +2236,8 @@ int dpcm_be_dai_trigger(struct snd_soc_p
    switch (cmd) {
    case SNDRV_PCM_TRIGGER_START:
    if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_PREPARE) &&
    - (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP))
    + (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP) &&
    + (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED))
    continue;

    ret = dpcm_do_trigger(dpcm, be_substream, cmd);
    @@ -2266,7 +2267,8 @@ int dpcm_be_dai_trigger(struct snd_soc_p
    be->dpcm[stream].state = SND_SOC_DPCM_STATE_START;
    break;
    case SNDRV_PCM_TRIGGER_STOP:
    - if (be->dpcm[stream].state != SND_SOC_DPCM_STATE_START)
    + if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_START) &&
    + (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED))
    continue;

    if (!snd_soc_dpcm_can_be_free_stop(fe, be, stream))

    \
     
     \ /
      Last update: 2020-04-16 17:00    [W:4.857 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site