0 | |
Origin: upstream, commit:afe6ff3b33ee6e5ea3511fe458bfd4e516b10bcf
|
1 | |
Description: pcm: plugin status - fix the return value (regression)
|
2 | |
The snd_pcm_plugin_avail_update() error code in snd_pcm_plugin_status()
|
3 | |
should not be reported to the caller. The state errors can be determined
|
4 | |
using the state member in the status structure.
|
5 | |
.
|
6 | |
Fixes: 4f90392f07e ("pcm: fix the snd_pcm_plugin_status() avail and delay fields")
|
7 | |
BugLink: https://github.com/alsa-project/alsa-lib/issues/107
|
8 | |
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
9 | |
From: Jaroslav Kysela <perex@perex.cz>
|
10 | |
Bug: https://github.com/alsa-project/alsa-lib/issues/107
|
11 | |
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=976895
|
12 | |
|
13 | |
--- a/src/pcm/pcm_plugin.c
|
14 | |
+++ b/src/pcm/pcm_plugin.c
|
15 | |
@@ -541,19 +541,17 @@ static snd_pcm_sframes_t snd_pcm_plugin_
|
16 | |
static int snd_pcm_plugin_status(snd_pcm_t *pcm, snd_pcm_status_t * status)
|
17 | |
{
|
18 | |
snd_pcm_plugin_t *plugin = pcm->private_data;
|
19 | |
- snd_pcm_sframes_t err, avail;
|
20 | |
+ snd_pcm_sframes_t err;
|
21 | |
|
22 | |
/* sync with the latest hw and appl ptrs */
|
23 | |
- avail = snd_pcm_plugin_avail_update(pcm);
|
24 | |
- if (avail < 0)
|
25 | |
- return avail;
|
26 | |
+ snd_pcm_plugin_avail_update(pcm);
|
27 | |
|
28 | |
err = snd_pcm_status(plugin->gen.slave, status);
|
29 | |
if (err < 0)
|
30 | |
return err;
|
31 | |
status->appl_ptr = *pcm->appl.ptr;
|
32 | |
status->hw_ptr = *pcm->hw.ptr;
|
33 | |
- status->avail = avail;
|
34 | |
+ status->avail = snd_pcm_mmap_avail(pcm);
|
35 | |
status->delay = snd_pcm_mmap_delay(pcm);
|
36 | |
return 0;
|
37 | |
}
|