Commit 89173bd4 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela

[ALSA] emu10k1x - Minor clean up

Modules: EMU10K1/EMU10K2 driver

Minor clean up of the emu10k1x interrupt handler code.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent b9b4bdd9
...@@ -795,44 +795,43 @@ static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id, ...@@ -795,44 +795,43 @@ static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id,
status = inl(chip->port + IPR); status = inl(chip->port + IPR);
if(status) { if (! status)
// capture interrupt return IRQ_NONE;
if(status & (IPR_CAP_0_LOOP | IPR_CAP_0_HALF_LOOP)) {
emu10k1x_voice_t *pvoice = &chip->capture_voice; // capture interrupt
if(pvoice->use) if (status & (IPR_CAP_0_LOOP | IPR_CAP_0_HALF_LOOP)) {
snd_emu10k1x_pcm_interrupt(chip, pvoice); emu10k1x_voice_t *pvoice = &chip->capture_voice;
else if(pvoice->use)
snd_emu10k1x_intr_disable(chip, snd_emu10k1x_pcm_interrupt(chip, pvoice);
INTE_CAP_0_LOOP | else
INTE_CAP_0_HALF_LOOP); snd_emu10k1x_intr_disable(chip,
} INTE_CAP_0_LOOP |
INTE_CAP_0_HALF_LOOP);
mask = IPR_CH_0_LOOP|IPR_CH_0_HALF_LOOP; }
for(i = 0; i < 3; i++) {
if(status & mask) {
if(pvoice->use)
snd_emu10k1x_pcm_interrupt(chip, pvoice);
else
snd_emu10k1x_intr_disable(chip, mask);
}
pvoice++;
mask <<= 1;
}
if (status & (IPR_MIDITRANSBUFEMPTY|IPR_MIDIRECVBUFEMPTY)) { mask = IPR_CH_0_LOOP|IPR_CH_0_HALF_LOOP;
if (chip->midi.interrupt) for (i = 0; i < 3; i++) {
chip->midi.interrupt(chip, status); if (status & mask) {
else if (pvoice->use)
snd_emu10k1x_intr_disable(chip, INTE_MIDITXENABLE|INTE_MIDIRXENABLE); snd_emu10k1x_pcm_interrupt(chip, pvoice);
else
snd_emu10k1x_intr_disable(chip, mask);
} }
pvoice++;
mask <<= 1;
}
// acknowledge the interrupt if necessary if (status & (IPR_MIDITRANSBUFEMPTY|IPR_MIDIRECVBUFEMPTY)) {
if(status) if (chip->midi.interrupt)
outl(status, chip->port+IPR); chip->midi.interrupt(chip, status);
else
// snd_printk(KERN_INFO "interrupt %08x\n", status); snd_emu10k1x_intr_disable(chip, INTE_MIDITXENABLE|INTE_MIDIRXENABLE);
} }
// acknowledge the interrupt if necessary
outl(status, chip->port + IPR);
// snd_printk(KERN_INFO "interrupt %08x\n", status);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment