aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/davinci/vpif_display.c
diff options
context:
space:
mode:
authorManjunath Hadli <manjunath.hadli@ti.com>2012-04-13 03:43:10 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-07-30 17:59:50 -0400
commitb1fc42302b75bb9c4940317e3bf2f1e2efdb3a1a (patch)
tree934aef5be42746a192fa403d66324b4ec3b3f01d /drivers/media/video/davinci/vpif_display.c
parent4099040eaaa4fe543c4e915b8cab51b1d843edee (diff)
[media] davinci: vpif: add check for genuine interrupts in the isr
As the same interrupt is shared between capture and display devices, sometimes we get isr calls where the interrupt might not genuinely belong to capture or display. Hence, add a condition in the isr to check for interrupt ownership and channel number to make sure we do not service wrong interrupts. Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/davinci/vpif_display.c')
-rw-r--r--drivers/media/video/davinci/vpif_display.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/video/davinci/vpif_display.c b/drivers/media/video/davinci/vpif_display.c
index e6488ee7db18..a5049a92f851 100644
--- a/drivers/media/video/davinci/vpif_display.c
+++ b/drivers/media/video/davinci/vpif_display.c
@@ -307,6 +307,9 @@ static irqreturn_t vpif_channel_isr(int irq, void *dev_id)
307 int channel_id = 0; 307 int channel_id = 0;
308 308
309 channel_id = *(int *)(dev_id); 309 channel_id = *(int *)(dev_id);
310 if (!vpif_intr_status(channel_id + 2))
311 return IRQ_NONE;
312
310 ch = dev->dev[channel_id]; 313 ch = dev->dev[channel_id];
311 field = ch->common[VPIF_VIDEO_INDEX].fmt.fmt.pix.field; 314 field = ch->common[VPIF_VIDEO_INDEX].fmt.fmt.pix.field;
312 for (i = 0; i < VPIF_NUMOBJECTS; i++) { 315 for (i = 0; i < VPIF_NUMOBJECTS; i++) {