diff options
Diffstat (limited to 'sound/core/pcm_native.c')
| -rw-r--r-- | sound/core/pcm_native.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index f731f904e8cc..1d8452912b14 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -1445,8 +1445,15 @@ static int snd_pcm_pause(struct snd_pcm_substream *substream, int push)  static int snd_pcm_pre_suspend(struct snd_pcm_substream *substream, int state)  {  	struct snd_pcm_runtime *runtime = substream->runtime; -	if (runtime->status->state == SNDRV_PCM_STATE_SUSPENDED) +	switch (runtime->status->state) { +	case SNDRV_PCM_STATE_SUSPENDED:  		return -EBUSY; +	/* unresumable PCM state; return -EBUSY for skipping suspend */ +	case SNDRV_PCM_STATE_OPEN: +	case SNDRV_PCM_STATE_SETUP: +	case SNDRV_PCM_STATE_DISCONNECTED: +		return -EBUSY; +	}  	runtime->trigger_master = substream;  	return 0;  }  | 
