ALSA: emu10k1: skip Sound Blaster-specific hacks for E-MU cards
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Sat, 22 Apr 2023 16:10:21 +0000 (18:10 +0200)
committerTakashi Iwai <tiwai@suse.de>
Sun, 23 Apr 2023 07:21:16 +0000 (09:21 +0200)
The rev2 cards use CA0108, but the embedded P17V goes entirely unused.
Also, A_IOCTL (which is really the GPIO port) is actually the FPGA
control port, so messing with it is no good idea.

The hacks are actually mutually exclusive, so make that explicit while
we're at it.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230422161021.1143888-1-oswald.buddenhagen@gmx.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/emu10k1/emu10k1_main.c

index 007c445..d9199d9 100644 (file)
@@ -183,7 +183,8 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir)
        snd_emu10k1_ptr_write(emu, SPCS1, 0, emu->spdif_bits[1]);
        snd_emu10k1_ptr_write(emu, SPCS2, 0, emu->spdif_bits[2]);
 
-       if (emu->card_capabilities->ca0151_chip) { /* audigy2 */
+       if (emu->card_capabilities->emu_model) {
+       } else if (emu->card_capabilities->ca0151_chip) { /* audigy2 */
                /* Hacks for Alice3 to work independent of haP16V driver */
                /* Setup SRCMulti_I2S SamplingRate */
                tmp = snd_emu10k1_ptr_read(emu, A_SPDIF_SAMPLERATE, 0);
@@ -201,8 +202,7 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir)
                outl(0x0201, emu->port + HCFG2);
                /* Set playback routing. */
                snd_emu10k1_ptr20_write(emu, CAPTURE_P16V_SOURCE, 0, 0x78e4);
-       }
-       if (emu->card_capabilities->ca0108_chip) { /* audigy2 Value */
+       } else if (emu->card_capabilities->ca0108_chip) { /* audigy2 Value */
                /* Hacks for Alice3 to work independent of haP16V driver */
                dev_info(emu->card->dev, "Audigy2 value: Special config.\n");
                /* Setup SRCMulti_I2S SamplingRate */