ALSA: ymfpci: Fix kctl->id initialization
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>
This commit is contained in:
parent
b9a4efd61b
commit
c9b83ae4a1
|
@ -1822,20 +1822,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