Commit 390e4a17 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] irqs: multimedia drivers

Update a couple of media drivers to the new IRQ API.

Some stuff in there doesn't link btw:

drivers/built-in.o: In function `rds_waitread':
drivers/built-in.o(.text+0x6c152): undefined reference to `aci_port'
drivers/built-in.o: In function `rds_rawwrite':
drivers/built-in.o(.text+0x6c1a3): undefined reference to `aci_port'
parent 421dfa0e
...@@ -192,7 +192,7 @@ void saa7146_setgpio(struct saa7146_dev *dev, int port, u32 data) ...@@ -192,7 +192,7 @@ void saa7146_setgpio(struct saa7146_dev *dev, int port, u32 data)
/********************************************************************************/ /********************************************************************************/
/* interrupt handler */ /* interrupt handler */
static void interrupt_hw(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t interrupt_hw(int irq, void *dev_id, struct pt_regs *regs)
{ {
struct saa7146_dev *dev = (struct saa7146_dev*)dev_id; struct saa7146_dev *dev = (struct saa7146_dev*)dev_id;
u32 isr = 0; u32 isr = 0;
...@@ -203,7 +203,7 @@ static void interrupt_hw(int irq, void *dev_id, struct pt_regs *regs) ...@@ -203,7 +203,7 @@ static void interrupt_hw(int irq, void *dev_id, struct pt_regs *regs)
/* is this our interrupt? */ /* is this our interrupt? */
if ( 0 == isr ) { if ( 0 == isr ) {
/* nope, some other device */ /* nope, some other device */
return; return IRQ_NONE;
} }
saa7146_write(dev, ISR, isr); saa7146_write(dev, ISR, isr);
...@@ -254,6 +254,7 @@ static void interrupt_hw(int irq, void *dev_id, struct pt_regs *regs) ...@@ -254,6 +254,7 @@ static void interrupt_hw(int irq, void *dev_id, struct pt_regs *regs)
ERR(("disabling interrupt source(s)!\n")); ERR(("disabling interrupt source(s)!\n"));
IER_DISABLE(dev,isr); IER_DISABLE(dev,isr);
} }
return IRQ_HANDLED;
} }
/*********************************************************************************/ /*********************************************************************************/
......
...@@ -442,11 +442,12 @@ static void send_osd_data(struct saa7146 *saa) ...@@ -442,11 +442,12 @@ static void send_osd_data(struct saa7146 *saa)
} }
} }
static void saa7146_irq(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t saa7146_irq(int irq, void *dev_id, struct pt_regs *regs)
{ {
struct saa7146 *saa = (struct saa7146 *) dev_id; struct saa7146 *saa = (struct saa7146 *) dev_id;
u32 stat, astat; u32 stat, astat;
int count; int count;
int handled = 0;
count = 0; count = 0;
while (1) { while (1) {
...@@ -454,7 +455,8 @@ static void saa7146_irq(int irq, void *dev_id, struct pt_regs *regs) ...@@ -454,7 +455,8 @@ static void saa7146_irq(int irq, void *dev_id, struct pt_regs *regs)
stat = saaread(SAA7146_ISR); stat = saaread(SAA7146_ISR);
astat = stat & saaread(SAA7146_IER); astat = stat & saaread(SAA7146_IER);
if (!astat) if (!astat)
return; break;
handled = 1;
saawrite(astat, SAA7146_ISR); saawrite(astat, SAA7146_ISR);
if (astat & SAA7146_PSR_DEBI_S) { if (astat & SAA7146_PSR_DEBI_S) {
do_irq_send_data(saa); do_irq_send_data(saa);
...@@ -611,6 +613,7 @@ static void saa7146_irq(int irq, void *dev_id, struct pt_regs *regs) ...@@ -611,6 +613,7 @@ static void saa7146_irq(int irq, void *dev_id, struct pt_regs *regs)
"stradis%d: IRQ loop cleared\n", saa->nr); "stradis%d: IRQ loop cleared\n", saa->nr);
} }
} }
return IRQ_RETVAL(handled);
} }
static int ibm_send_command(struct saa7146 *saa, static int ibm_send_command(struct saa7146 *saa,
......
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