forked from mirrors/linux
		
	ALSA: pcm: Return 0 when size < start_threshold in capture
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@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
		
							parent
							
								
									5b394b2ddf
								
							
						
					
					
						commit
						62ba568f7a
					
				
					 1 changed files with 9 additions and 4 deletions
				
			
		| 
						 | 
					@ -2173,11 +2173,16 @@ snd_pcm_sframes_t __snd_pcm_lib_xfer(struct snd_pcm_substream *substream,
 | 
				
			||||||
		goto _end_unlock;
 | 
							goto _end_unlock;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!is_playback &&
 | 
						if (!is_playback &&
 | 
				
			||||||
	    runtime->status->state == SNDRV_PCM_STATE_PREPARED &&
 | 
						    runtime->status->state == SNDRV_PCM_STATE_PREPARED) {
 | 
				
			||||||
	    size >= runtime->start_threshold) {
 | 
							if (size >= runtime->start_threshold) {
 | 
				
			||||||
		err = snd_pcm_start(substream);
 | 
								err = snd_pcm_start(substream);
 | 
				
			||||||
		if (err < 0)
 | 
								if (err < 0)
 | 
				
			||||||
 | 
									goto _end_unlock;
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								/* nothing to do */
 | 
				
			||||||
 | 
								err = 0;
 | 
				
			||||||
			goto _end_unlock;
 | 
								goto _end_unlock;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	runtime->twake = runtime->control->avail_min ? : 1;
 | 
						runtime->twake = runtime->control->avail_min ? : 1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue