Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52c28d4b authored by Jeff Garzik's avatar Jeff Garzik Committed by Mauro Carvalho Chehab
Browse files

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: default avatarJeff Garzik <jgarzik@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 387a299b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -91,7 +91,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);
static void planb_irq(int, void *);
static void release_planb(void);
int init_planbs(struct video_init *);

@@ -1315,7 +1314,7 @@ cmd_tab_data_end:
	return c1;
}

static void planb_irq(int irq, void *dev_id)
static irqreturn_t planb_irq(int irq, void *dev_id)
{
	unsigned int stat, astat;
	struct planb *pb = (struct planb *)dev_id;
@@ -1358,13 +1357,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;
}

/*******************************
@@ -2090,7 +2090,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) "