This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / sound / pcmcia / pdaudiocf / pdaudiocf_irq.c
index bc019ea..7c5f21e 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);
+       struct snd_pdacf *chip = dev;
        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)
@@ -203,7 +204,7 @@ static inline void pdacf_transfer_stereo24be(u8 *dst, u32 xor, unsigned int size
        }
 }
 
-static void pdacf_transfer(pdacf_t *chip, unsigned int size, unsigned int off)
+static void pdacf_transfer(struct snd_pdacf *chip, unsigned int size, unsigned int off)
 {
        unsigned long rdp_port = chip->port + PDAUDIOCF_REG_MD;
        unsigned int xor = chip->pcm_xor;
@@ -257,7 +258,7 @@ static void pdacf_transfer(pdacf_t *chip, unsigned int size, unsigned int off)
 
 void pdacf_tasklet(unsigned long private_data)
 {
-       pdacf_t *chip = snd_magic_cast(pdacf_t, (void *)private_data, return);
+       struct snd_pdacf *chip = (struct snd_pdacf *) private_data;
        int size, off, cont, rdp, wdp;
 
        if ((chip->chip_status & (PDAUDIOCF_STAT_IS_STALE|PDAUDIOCF_STAT_IS_CONFIGURED)) != PDAUDIOCF_STAT_IS_CONFIGURED)