diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-26 10:00:37 -0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-26 10:00:37 -0200 |
commit | 19388b4b929315e487572fdd1ed7bc071ac7bea9 (patch) | |
tree | 4bb322c708549166f3eb7e7d1a4e94959a7c0445 /linux/drivers | |
parent | 0258645f9b36d4fb6043d59f0613f3f3efb38282 (diff) | |
download | mediapointer-dvb-s2-19388b4b929315e487572fdd1ed7bc071ac7bea9.tar.gz mediapointer-dvb-s2-19388b4b929315e487572fdd1ed7bc071ac7bea9.tar.bz2 |
planb: fix obvious interrupt handling bugs
From: Jeff Garzik <jeff@garzik.org>
irq handlers have returned a return value for years now... catch up with
the times.
Also, ditch unneeded prototype.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers')
-rw-r--r-- | linux/drivers/media/video/planb.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/linux/drivers/media/video/planb.c b/linux/drivers/media/video/planb.c index 5da38b139..358dc2996 100644 --- a/linux/drivers/media/video/planb.c +++ b/linux/drivers/media/video/planb.c @@ -92,11 +92,6 @@ static void planb_close(struct video_device *); static int planb_ioctl(struct video_device *, unsigned int, void *); static int planb_init_done(struct video_device *); static int planb_mmap(struct video_device *, const char *, unsigned long); -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) -static void planb_irq(int, void *, struct pt_regs *); -#else -static void planb_irq(int, void *); -#endif static void release_planb(void); int init_planbs(struct video_init *); @@ -1321,9 +1316,9 @@ cmd_tab_data_end: } #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) -static void planb_irq(int irq, void *dev_id, struct pt_regs * regs) +static irqreturn_t planb_irq(int irq, void *dev_id, struct pt_regs * regs) #else -static void planb_irq(int irq, void *dev_id) +static irqreturn_t planb_irq(int irq, void *dev_id) #endif { unsigned int stat, astat; @@ -1367,13 +1362,14 @@ static void planb_irq(int irq, void *dev_id) pb->frame_stat[fr] = GBUFFER_DONE; pb->grabbing--; wake_up_interruptible(&pb->capq); - return; + return IRQ_HANDLED; } /* incorrect interrupts? */ pb->intr_mask = PLANB_CLR_IRQ; out_le32(&pb->planb_base->intr_stat, PLANB_CLR_IRQ); printk(KERN_ERR "PlanB: IRQ lockup, cleared intrrupts" " unconditionally\n"); + return IRQ_HANDLED; } /******************************* @@ -2099,7 +2095,7 @@ static int init_planb(struct planb *pb) /* clear interrupt mask */ pb->intr_mask = PLANB_CLR_IRQ; - result = request_irq(pb->irq, planb_irq, 0, "PlanB", (void *)pb); + result = request_irq(pb->irq, planb_irq, 0, "PlanB", pb); if (result < 0) { if (result==-EINVAL) printk(KERN_ERR "PlanB: Bad irq number (%d) " |