aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAndy Green <andy@openmoko.com>2008-12-03 13:31:56 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-12-03 13:31:56 +0000
commit2000cbf24f0767cd5491932b375940d4873a2219 (patch)
treefaa4b80fc21db7837b4240b541f6093a75a51dbc /drivers
parent2266dd71eb3953565c885548243d0d16c6eaebf6 (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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/pcf50633-core.c9
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);