ALSA: ymfpci: Fix kctl->id initialization
commit c9b83ae4a1609b1914ba7fc70826a3f3a8b234db upstream.
ymfpci driver replaces the kctl->id.device after assigning the kctl
via snd_ctl_add(). This doesn't work any longer with the new Xarray
lookup change. It has to be set before snd_ctl_add() call instead.
Fixes: c27e1efb61
("ALSA: control: Use xarray for faster lookups")
Cc: <stable@vger.kernel.org>
Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20230606093855.14685-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
be0b9b7a6d
commit
1f6c520932
@ -1827,20 +1827,20 @@ int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch)
|
||||
if (snd_BUG_ON(!chip->pcm_spdif))
|
||||
return -ENXIO;
|
||||
kctl = snd_ctl_new1(&snd_ymfpci_spdif_default, chip);
|
||||
kctl->id.device = chip->pcm_spdif->device;
|
||||
err = snd_ctl_add(chip->card, kctl);
|
||||
if (err < 0)
|
||||
return err;
|
||||
kctl->id.device = chip->pcm_spdif->device;
|
||||
kctl = snd_ctl_new1(&snd_ymfpci_spdif_mask, chip);
|
||||
kctl->id.device = chip->pcm_spdif->device;
|
||||
err = snd_ctl_add(chip->card, kctl);
|
||||
if (err < 0)
|
||||
return err;
|
||||
kctl->id.device = chip->pcm_spdif->device;
|
||||
kctl = snd_ctl_new1(&snd_ymfpci_spdif_stream, chip);
|
||||
kctl->id.device = chip->pcm_spdif->device;
|
||||
err = snd_ctl_add(chip->card, kctl);
|
||||
if (err < 0)
|
||||
return err;
|
||||
kctl->id.device = chip->pcm_spdif->device;
|
||||
chip->spdif_pcm_ctl = kctl;
|
||||
|
||||
/* direct recording source */
|
||||
|
Loading…
Reference in New Issue
Block a user