diff options
author | mirko <mirko@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-12-13 01:54:56 +0000 |
---|---|---|
committer | mirko <mirko@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-12-13 01:54:56 +0000 |
commit | a95f9f92e2953d5829a29e95644dc4c4bc93f590 (patch) | |
tree | 01f2bf78edb2e3bb1466df9bca72e068632d0e74 /target/linux/s3c24xx/patches-2.6.26/1025-pcf50633-suspend-hacks.patch.patch | |
parent | 9fa649271dbc9c83417488203aeb1668a0238c54 (diff) |
change prefix for kernelpatchbase 2.6.26
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13619 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1025-pcf50633-suspend-hacks.patch.patch')
-rwxr-xr-x | target/linux/s3c24xx/patches-2.6.26/1025-pcf50633-suspend-hacks.patch.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1025-pcf50633-suspend-hacks.patch.patch b/target/linux/s3c24xx/patches-2.6.26/1025-pcf50633-suspend-hacks.patch.patch new file mode 100755 index 000000000..a04e8fdaf --- /dev/null +++ b/target/linux/s3c24xx/patches-2.6.26/1025-pcf50633-suspend-hacks.patch.patch @@ -0,0 +1,45 @@ +From c96b850a977e3b7018c5ef1b145a3c11cb160265 Mon Sep 17 00:00:00 2001 +From: mokopatches <mokopatches@openmoko.org> +Date: Wed, 16 Jul 2008 14:44:50 +0100 +Subject: [PATCH] pcf50633-suspend-hacks.patch + +--- + drivers/i2c/chips/pcf50633.c | 22 ++++++++++++++++++++-- + 1 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c +index 5488084..0cf5e53 100644 +--- a/drivers/i2c/chips/pcf50633.c ++++ b/drivers/i2c/chips/pcf50633.c +@@ -567,8 +567,26 @@ static void pcf50633_work(struct work_struct *work) + */ + ret = i2c_smbus_read_i2c_block_data(&pcf->client, PCF50633_REG_INT1, 5, + pcfirq); +- if (ret != 5) +- DEBUGP("Oh crap PMU IRQ register read failed %d\n", ret); ++ if (ret != 5) { ++ DEBUGP("Oh crap PMU IRQ register read failed -- " ++ "retrying later %d\n", ret); ++ /* ++ * this situation can happen during resume, just defer ++ * handling the interrupt until enough I2C is up we can ++ * actually talk to the PMU. We can't just ignore this ++ * because we are on a falling edge interrupt and our ++ * PMU interrupt source does not clear until we read these ++ * interrupt source registers. ++ */ ++ if (!schedule_work(&pcf->work) && !pcf->working) ++ dev_dbg(&pcf->client.dev, "work item may be lost\n"); ++ ++ /* we don't put the device here, hold it for next time */ ++ mutex_unlock(&pcf->working_lock); ++ /* don't spew, delaying whatever else is happening */ ++ msleep(1); ++ return; ++ } + + if (!pcf->coldplug_done) { + DEBUGP("PMU Coldplug init\n"); +-- +1.5.6.3 + |