Ok... I'm back. Replies to the long queue of messages will be sent as I have time to try the various patches.
Tyson Whitehead wrote:
Takashi Iwai wrote:
diff -r 82e6201fc907 sound/isa/es18xx.c --- a/sound/isa/es18xx.c Mon Mar 17 14:36:24 2008 +0100 +++ b/sound/isa/es18xx.c Mon Mar 17 17:32:59 2008 +0100 @@ -765,9 +765,10 @@ static irqreturn_t snd_es18xx_interrupt( /* Read Interrupt status */ status = snd_es18xx_mixer_read(chip, 0x7f) >> 4; } -#if 0
- else {
status = 0;
+#ifdef CONFIG_ALPHA
- if (!(status & (AUDIO1_IRQ | AUDIO2_IRQ))) {
if (inb(chip->port + 0x0C) & 0x01) status |= AUDIO1_IRQ; if (snd_es18xx_mixer_read(chip, 0x7A) & 0x80)/* status = 0; */
@@ -777,7 +778,6 @@ static irqreturn_t snd_es18xx_interrupt( status |= HWV_IRQ; } #endif
- /* Audio 1 & Audio 2 */ if (status & AUDIO2_IRQ) { if (chip->active & DAC2)
This looks like it should accomplish the same thing (assuming not bits get set in status on the initial attempt to read it), without affecting other platforms and possible the alpha if anyone has a card that just works for whatever reason. A better patch all around. : )
Unfortunately, this does nothing to fix the ES1888 on my system. Same broken behavior as described previously. I'll try something else in the queue later today after I get some sleep...