lkml.org 
[lkml]   [2019]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 095/144] ALSA: compress: Be more restrictive about when a drain is allowed
    Date
    [ Upstream commit 3b8179944cb0dd53e5223996966746cdc8a60657 ]

    Draining makes little sense in the situation of hardware overrun, as the
    hardware will have consumed all its available samples. Additionally,
    draining whilst the stream is paused would presumably get stuck as no
    data is being consumed on the DSP side.

    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Acked-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/core/compress_offload.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
    index 6cf5b8440cf30..41905afada63f 100644
    --- a/sound/core/compress_offload.c
    +++ b/sound/core/compress_offload.c
    @@ -811,7 +811,10 @@ static int snd_compr_drain(struct snd_compr_stream *stream)
    case SNDRV_PCM_STATE_OPEN:
    case SNDRV_PCM_STATE_SETUP:
    case SNDRV_PCM_STATE_PREPARED:
    + case SNDRV_PCM_STATE_PAUSED:
    return -EPERM;
    + case SNDRV_PCM_STATE_XRUN:
    + return -EPIPE;
    default:
    break;
    }
    @@ -860,7 +863,10 @@ static int snd_compr_partial_drain(struct snd_compr_stream *stream)
    case SNDRV_PCM_STATE_OPEN:
    case SNDRV_PCM_STATE_SETUP:
    case SNDRV_PCM_STATE_PREPARED:
    + case SNDRV_PCM_STATE_PAUSED:
    return -EPERM;
    + case SNDRV_PCM_STATE_XRUN:
    + return -EPIPE;
    default:
    break;
    }
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-08-14 19:55    [W:4.065 / U:0.696 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site