Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: i2c/cs8427: fix iec958 mixer control deactivation

snd_cs8427_iec958_active() would always delete
SNDRV_CTL_ELEM_ACCESS_INACTIVE, even though the function has an
argument `active`.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20230405201219.2197811-1-oswald.buddenhagen@gmx.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Oswald Buddenhagen and committed by
Takashi Iwai
e98e7a82 f785f5ee

+5 -2
+5 -2
sound/i2c/cs8427.c
··· 561 561 if (snd_BUG_ON(!cs8427)) 562 562 return -ENXIO; 563 563 chip = cs8427->private_data; 564 - if (active) 564 + if (active) { 565 565 memcpy(chip->playback.pcm_status, 566 566 chip->playback.def_status, 24); 567 - chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; 567 + chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; 568 + } else { 569 + chip->playback.pcm_ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; 570 + } 568 571 snd_ctl_notify(cs8427->bus->card, 569 572 SNDRV_CTL_EVENT_MASK_VALUE | SNDRV_CTL_EVENT_MASK_INFO, 570 573 &chip->playback.pcm_ctl->id);