mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 14:14:24 +08:00
ALSA: emu10k1: skip mic capture PCM for cards without AC97 codec
The microphone capture device is a feature of the AC97 codec, so its availability should be coupled to the presence of that codec. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Link: https://lore.kernel.org/r/20230514170323.3408834-6-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6175ccd1a9
commit
de0dc31070
@ -107,9 +107,11 @@ static int snd_card_emu10k1_probe(struct pci_dev *pci,
|
||||
err = snd_emu10k1_pcm(emu, 0);
|
||||
if (err < 0)
|
||||
return err;
|
||||
err = snd_emu10k1_pcm_mic(emu, 1);
|
||||
if (err < 0)
|
||||
return err;
|
||||
if (emu->card_capabilities->ac97_chip) {
|
||||
err = snd_emu10k1_pcm_mic(emu, 1);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
err = snd_emu10k1_pcm_efx(emu, 2);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
@ -1380,19 +1380,21 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
|
||||
gpr_map[gpr + 2] = 0x00000000;
|
||||
gpr += 3;
|
||||
} else {
|
||||
/* AC'97 Playback Volume - used only for mic (renamed later) */
|
||||
A_ADD_VOLUME_IN(stereo_mix, gpr, A_EXTIN_AC97_L);
|
||||
A_ADD_VOLUME_IN(stereo_mix+1, gpr+1, A_EXTIN_AC97_R);
|
||||
snd_emu10k1_init_stereo_control(&controls[nctl++], "AMic Playback Volume", gpr, 0);
|
||||
gpr += 2;
|
||||
/* AC'97 Capture Volume - used only for mic */
|
||||
A_ADD_VOLUME_IN(capture, gpr, A_EXTIN_AC97_L);
|
||||
A_ADD_VOLUME_IN(capture+1, gpr+1, A_EXTIN_AC97_R);
|
||||
snd_emu10k1_init_stereo_control(&controls[nctl++], "Mic Capture Volume", gpr, 0);
|
||||
gpr += 2;
|
||||
if (emu->card_capabilities->ac97_chip) {
|
||||
/* AC'97 Playback Volume - used only for mic (renamed later) */
|
||||
A_ADD_VOLUME_IN(stereo_mix, gpr, A_EXTIN_AC97_L);
|
||||
A_ADD_VOLUME_IN(stereo_mix+1, gpr+1, A_EXTIN_AC97_R);
|
||||
snd_emu10k1_init_stereo_control(&controls[nctl++], "AMic Playback Volume", gpr, 0);
|
||||
gpr += 2;
|
||||
/* AC'97 Capture Volume - used only for mic */
|
||||
A_ADD_VOLUME_IN(capture, gpr, A_EXTIN_AC97_L);
|
||||
A_ADD_VOLUME_IN(capture+1, gpr+1, A_EXTIN_AC97_R);
|
||||
snd_emu10k1_init_stereo_control(&controls[nctl++], "Mic Capture Volume", gpr, 0);
|
||||
gpr += 2;
|
||||
|
||||
/* mic capture buffer */
|
||||
A_OP(icode, &ptr, iINTERP, A_EXTOUT(A_EXTOUT_MIC_CAP), A_EXTIN(A_EXTIN_AC97_L), A_C_40000000, A_EXTIN(A_EXTIN_AC97_R));
|
||||
/* mic capture buffer */
|
||||
A_OP(icode, &ptr, iINTERP, A_EXTOUT(A_EXTOUT_MIC_CAP), A_EXTIN(A_EXTIN_AC97_L), A_C_40000000, A_EXTIN(A_EXTIN_AC97_R));
|
||||
}
|
||||
|
||||
/* Audigy CD Playback Volume */
|
||||
A_ADD_VOLUME_IN(stereo_mix, gpr, A_EXTIN_SPDIF_CD_L);
|
||||
|
Loading…
Reference in New Issue
Block a user