diff options
author | Andy Green <andy@openmoko.com> | 2008-12-03 13:31:56 +0000 |
---|---|---|
committer | Andy Green <agreen@pads.home.warmcat.com> | 2008-12-03 13:31:56 +0000 |
commit | 2000cbf24f0767cd5491932b375940d4873a2219 (patch) | |
tree | faa4b80fc21db7837b4240b541f6093a75a51dbc | |
parent | 2266dd71eb3953565c885548243d0d16c6eaebf6 (diff) |
revert-gta03-edge-interrupt.patch
Uh oh... boot dies on GTA03 with level interrupt on pcf50633.. just stalls
after the interrupt is requested without managing to reach the ISR.
This patch bodges it back to falling edge which is working.
Signed-off-by: Andy Green <andy@openmoko.com>
-rw-r--r-- | drivers/mfd/pcf50633-core.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mfd/pcf50633-core.c b/drivers/mfd/pcf50633-core.c index ec7a7727228..13dd971207f 100644 --- a/drivers/mfd/pcf50633-core.c +++ b/drivers/mfd/pcf50633-core.c @@ -367,7 +367,7 @@ static void pcf50633_irq_worker(struct work_struct *work) put_device(pcf->dev); - enable_irq(pcf->irq); +// enable_irq(pcf->irq); return; reschedule: schedule_work(&pcf->irq_work); @@ -381,9 +381,11 @@ static irqreturn_t pcf50633_irq(int irq, void *data) { struct pcf50633 *pcf = data; + printk(KERN_ERR "pcf50633_irq\n"); + get_device(pcf->dev); - disable_irq(pcf->irq); +// disable_irq(pcf->irq); schedule_work(&pcf->irq_work); return IRQ_HANDLED; @@ -548,12 +550,13 @@ static int pcf50633_probe(struct i2c_client *client, platform_device_add(pdev); } + printk(KERN_ERR "q\n"); pcf->irq = client->irq; if (client->irq) { ret = request_irq(client->irq, pcf50633_irq, - IRQF_TRIGGER_LOW, "pcf50633", pcf); + IRQF_TRIGGER_FALLING, "pcf50633", pcf); if (ret) { dev_err(pcf->dev, "Failed to request IRQ %d\n", ret); |