The values returned from Playback Channel Map and Capture Channel Map
controls may vary dynamically depending on the corresponding PCM
stream.  Mark those as volatile to indicate the values are unstable
and not suitable for testing.

Note that we may change the driver to return -EINVAL, but this would
bring other side effects, such as "alsactl restore" would start
receiving unexpected errors.  So we still keep returning 0 for those
invalid inputs.

Reported-by: Paul Menzel <pmen...@molgen.mpg.de>
Closes: 
https://lore.kernel.org/r/1d44be36-9bb9-4d82-8953-5ae2a4f09...@molgen.mpg.de
Reviewed-by: Jaroslav Kysela <pe...@perex.cz>
Signed-off-by: Takashi Iwai <ti...@suse.de>
---
 sound/core/pcm_lib.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index 6f73b3c2c205..071c67cbc479 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -2556,6 +2556,7 @@ int snd_pcm_add_chmap_ctls(struct snd_pcm *pcm, int 
stream,
        struct snd_kcontrol_new knew = {
                .iface = SNDRV_CTL_ELEM_IFACE_PCM,
                .access = SNDRV_CTL_ELEM_ACCESS_READ |
+                       SNDRV_CTL_ELEM_ACCESS_VOLATILE |
                        SNDRV_CTL_ELEM_ACCESS_TLV_READ |
                        SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
                .info = pcm_chmap_ctl_info,
-- 
2.43.0


Reply via email to