aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/s3c24xx/patches-2.6.24/1172-introduce-pcf50633-resume-dependency-list.patch.patch
diff options
context:
space:
mode:
authorMirko Vogt <mirko@openwrt.org>2008-12-12 11:58:53 +0000
committerMirko Vogt <mirko@openwrt.org>2008-12-12 11:58:53 +0000
commit614683faf8029100802db06a825648d0b6490285 (patch)
tree7401b135dc7ce24ff0175e67e0f2ce7f96296ff0 /target/linux/s3c24xx/patches-2.6.24/1172-introduce-pcf50633-resume-dependency-list.patch.patch
parent4a018d2445c5f249179ff82c8fffb0e3b717f738 (diff)
downloadupstream-614683faf8029100802db06a825648d0b6490285.tar.gz
upstream-614683faf8029100802db06a825648d0b6490285.tar.bz2
upstream-614683faf8029100802db06a825648d0b6490285.zip
changed Makefile and profiles, added patches for kernel 2.6.24 (stable-branch of Openmoko)
SVN-Revision: 13613
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1172-introduce-pcf50633-resume-dependency-list.patch.patch')
-rw-r--r--target/linux/s3c24xx/patches-2.6.24/1172-introduce-pcf50633-resume-dependency-list.patch.patch115
1 files changed, 115 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1172-introduce-pcf50633-resume-dependency-list.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1172-introduce-pcf50633-resume-dependency-list.patch.patch
new file mode 100644
index 0000000000..ac90c58d33
--- /dev/null
+++ b/target/linux/s3c24xx/patches-2.6.24/1172-introduce-pcf50633-resume-dependency-list.patch.patch
@@ -0,0 +1,115 @@
+From bf63ca6b17328413611a9d7594ca2c2f710a1def Mon Sep 17 00:00:00 2001
+From: Andy Green <andy@openmoko.com>
+Date: Wed, 2 Jul 2008 22:38:06 +0100
+Subject: [PATCH] introduce-pcf50633-resume-dependency-list.patch
+
+Adds resume dependency support to pcf50633
+
+Signed-off-by: Andy Green <andy@openmoko.com>
+---
+ drivers/i2c/chips/pcf50633.c | 26 ++++++++++++++++++++++++--
+ include/linux/pcf50633.h | 5 +++++
+ 2 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
+index 2ed6dc0..ec6b9f1 100644
+--- a/drivers/i2c/chips/pcf50633.c
++++ b/drivers/i2c/chips/pcf50633.c
+@@ -53,6 +53,7 @@
+ #include <asm/arch/gta02.h>
+
+ #include "pcf50633.h"
++#include <linux/resume-dependency.h>
+
+ #if 0
+ #define DEBUGP(x, args ...) printk("%s: " x, __FUNCTION__, ## args)
+@@ -167,6 +168,9 @@ struct pcf50633_data {
+ u_int8_t ena;
+ } ldo[__NUM_PCF50633_REGS];
+ } standby_regs;
++
++ struct resume_dependency resume_dependency;
++
+ #endif
+ };
+
+@@ -1933,6 +1937,8 @@ static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
+
+ pcf50633_global = data;
+
++ init_resume_dependency_list(data->resume_dependency);
++
+ populate_sysfs_group(data);
+
+ err = sysfs_create_group(&new_client->dev.kobj, &pcf_attr_group);
+@@ -2142,6 +2148,17 @@ int pcf50633_report_resumers(struct pcf50633_data *pcf, char *buf)
+
+ #ifdef CONFIG_PM
+
++/*
++ * we need to export this because pcf50633_data is kept opaque
++ */
++
++void pcf50633_register_resume_dependency(struct pcf50633_data *pcf,
++ struct pcf50633_resume_dependency *dep)
++{
++ register_resume_dependency(pcf->resume_dependency, dep);
++}
++EXPORT_SYMBOL_GPL(pcf50633_register_resume_dep);
++
+
+ static int pcf50633_suspend(struct device *dev, pm_message_t state)
+ {
+@@ -2234,8 +2251,11 @@ static int pcf50633_resume(struct device *dev)
+ struct i2c_client *client = to_i2c_client(dev);
+ struct pcf50633_data *pcf = i2c_get_clientdata(client);
+ int i;
++ struct list_head *pos, *q;
++ struct pcf50633_resume_dependency *dep;
++
+
+- /* mutex_lock(&pcf->lock); */ /* resume in atomic context */
++ mutex_lock(&pcf->lock);
+
+ __reg_write(pcf, PCF50633_REG_LEDENA, 0x01);
+
+@@ -2274,10 +2294,12 @@ static int pcf50633_resume(struct device *dev)
+ __reg_write(pcf, reg_out+1, pcf->standby_regs.ldo[i].ena);
+ }
+
+- /* mutex_unlock(&pcf->lock); */ /* resume in atomic context */
++ mutex_unlock(&pcf->lock);
+
+ pcf50633_irq(pcf->irq, pcf);
+
++ callback_all_resume_dependencies(pcf->resume_dependency);
++
+ return 0;
+ }
+ #else
+diff --git a/include/linux/pcf50633.h b/include/linux/pcf50633.h
+index 837037e..2bef616 100644
+--- a/include/linux/pcf50633.h
++++ b/include/linux/pcf50633.h
+@@ -2,6 +2,7 @@
+ #define _LINUX_PCF50633_H
+
+ #include <linux/pcf506xx.h>
++#include <linux/resume-dependency.h>
+
+
+ /* public in-kernel pcf50633 api */
+@@ -124,6 +125,10 @@ pcf50633_battvolt(struct pcf50633_data *pcf);
+ extern int
+ pcf50633_report_resumers(struct pcf50633_data *pcf, char *buf);
+
++extern void
++pcf50633_register_resume_dependency(struct pcf50633_data *pcf,
++ struct pcf50633_resume_dependency *dep);
++
+
+ #define PCF50633_FEAT_EXTON 0x00000001 /* not yet supported */
+ #define PCF50633_FEAT_MBC 0x00000002
+--
+1.5.6.5
+