Re: [PATCH v2] ALSA: pcm: Return 0 when size < start_threshold in capture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 22 Aug 2018 17:03:59 +0200,
Ricardo Biehl Pasquali wrote:
> 
> In __snd_pcm_lib_xfer(), when capture, if state is PREPARED
> and size is less than start_threshold nothing can be done.
> As there is no error, 0 is returned.
> 
> Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@xxxxxxxxx>
> ---
> 
> version 2:
> The code was not changed. Just resubmitting to follow the
> rules from Documentation/process/submitting-patches.rst.

Almost good, but still not perfect, unfortunately :)
The patch should be applicable onto the kernel tree as is with -p1
option, i.e. the diff should be like
  --- a/sound/core/pcm_lib.c
  +++ b/sound/core/pcm_lib.c

But never mind, I'll apply this manually at this time, just keep the
above in mind for the next time.

Currently we're dealing with 4.19 merge, hence I'm going to queue to
the branch for 4.20.


thanks,

Takashi


> 
> --- pcm_lib.c.orig	2018-08-21 15:31:54.457405053 -0300
> +++ pcm_lib.c	2018-08-21 15:56:01.264549084 -0300
> @@ -2125,7 +2125,7 @@ snd_pcm_sframes_t __snd_pcm_lib_xfer(str
>  	pcm_transfer_f transfer;
>  	bool nonblock;
>  	bool is_playback;
> -	int err;
> +	int err = 0;
>  
>  	err = pcm_sanity_check(substream);
>  	if (err < 0)
> @@ -2173,11 +2173,15 @@ snd_pcm_sframes_t __snd_pcm_lib_xfer(str
>  		goto _end_unlock;
>  
>  	if (!is_playback &&
> -	    runtime->status->state == SNDRV_PCM_STATE_PREPARED &&
> -	    size >= runtime->start_threshold) {
> -		err = snd_pcm_start(substream);
> -		if (err < 0)
> +	    runtime->status->state == SNDRV_PCM_STATE_PREPARED) {
> +		if (size >= runtime->start_threshold) {
> +			err = snd_pcm_start(substream);
> +			if (err < 0)
> +				goto _end_unlock;
> +		} else {
> +			/* nothing to do */
>  			goto _end_unlock;
> +		}
>  	}
>  
>  	runtime->twake = runtime->control->avail_min ? : 1;
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux