diff options
| author | David S. Miller <davem@nuts.ninka.net> | 2003-04-20 10:04:40 -0700 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2003-04-20 10:04:40 -0700 |
| commit | d466e157356d5229ac86cf8d14cd5992570a04ec (patch) | |
| tree | 778222a5bc3fe262b35b9abb5c175393ec0be4e2 | |
| parent | dcd887b60defec939f06c27da452bc90ab122325 (diff) | |
[SOUND PCI]: Update several drivers for irqreturn_t.
| -rw-r--r-- | include/sound/emu10k1.h | 3 | ||||
| -rw-r--r-- | sound/pci/ali5451/ali5451.c | 9 | ||||
| -rw-r--r-- | sound/pci/cmipci.c | 6 | ||||
| -rw-r--r-- | sound/pci/cs4281.c | 10 | ||||
| -rw-r--r-- | sound/pci/cs46xx/cs46xx_lib.c | 6 | ||||
| -rw-r--r-- | sound/pci/emu10k1/irq.c | 4 | ||||
| -rw-r--r-- | sound/pci/es1938.c | 6 | ||||
| -rw-r--r-- | sound/pci/es1968.c | 8 | ||||
| -rw-r--r-- | sound/pci/fm801.c | 6 | ||||
| -rw-r--r-- | sound/pci/ice1712/ice1712.c | 4 | ||||
| -rw-r--r-- | sound/pci/korg1212/korg1212.c | 8 | ||||
| -rw-r--r-- | sound/pci/maestro3.c | 8 | ||||
| -rw-r--r-- | sound/pci/sonicvibes.c | 8 | ||||
| -rw-r--r-- | sound/pci/ymfpci/ymfpci_main.c | 4 |
14 files changed, 58 insertions, 32 deletions
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h index 4161dfd1f2b3..73b0b3935275 100644 --- a/include/sound/emu10k1.h +++ b/include/sound/emu10k1.h @@ -30,6 +30,7 @@ #include <sound/hwdep.h> #include <sound/ac97_codec.h> #include <sound/util_mem.h> +#include <linux/interrupt.h> #include <asm/io.h> #ifndef PCI_VENDOR_ID_CREATIVE @@ -1014,7 +1015,7 @@ int snd_emu10k1_fx8010_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); int snd_emu10k1_mixer(emu10k1_t * emu); int snd_emu10k1_fx8010_new(emu10k1_t *emu, int device, snd_hwdep_t ** rhwdep); -void snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs); +irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs); /* initialization */ void snd_emu10k1_voice_init(emu10k1_t * emu, int voice); diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index b9c340b45c29..4fd0f86b73c0 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c @@ -1032,15 +1032,16 @@ static void snd_ali_interrupt(ali_t * codec) } -static void snd_ali_card_interrupt(int irq, - void *dev_id, - struct pt_regs *regs) +static irqreturn_t snd_ali_card_interrupt(int irq, + void *dev_id, + struct pt_regs *regs) { ali_t *codec = snd_magic_cast(ali_t, dev_id, return); if (codec == NULL) - return; + return IRQ_NONE; snd_ali_interrupt(codec); + return IRQ_HANDLED; } diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index bbf17e0a3f71..88da26435398 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c @@ -1640,7 +1640,7 @@ static int snd_cmipci_capture_spdif_hw_free(snd_pcm_substream_t *subs) /* * interrupt handler */ -static void snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *regs) { cmipci_t *cm = snd_magic_cast(cmipci_t, dev_id, return); unsigned int status, mask = 0; @@ -1648,7 +1648,7 @@ static void snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *regs) /* fastpath out, to ease interrupt sharing */ status = snd_cmipci_read(cm, CM_REG_INT_STATUS); if (!(status & CM_INTR)) - return; + return IRQ_NONE; /* acknowledge interrupt */ spin_lock(&cm->reg_lock); @@ -1669,6 +1669,8 @@ static void snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *regs) if ((status & CM_CHINT1) && cm->channel[1].running) snd_pcm_period_elapsed(cm->channel[1].substream); } + + return IRQ_HANDLED; } /* diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index 6b3be4891d57..8e8993982e17 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c @@ -511,7 +511,7 @@ struct snd_cs4281 { }; -static void snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); +static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); static struct pci_device_id snd_cs4281_ids[] __devinitdata = { { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */ @@ -1883,18 +1883,18 @@ static int __devinit snd_cs4281_midi(cs4281_t * chip, int device, snd_rawmidi_t * Interrupt handler */ -static void snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs) { cs4281_t *chip = snd_magic_cast(cs4281_t, dev_id, return); unsigned int status, dma, val; cs4281_dma_t *cdma; if (chip == NULL) - return; + return IRQ_NONE; status = snd_cs4281_peekBA0(chip, BA0_HISR); if ((status & 0x7fffffff) == 0) { snd_cs4281_pokeBA0(chip, BA0_HICR, BA0_HICR_EOI); - return; + return IRQ_NONE; } if (status & (BA0_HISR_DMA(0)|BA0_HISR_DMA(1)|BA0_HISR_DMA(2)|BA0_HISR_DMA(3))) { @@ -1949,6 +1949,8 @@ static void snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs) /* EOI to the PCI part... reenables interrupts */ snd_cs4281_pokeBA0(chip, BA0_HICR, BA0_HICR_EOI); + + return IRQ_HANDLED; } diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c index 6f1a5618bc9b..9a14be15cfa1 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c @@ -1217,7 +1217,7 @@ static int snd_cs46xx_capture_prepare(snd_pcm_substream_t * substream) return 0; } -static void snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) { cs46xx_t *chip = snd_magic_cast(cs46xx_t, dev_id, return); u32 status1; @@ -1234,7 +1234,7 @@ static void snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) status1 = snd_cs46xx_peekBA0(chip, BA0_HISR); if ((status1 & 0x7fffffff) == 0) { snd_cs46xx_pokeBA0(chip, BA0_HICR, HICR_CHGM | HICR_IEV); - return; + return IRQ_NONE; } #ifdef CONFIG_SND_CS46XX_NEW_DSP @@ -1305,6 +1305,8 @@ static void snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) * EOI to the PCI part....reenables interrupts */ snd_cs46xx_pokeBA0(chip, BA0_HICR, HICR_CHGM | HICR_IEV); + + return IRQ_HANDLED; } static snd_pcm_hardware_t snd_cs46xx_playback = diff --git a/sound/pci/emu10k1/irq.c b/sound/pci/emu10k1/irq.c index 00c5b0798041..d880f8c415c1 100644 --- a/sound/pci/emu10k1/irq.c +++ b/sound/pci/emu10k1/irq.c @@ -30,7 +30,7 @@ #include <sound/core.h> #include <sound/emu10k1.h> -void snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) +irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) { emu10k1_t *emu = snd_magic_cast(emu10k1_t, dev_id, return); unsigned int status; @@ -145,4 +145,6 @@ void snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) outl(IPR_FXDSP, emu->port + IPR); } } + + return IRQ_HANDLED; } diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c index 5cf49ce8db43..071e7c002b25 100644 --- a/sound/pci/es1938.c +++ b/sound/pci/es1938.c @@ -249,7 +249,7 @@ struct _snd_es1938 { #endif }; -static void snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); +static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); static struct pci_device_id snd_es1938_ids[] __devinitdata = { { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */ @@ -1490,7 +1490,7 @@ static int __devinit snd_es1938_create(snd_card_t * card, /* -------------------------------------------------------------------- * Interrupt handler * -------------------------------------------------------------------- */ -static void snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs) { es1938_t *chip = snd_magic_cast(es1938_t, dev_id, return); unsigned char status, audiostatus; @@ -1549,6 +1549,8 @@ static void snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs) if (chip->rmidi) snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); } + + return IRQ_HANDLED; } #define ES1938_DMA_SIZE 64 diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index 885e1cc21d5a..7b8a617381ca 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c @@ -600,7 +600,7 @@ struct snd_es1968 { #endif }; -static void snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); +static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); static struct pci_device_id snd_es1968_ids[] __devinitdata = { /* Maestro 1 */ @@ -2009,13 +2009,13 @@ static void es1968_update_hw_volume(unsigned long private_data) /* * interrupt handler */ -static void snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs) { es1968_t *chip = snd_magic_cast(es1968_t, dev_id, return); u32 event; if (!(event = inb(chip->io_port + 0x1A))) - return; + return IRQ_NONE; outw(inw(chip->io_port + 4) & 1, chip->io_port + 4); @@ -2041,6 +2041,8 @@ static void snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs) } spin_unlock(&chip->substream_lock); } + + return IRQ_HANDLED; } /* diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c index 948aa8793be8..5109777f0056 100644 --- a/sound/pci/fm801.c +++ b/sound/pci/fm801.c @@ -481,7 +481,7 @@ static snd_pcm_uframes_t snd_fm801_capture_pointer(snd_pcm_substream_t * substre return bytes_to_frames(substream->runtime, ptr); } -static void snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *regs) { fm801_t *chip = snd_magic_cast(fm801_t, dev_id, return); unsigned short status; @@ -490,7 +490,7 @@ static void snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *regs) status = inw(FM801_REG(chip, IRQ_STATUS)); status &= FM801_IRQ_PLAYBACK|FM801_IRQ_CAPTURE|FM801_IRQ_MPU|FM801_IRQ_VOLUME; if (! status) - return; + return IRQ_NONE; /* ack first */ outw(status, FM801_REG(chip, IRQ_STATUS)); if (chip->pcm && (status & FM801_IRQ_PLAYBACK) && chip->playback_substream) { @@ -525,6 +525,8 @@ static void snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *regs) snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); if (status & FM801_IRQ_VOLUME) ;/* TODO */ + + return IRQ_HANDLED; } static snd_pcm_hardware_t snd_fm801_playback = diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c index 2f1a5951eb15..ed246ed5a8ed 100644 --- a/sound/pci/ice1712/ice1712.c +++ b/sound/pci/ice1712/ice1712.c @@ -398,7 +398,7 @@ int __devinit snd_ice1712_init_cs8427(ice1712_t *ice, int addr) * Interrupt handler */ -static void snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *regs) { ice1712_t *ice = snd_magic_cast(ice1712_t, dev_id, return); unsigned char status; @@ -462,6 +462,8 @@ static void snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *regs) outb(ICE1712_IRQ_CONPBK, ICEREG(ice, IRQSTAT)); } } + + return IRQ_HANDLED; } diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c index c00f21644969..dc8e50cb36ca 100644 --- a/sound/pci/korg1212/korg1212.c +++ b/sound/pci/korg1212/korg1212.c @@ -1133,18 +1133,18 @@ static void snd_korg1212_OnDSPDownloadComplete(korg1212_t *korg1212) snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_COMPLETE); } -static void snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs *regs) { u32 doorbellValue; korg1212_t *korg1212 = snd_magic_cast(korg1212_t, dev_id, return); if(irq != korg1212->irq) - return; + return IRQ_NONE; doorbellValue = readl(korg1212->inDoorbellPtr); if (!doorbellValue) - return; + return IRQ_NONE; spin_lock(&korg1212->lock); @@ -1218,6 +1218,8 @@ static void snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs *regs) korg1212->inIRQ--; spin_unlock(&korg1212->lock); + + return IRQ_HANDLED; } static int snd_korg1212_downloadDSPCode(korg1212_t *korg1212) diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c index 670151d213f2..8ee250caa5a9 100644 --- a/sound/pci/maestro3.c +++ b/sound/pci/maestro3.c @@ -1549,7 +1549,7 @@ static void snd_m3_update_ptr(m3_t *chip, m3_dma_t *s) } } -static void +static irqreturn_t snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs) { m3_t *chip = snd_magic_cast(m3_t, dev_id, ); @@ -1559,13 +1559,13 @@ snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs) status = inb(chip->iobase + 0x1A); if (status == 0xff) - return; + return IRQ_NONE; /* presumably acking the ints? */ outw(status, chip->iobase + 0x1A); /*if (in_suspend) - return;*/ + return IRQ_NONE;*/ /* * ack an assp int if its running @@ -1592,6 +1592,8 @@ snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs) /* XXX is this needed? */ if (status & 0x40) outb(0x40, chip->iobase+0x1A); + + return IRQ_HANDLED; } diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c index 2dfff68d791e..c507b8e1d011 100644 --- a/sound/pci/sonicvibes.c +++ b/sound/pci/sonicvibes.c @@ -596,18 +596,18 @@ static int snd_sonicvibes_trigger(sonicvibes_t * sonic, int what, int cmd) return result; } -static void snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_regs *regs) { sonicvibes_t *sonic = snd_magic_cast(sonicvibes_t, dev_id, return); unsigned char status; status = inb(SV_REG(sonic, STATUS)); if (!(status & (SV_DMAA_IRQ | SV_DMAC_IRQ | SV_MIDI_IRQ))) - return; + return IRQ_NONE; if (status == 0xff) { /* failure */ outb(sonic->irqmask = ~0, SV_REG(sonic, IRQMASK)); snd_printk("IRQ failure - interrupts disabled!!\n"); - return; + return IRQ_HANDLED; } if (sonic->pcm) { if (status & SV_DMAA_IRQ) @@ -654,6 +654,8 @@ static void snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_regs *regs snd_ctl_notify(sonic->card, SNDRV_CTL_EVENT_MASK_VALUE, &sonic->master_mute->id); snd_ctl_notify(sonic->card, SNDRV_CTL_EVENT_MASK_VALUE, &sonic->master_volume->id); } + + return IRQ_HANDLED; } /* diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index 42dd52b2f081..0aac9e2b219b 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -741,7 +741,7 @@ static void snd_ymfpci_irq_wait(ymfpci_t *chip) } } -static void snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *regs) { ymfpci_t *chip = snd_magic_cast(ymfpci_t, dev_id, return); u32 status, nvoice, mode; @@ -787,6 +787,8 @@ static void snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *regs) if (chip->rawmidi) snd_mpu401_uart_interrupt(irq, chip->rawmidi->private_data, regs); + + return IRQ_HANDLED; } static snd_pcm_hardware_t snd_ymfpci_playback = |
