Commit de0dc310 authored by Oswald Buddenhagen's avatar Oswald Buddenhagen Committed by Takashi Iwai
Browse files

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: default avatarOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230514170323.3408834-6-oswald.buddenhagen@gmx.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 6175ccd1
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -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;
	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;
+15 −13
Original line number Diff line number Diff line
@@ -1380,6 +1380,7 @@ 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 {
		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);
@@ -1393,6 +1394,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))

			/* 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);