ALSA: emu10k1: don't create old pass-through playback device on Audigy
It could have never worked, as snd_emu10k1_fx8010_playback_prepare() and snd_emu10k1_fx8010_playback_hw_free() assume the emu10k1 offset for the ETRAM, and the default DSP code includes no handler for it. It also wouldn't make a lot of sense to make it work, as Audigy has an own, much simpler, pass-through mechanism. So just skip creation of the device. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20230405201220.2197938-1-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
b09c551c77
commit
8dd13214a8
|
@ -1781,16 +1781,20 @@ int snd_emu10k1_pcm_efx(struct snd_emu10k1 *emu, int device)
|
||||||
struct snd_kcontrol *kctl;
|
struct snd_kcontrol *kctl;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = snd_pcm_new(emu->card, "emu10k1 efx", device, 8, 1, &pcm);
|
err = snd_pcm_new(emu->card, "emu10k1 efx", device, emu->audigy ? 0 : 8, 1, &pcm);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
pcm->private_data = emu;
|
pcm->private_data = emu;
|
||||||
|
|
||||||
|
if (!emu->audigy)
|
||||||
snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_fx8010_playback_ops);
|
snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_fx8010_playback_ops);
|
||||||
snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_emu10k1_capture_efx_ops);
|
snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_emu10k1_capture_efx_ops);
|
||||||
|
|
||||||
pcm->info_flags = 0;
|
pcm->info_flags = 0;
|
||||||
|
if (emu->audigy)
|
||||||
|
strcpy(pcm->name, "Multichannel Capture");
|
||||||
|
else
|
||||||
strcpy(pcm->name, "Multichannel Capture/PT Playback");
|
strcpy(pcm->name, "Multichannel Capture/PT Playback");
|
||||||
emu->pcm_efx = pcm;
|
emu->pcm_efx = pcm;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue