summaryrefslogtreecommitdiffstats
path: root/target/linux/s3c24xx/patches-2.6.24/1193-fix-pcf50633-add-back-gratuitous-isr-work-call-in-re.patch
diff options
context:
space:
mode:
authormirko <mirko@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-12-12 11:58:53 +0000
committermirko <mirko@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-12-12 11:58:53 +0000
commitfc54b9bf158eea9cae647ce2c58f7d9989af173a (patch)
tree54644c1229434d7ee13c5872bda4129e34337fc0 /target/linux/s3c24xx/patches-2.6.24/1193-fix-pcf50633-add-back-gratuitous-isr-work-call-in-re.patch
parentd9f49b62b28ebd245587854efa484974d90debbf (diff)
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
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1193-fix-pcf50633-add-back-gratuitous-isr-work-call-in-re.patch')
-rw-r--r--target/linux/s3c24xx/patches-2.6.24/1193-fix-pcf50633-add-back-gratuitous-isr-work-call-in-re.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1193-fix-pcf50633-add-back-gratuitous-isr-work-call-in-re.patch b/target/linux/s3c24xx/patches-2.6.24/1193-fix-pcf50633-add-back-gratuitous-isr-work-call-in-re.patch
new file mode 100644
index 000000000..d8af830a2
--- /dev/null
+++ b/target/linux/s3c24xx/patches-2.6.24/1193-fix-pcf50633-add-back-gratuitous-isr-work-call-in-re.patch
@@ -0,0 +1,38 @@
+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
+