[media] media: i.MX27 camera: return IRQ_NONE if no IRQ status bit is set
If active_bufs() list is empty and no IRQ status bit is set we are probably dealing with a share IRQ. Return IRQ_NONE in this case. Signed-off-by: Javier Martin <javier.martin@vista-silicon.com> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
8636ead8b2
commit
665ad8af8f
|
@ -1292,7 +1292,11 @@ static irqreturn_t mx27_camera_emma_irq(int irq_emma, void *data)
|
||||||
if (list_empty(&pcdev->active_bufs)) {
|
if (list_empty(&pcdev->active_bufs)) {
|
||||||
dev_warn(pcdev->dev, "%s: called while active list is empty\n",
|
dev_warn(pcdev->dev, "%s: called while active list is empty\n",
|
||||||
__func__);
|
__func__);
|
||||||
goto irq_ok;
|
|
||||||
|
if (!status) {
|
||||||
|
spin_unlock(&pcdev->lock);
|
||||||
|
return IRQ_NONE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status & (1 << 7)) { /* overflow */
|
if (status & (1 << 7)) { /* overflow */
|
||||||
|
@ -1323,7 +1327,6 @@ static irqreturn_t mx27_camera_emma_irq(int irq_emma, void *data)
|
||||||
mx27_camera_frame_done_emma(pcdev, 1, false);
|
mx27_camera_frame_done_emma(pcdev, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
irq_ok:
|
|
||||||
spin_unlock(&pcdev->lock);
|
spin_unlock(&pcdev->lock);
|
||||||
writel(status, pcdev->base_emma + PRP_INTRSTATUS);
|
writel(status, pcdev->base_emma + PRP_INTRSTATUS);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue