patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / sound / pcmcia / pdaudiocf / pdaudiocf_irq.c
index bc019ea..14443f0 100644 (file)
 /*
  *
  */
-void pdacf_interrupt(int irq, void *dev, struct pt_regs *regs)
+irqreturn_t pdacf_interrupt(int irq, void *dev, struct pt_regs *regs)
 {
-       pdacf_t *chip = snd_magic_cast(pdacf_t, dev, return);
+       pdacf_t *chip = snd_magic_cast(pdacf_t, dev, return IRQ_NONE);
        unsigned short stat;
 
        if ((chip->chip_status & (PDAUDIOCF_STAT_IS_STALE|
                                  PDAUDIOCF_STAT_IS_CONFIGURED|
                                  PDAUDIOCF_STAT_IS_SUSPENDED)) != PDAUDIOCF_STAT_IS_CONFIGURED)
-               return;
+               return IRQ_HANDLED;     /* IRQ_NONE here? */
 
        stat = inw(chip->port + PDAUDIOCF_REG_ISR);
        if (stat & (PDAUDIOCF_IRQLVL|PDAUDIOCF_IRQOVR)) {
@@ -47,6 +47,7 @@ void pdacf_interrupt(int irq, void *dev, struct pt_regs *regs)
        }
        if (regs != NULL)
                snd_ak4117_check_rate_and_errors(chip->ak4117, 0);
+       return IRQ_HANDLED;
 }
 
 static inline void pdacf_transfer_mono16(u16 *dst, u16 xor, unsigned int size, unsigned long rdp_port)