ALSA: emu10k1: simplify interrupt handler, part 1
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Thu, 18 May 2023 09:30:44 +0000 (11:30 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 18 May 2023 11:05:23 +0000 (13:05 +0200)
IPR_CHANNELNUMBERMASK cannot be non-zero when IPR_CHANNELLOOP is unset,
so join marking them as handled.
This logically reverts part of commit f453e20d8a0 ("ALSA update
0.9.3a"), which made the inverse change with no explanation.

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

index dfb44e5..0cb89bd 100644 (file)
@@ -79,9 +79,8 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id)
                                val >>= 1;
                                pvoice++;
                        }
-                       status &= ~IPR_CHANNELLOOP;
+                       status &= ~(IPR_CHANNELLOOP | IPR_CHANNELNUMBERMASK);
                }
-               status &= ~IPR_CHANNELNUMBERMASK;
                if (status & (IPR_ADCBUFFULL|IPR_ADCBUFHALFFULL)) {
                        if (emu->capture_interrupt)
                                emu->capture_interrupt(emu, status);