1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-10 22:53:08 +02:00
openwrt-xburst/target/linux/s3c24xx/patches-2.6.24/1193-fix-pcf50633-add-back-gratuitous-isr-work-call-in-re.patch
mirko fc54b9bf15 changed Makefile and profiles, added patches for kernel 2.6.24
(stable-branch of Openmoko)


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13613 3c298f89-4303-0410-b956-a3cf2f4a3e73
2008-12-12 11:58:53 +00:00

39 lines
1.3 KiB
Diff

From b6aa20d6e44fccefba7ca933d11befba3611a68a Mon Sep 17 00:00:00 2001
From: Andy Green <andy@openmoko.com>
Date: Wed, 2 Jul 2008 22:40:58 +0100
Subject: [PATCH] fix-pcf50633-add-back-gratuitous-isr-work-call-in-resume.patch
Sean McNeil reports that he doesn't get pcf50633 interrupts any
more after resume. This adds back the call to ISR work in
the resume, removal of which is probably to do with it.
Signed-off-by: Andy Green <andy@openmoko.com>
---
drivers/i2c/chips/pcf50633.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
index 6e50ae8..037ae04 100644
--- a/drivers/i2c/chips/pcf50633.c
+++ b/drivers/i2c/chips/pcf50633.c
@@ -2474,6 +2474,16 @@ static int pcf50633_resume(struct device *dev)
mutex_unlock(&pcf->lock);
+ /* gratuitous call to PCF work function, in the case that the PCF
+ * interrupt edge was missed during resume, this forces the pending
+ * register clear and lifts the interrupt back high again. In the
+ * case nothing is waiting for service, no harm done.
+ */
+
+ get_device(&pcf->client.dev);
+ if (!schedule_work(&pcf->work) && !pcf->working)
+ dev_err(&pcf->client.dev, "resume work item may be lost\n");
+
callback_all_resume_dependencies(&pcf->resume_dependency);
return 0;
--
1.5.6.5