aboutsummaryrefslogtreecommitdiff
path: root/drivers/mfd/pcf50633-core.c
diff options
context:
space:
mode:
authorMatt Hsu <matt@openmoko.org>2008-11-27 12:10:24 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-11-27 12:10:24 +0000
commitc58e690eb050bbf0d53f2eb9882d24b2b2c564d1 (patch)
treefd711fcdb886907bb9460246864ec66627046eb4 /drivers/mfd/pcf50633-core.c
parentd24f598760741b36f6a3b2f6ba3591b3b8685cf5 (diff)
change-the-irq-type-of-pcf50633.patch
change the IRQ type of pcf50633 (to LEVEL)
Diffstat (limited to 'drivers/mfd/pcf50633-core.c')
-rw-r--r--drivers/mfd/pcf50633-core.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/mfd/pcf50633-core.c b/drivers/mfd/pcf50633-core.c
index dd6a7949182..53429154d7e 100644
--- a/drivers/mfd/pcf50633-core.c
+++ b/drivers/mfd/pcf50633-core.c
@@ -367,6 +367,7 @@ static void pcf50633_irq_worker(struct work_struct *work)
put_device(pcf->dev);
+ enable_irq(pcf->irq);
return;
reschedule:
schedule_work(&pcf->irq_work);
@@ -381,6 +382,8 @@ static irqreturn_t pcf50633_irq(int irq, void *data)
struct pcf50633 *pcf = data;
get_device(pcf->dev);
+
+ disable_irq(pcf->irq);
schedule_work(&pcf->irq_work);
return IRQ_HANDLED;
@@ -549,7 +552,7 @@ static int pcf50633_probe(struct i2c_client *client,
if (client->irq) {
ret = request_irq(client->irq, pcf50633_irq,
- IRQF_TRIGGER_FALLING, "pcf50633", pcf);
+ IRQF_TRIGGER_LOW, "pcf50633", pcf);
if (ret) {
dev_err(pcf->dev, "Failed to request IRQ %d\n", ret);