Commit d466e157 authored by David S. Miller's avatar David S. Miller

[SOUND PCI]: Update several drivers for irqreturn_t.

parent dcd887b6
......@@ -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);
......
......@@ -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;
}
......
......@@ -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;
}
/*
......
......@@ -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;
}
......
......@@ -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 =
......
......@@ -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;
}
......@@ -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
......
......@@ -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;
}
/*
......
......@@ -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 =
......
......@@ -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;
}
......
......@@ -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)
......
......@@ -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;
}
......
......@@ -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;
}
/*
......
......@@ -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 =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment