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>
This commit is contained in:
parent
f785f5ee96
commit
e98e7a82bc
|
@ -561,10 +561,13 @@ int snd_cs8427_iec958_active(struct snd_i2c_device *cs8427, int active)
|
||||||
if (snd_BUG_ON(!cs8427))
|
if (snd_BUG_ON(!cs8427))
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
chip = cs8427->private_data;
|
chip = cs8427->private_data;
|
||||||
if (active)
|
if (active) {
|
||||||
memcpy(chip->playback.pcm_status,
|
memcpy(chip->playback.pcm_status,
|
||||||
chip->playback.def_status, 24);
|
chip->playback.def_status, 24);
|
||||||
chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE;
|
chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE;
|
||||||
|
} else {
|
||||||
|
chip->playback.pcm_ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE;
|
||||||
|
}
|
||||||
snd_ctl_notify(cs8427->bus->card,
|
snd_ctl_notify(cs8427->bus->card,
|
||||||
SNDRV_CTL_EVENT_MASK_VALUE | SNDRV_CTL_EVENT_MASK_INFO,
|
SNDRV_CTL_EVENT_MASK_VALUE | SNDRV_CTL_EVENT_MASK_INFO,
|
||||||
&chip->playback.pcm_ctl->id);
|
&chip->playback.pcm_ctl->id);
|
||||||
|
|
Loading…
Reference in New Issue