On Tue, May 5, 2009 at 2:23 AM, Nelson Castillo <[email protected]> wrote: > On Sun, May 3, 2009 at 12:17 PM, Nelson Castillo > <[email protected]> wrote: > (cut) >> [21474538.375000] regulator: ldo2: 3300 mV normal >> [21474538.385000] regulator: ldo3: 3000 mV normal >> [21474538.395000] regulator: ldo4: 3200 mV normal >> [21474538.405000] regulator: ldo5: 3000 mV normal >> [21474538.405000] regulator: ldo6: 3000 mV normal >> [21474538.410000] regulator: hcldo: 2000 <--> 3300 mV normal >> [21474538.415000] regulator: memldo: 1800 mV normal >> >> --- New kernel stops printing information here ---
Ok. It was a deadlock :-/ Found it. Patch attached. Let's hope it's not too late. Nelson.-
From: Nelson Castillo <[email protected]> Date: Thu, 7 May 2009 20:54:58 -0500 Subject: [PATCH] pcf50633: Fix unsafe disable_irq Without this change GTA02 bootstrap will deadlock. As pointed out in other patches this is the case since the merge of: commit 3aa551c9b4c40018f0e261a178e3d25478dc04a9 Author: Thomas Gleixner <[email protected]> Date: Mon Mar 23 18:28:15 2009 +0100 genirq: add threaded interrupt handler support Add support for threaded interrupt handlers Signed-off-by: Nelson Castillo <[email protected]> diff --git a/drivers/mfd/pcf50633-core.c b/drivers/mfd/pcf50633-core.c index 7793932..11a6248 100644 --- a/drivers/mfd/pcf50633-core.c +++ b/drivers/mfd/pcf50633-core.c @@ -443,7 +443,7 @@ static irqreturn_t pcf50633_irq(int irq, void *data) dev_dbg(pcf->dev, "pcf50633_irq\n"); get_device(pcf->dev); - disable_irq(pcf->irq); + disable_irq_nosync(pcf->irq); schedule_work(&pcf->irq_work); return IRQ_HANDLED;
