diff options
author | Jeff Garzik <jeff@garzik.org> | 2007-10-26 08:00:37 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-11-04 18:41:20 -0500 |
commit | 52c28d4b0a0849f608c1623f97d936a0d7ffbfea (patch) | |
tree | 5f291fc732e71241c3e6de4d8af29b7d73f5196c /drivers/media/video/planb.c | |
parent | 387a299bdd9311fc8532fd8ab5109a35cee510af (diff) |
V4L/DVB (6407): planb: fix obvious interrupt handling bugs
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 'drivers/media/video/planb.c')
-rw-r--r-- | drivers/media/video/planb.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/video/planb.c b/drivers/media/video/planb.c index ce4b2f9791ee..36047d4e70f6 100644 --- a/drivers/media/video/planb.c +++ b/drivers/media/video/planb.c | |||
@@ -91,7 +91,6 @@ static void planb_close(struct video_device *); | |||
91 | static int planb_ioctl(struct video_device *, unsigned int, void *); | 91 | static int planb_ioctl(struct video_device *, unsigned int, void *); |
92 | static int planb_init_done(struct video_device *); | 92 | static int planb_init_done(struct video_device *); |
93 | static int planb_mmap(struct video_device *, const char *, unsigned long); | 93 | static int planb_mmap(struct video_device *, const char *, unsigned long); |
94 | static void planb_irq(int, void *); | ||
95 | static void release_planb(void); | 94 | static void release_planb(void); |
96 | int init_planbs(struct video_init *); | 95 | int init_planbs(struct video_init *); |
97 | 96 | ||
@@ -1315,7 +1314,7 @@ cmd_tab_data_end: | |||
1315 | return c1; | 1314 | return c1; |
1316 | } | 1315 | } |
1317 | 1316 | ||
1318 | static void planb_irq(int irq, void *dev_id) | 1317 | static irqreturn_t planb_irq(int irq, void *dev_id) |
1319 | { | 1318 | { |
1320 | unsigned int stat, astat; | 1319 | unsigned int stat, astat; |
1321 | struct planb *pb = (struct planb *)dev_id; | 1320 | struct planb *pb = (struct planb *)dev_id; |
@@ -1358,13 +1357,14 @@ static void planb_irq(int irq, void *dev_id) | |||
1358 | pb->frame_stat[fr] = GBUFFER_DONE; | 1357 | pb->frame_stat[fr] = GBUFFER_DONE; |
1359 | pb->grabbing--; | 1358 | pb->grabbing--; |
1360 | wake_up_interruptible(&pb->capq); | 1359 | wake_up_interruptible(&pb->capq); |
1361 | return; | 1360 | return IRQ_HANDLED; |
1362 | } | 1361 | } |
1363 | /* incorrect interrupts? */ | 1362 | /* incorrect interrupts? */ |
1364 | pb->intr_mask = PLANB_CLR_IRQ; | 1363 | pb->intr_mask = PLANB_CLR_IRQ; |
1365 | out_le32(&pb->planb_base->intr_stat, PLANB_CLR_IRQ); | 1364 | out_le32(&pb->planb_base->intr_stat, PLANB_CLR_IRQ); |
1366 | printk(KERN_ERR "PlanB: IRQ lockup, cleared intrrupts" | 1365 | printk(KERN_ERR "PlanB: IRQ lockup, cleared intrrupts" |
1367 | " unconditionally\n"); | 1366 | " unconditionally\n"); |
1367 | return IRQ_HANDLED; | ||
1368 | } | 1368 | } |
1369 | 1369 | ||
1370 | /******************************* | 1370 | /******************************* |
@@ -2090,7 +2090,7 @@ static int init_planb(struct planb *pb) | |||
2090 | /* clear interrupt mask */ | 2090 | /* clear interrupt mask */ |
2091 | pb->intr_mask = PLANB_CLR_IRQ; | 2091 | pb->intr_mask = PLANB_CLR_IRQ; |
2092 | 2092 | ||
2093 | result = request_irq(pb->irq, planb_irq, 0, "PlanB", (void *)pb); | 2093 | result = request_irq(pb->irq, planb_irq, 0, "PlanB", pb); |
2094 | if (result < 0) { | 2094 | if (result < 0) { |
2095 | if (result==-EINVAL) | 2095 | if (result==-EINVAL) |
2096 | printk(KERN_ERR "PlanB: Bad irq number (%d) " | 2096 | printk(KERN_ERR "PlanB: Bad irq number (%d) " |