Messages in this thread Patch in this message | | | Date | Mon, 21 Apr 2003 13:07:12 +0300 | From | Muli Ben-Yehuda <> | Subject | [TRIDENT] teach trident_interrupt() about irqreturn_t |
| |
Hi Linus,
This patch updates trident_interrupt() to return IRQ_HANDLED and cleans it up a little while I'm at it. Compiles, boots and plays mp3s fine. Patch is against 2.5.68-cvs, please apply.
Index: sound/oss/trident.c =================================================================== RCS file: /home/cvs/linux-2.5/sound/oss/trident.c,v retrieving revision 1.20 diff -u -r1.20 trident.c --- sound/oss/trident.c 8 Apr 2003 16:46:36 -0000 1.20 +++ sound/oss/trident.c 21 Apr 2003 09:02:01 -0000 @@ -1728,7 +1728,7 @@ } } -static void trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) { struct trident_card *card = (struct trident_card *)dev_id; u32 event; @@ -1753,15 +1753,18 @@ ali_queue_task(card, gpio&0x07); } event = inl(TRID_REG(card, T4D_MISCINT)); - outl(event | (ST_TARGET_REACHED | MIXER_OVERFLOW | MIXER_UNDERFLOW), TRID_REG(card, T4D_MISCINT)); - spin_unlock(&card->lock); - return; + event |= (ST_TARGET_REACHED | MIXER_OVERFLOW | MIXER_UNDERFLOW); + outl(event, TRID_REG(card, T4D_MISCINT)); + goto done; } /* manually clear interrupt status, bad hardware design, blame T^2 */ outl((ST_TARGET_REACHED | MIXER_OVERFLOW | MIXER_UNDERFLOW), TRID_REG(card, T4D_MISCINT)); + +done: spin_unlock(&card->lock); + return IRQ_HANDLED; } /* in this loop, dmabuf.count signifies the amount of data that is waiting to be copied to -- Muli Ben-Yehuda http://www.mulix.org
[unhandled content-type:application/pgp-signature] | |