[KARMIC ARM] UBUNTU: SAUCE: Fix hang in IRQ handler in ipu driver

Manoj Iyer manoj.iyer at canonical.com
Fri Jul 17 19:26:25 UTC 2009


The babbage board boots to command prompt, after a period of inactivity, 
the ipu driver turns off the display. There is a deadlock condition in the 
driver when IRQs are disabled inside the IRQ handler, and this causes the 
system not to respond to any keyboard inputs, patch fixes this hang.

With this patch and the previous patch to timer, 2.6.31-rc1 will boot on a 
babbage board and be usable.

>From 899a309dc8d4a195cda636b4b01502c16855a301 Mon Sep 17 00:00:00 2001
From: Dinh Nguyen <Dinh.Nguyen at freescale.com>
Date: Fri, 17 Jul 2009 14:16:16 -0500
Subject: [PATCH] UBUNTU: SAUCE: Fix hang in IRQ handler in ipu driver

Signed-off-by: Manoj Iyer <manoj.iyer at canonical.com>

Author:    Dinh Nguyen <Dinh.Nguyen at freescale.com>
---
  drivers/mxc/ipu3/ipu_common.c |    9 ---------
  1 files changed, 0 insertions(+), 9 deletions(-)

diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c
index 5dc278f..5dc4023 100644
--- a/drivers/mxc/ipu3/ipu_common.c
+++ b/drivers/mxc/ipu3/ipu_common.c
@@ -1421,11 +1421,6 @@ static irqreturn_t ipu_irq_handler(int irq, void *desc)
  	const int err_reg[] = { 5, 6, 9, 10, 0 };
  	const int int_reg[] = { 1, 2, 3, 4, 11, 12, 13, 14, 15, 0 };

-	if (g_ipu_irq[1]) {
-		disable_irq(g_ipu_irq[0]);
-		disable_irq(g_ipu_irq[1]);
-	}
-
  	for (i = 0;; i++) {
  		if (err_reg[i] == 0)
  			break;
@@ -1461,10 +1456,6 @@ static irqreturn_t ipu_irq_handler(int irq, void *desc)
  		}
  	}

-	if (g_ipu_irq[1]) {
-		enable_irq(g_ipu_irq[0]);
-		enable_irq(g_ipu_irq[1]);
-	}
  	return result;
  }

-- 
1.6.3.3

  --- manjo




More information about the kernel-team mailing list