r3850 - branches/src/target/kernel/2.6.24.x/patches

werner at sita.openmoko.org werner at sita.openmoko.org
Tue Jan 15 22:25:25 CET 2008


Author: werner
Date: 2008-01-15 22:25:21 +0100 (Tue, 15 Jan 2008)
New Revision: 3850

Added:
   branches/src/target/kernel/2.6.24.x/patches/suspend-prelim1.patch
Modified:
   branches/src/target/kernel/2.6.24.x/patches/series
Log:
Applied the preliminary power-saving patches for GTA02:
- "matt-suspend-prelim1-pcf50633.patch",
  http://git.openmoko.org/?p=kernel.git;a=commit;h=e52762af763ec931a68ced7aeefccf11fc2c802b
- "matt-suspend-prelim1-pm-i2c.patch",
  http://git.openmoko.org/?p=kernel.git;a=commit;h=bb908eb228af05fd532b2df7eb6bb50baf725bc2
- "matt-suspend-prelim1-smedia-glamo-interdiff.patch",
  http://git.openmoko.org/?p=kernel.git;a=commit;h=e65a28139d23240c780f0ca65caa1147c49bd1ac

From: Matt Hsu <matt_hsu at openmoko.org>

Note: these patches are highly experimental and need cleaning up.

suspend-prelim1.patch:
- drivers/i2c/chips/pcf50633.c (pcf50633_suspend): turn off the backlight
- drivers/i2c/chips/pcf50633.c (pcf50633_resume): enable it again
- drivers/i2c/i2c-core.c (i2c_device_suspend, i2c_device_resume): call device
  suspend/resume functions directly
- drivers/mfd/glamo/glamo-core.c (glamo_suspend, glamo_resume): added
  suspend/resume support



Modified: branches/src/target/kernel/2.6.24.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/series	2008-01-15 21:12:26 UTC (rev 3849)
+++ branches/src/target/kernel/2.6.24.x/patches/series	2008-01-15 21:25:21 UTC (rev 3850)
@@ -62,8 +62,15 @@
 # qt2410 local hacks
 qt2410-cs8900.patch
 s3c2410-qt2410-buttons.patch
+
+# local hack
 fail-unless-uimage.patch
+
+# Atheros WLAN driver
 pnp_fixes.patch
 atheros_2_0_function.patch
 atheros_2_0_hcd-patch
 atheros_2_0_sdio_stack.patch
+
+# Preliminary suspend/resume power saving improvements
+suspend-prelim1.patch

Added: branches/src/target/kernel/2.6.24.x/patches/suspend-prelim1.patch
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/suspend-prelim1.patch	2008-01-15 21:12:26 UTC (rev 3849)
+++ branches/src/target/kernel/2.6.24.x/patches/suspend-prelim1.patch	2008-01-15 21:25:21 UTC (rev 3850)
@@ -0,0 +1,84 @@
+Index: linux-2.6.24-rc7/drivers/i2c/chips/pcf50633.c
+===================================================================
+--- linux-2.6.24-rc7.orig/drivers/i2c/chips/pcf50633.c
++++ linux-2.6.24-rc7/drivers/i2c/chips/pcf50633.c
+@@ -1615,6 +1615,9 @@
+ 		}
+ 	}
+ 
++	/* turn off the backlight */
++	__reg_write(pcf, PCF50633_REG_LEDENA, 0x00);
++
+ 	pcf->standby_regs.int1m = __reg_read(pcf, PCF50633_REG_INT1M);
+ 	pcf->standby_regs.int2m = __reg_read(pcf, PCF50633_REG_INT2M);
+ 	pcf->standby_regs.int3m = __reg_read(pcf, PCF50633_REG_INT3M);
+@@ -1639,6 +1642,8 @@
+ 
+ 	mutex_lock(&pcf->lock);
+ 
++	__reg_write(pcf, PCF50633_REG_LEDENA, 0x01);
++
+ 	/* Resume all saved registers that don't "survive" standby state */
+ 	__reg_write(pcf, PCF50633_REG_INT1M, pcf->standby_regs.int1m);
+ 	__reg_write(pcf, PCF50633_REG_INT2M, pcf->standby_regs.int2m);
+Index: linux-2.6.24-rc7/drivers/i2c/i2c-core.c
+===================================================================
+--- linux-2.6.24-rc7.orig/drivers/i2c/i2c-core.c
++++ linux-2.6.24-rc7/drivers/i2c/i2c-core.c
+@@ -1,4 +1,3 @@
+-/* i2c-core.c - a device driver for the iic-bus interface		     */
+ /* ------------------------------------------------------------------------- */
+ /*   Copyright (C) 1995-99 Simon G. Vogl
+ 
+@@ -136,10 +135,16 @@
+ 
+ 	if (!dev->driver)
+ 		return 0;
++#if 0
+ 	driver = to_i2c_driver(dev->driver);
+ 	if (!driver->suspend)
+ 		return 0;
+ 	return driver->suspend(to_i2c_client(dev), mesg);
++#else
++	if (!dev->driver->suspend)
++		return 0;
++	return dev->driver->suspend(dev, mesg);
++#endif
+ }
+ 
+ static int i2c_device_resume(struct device * dev)
+@@ -148,10 +153,16 @@
+ 
+ 	if (!dev->driver)
+ 		return 0;
++#if 0
+ 	driver = to_i2c_driver(dev->driver);
+ 	if (!driver->resume)
+ 		return 0;
+ 	return driver->resume(to_i2c_client(dev));
++#else
++	if (!dev->driver->resume)
++		return 0;
++	return dev->driver->resume(dev);
++#endif
+ }
+ 
+ static void i2c_client_release(struct device *dev)
+Index: linux-2.6.24-rc7/drivers/mfd/glamo/glamo-core.c
+===================================================================
+--- linux-2.6.24-rc7.orig/drivers/mfd/glamo/glamo-core.c
++++ linux-2.6.24-rc7/drivers/mfd/glamo/glamo-core.c
+@@ -1071,11 +1071,13 @@
+ #ifdef CONFIG_PM
+ static int glamo_suspend(struct platform_device *pdev, pm_message_t state)
+ {
++	glamo_power(glamo_handle, GLAMO_POWER_SUSPEND);
+ 	return 0;
+ }
+ 
+ static int glamo_resume(struct platform_device *pdev)
+ {
++	glamo_power(glamo_handle, GLAMO_POWER_ON);
+ 	return 0;
+ }
+ #else





More information about the commitlog mailing list