[UPSTREAM PATCH] pcf50633-remove-unnecessary-state-save-during-suspend.patch
Balaji Rao
balajirrao at openmoko.org
Fri Oct 31 18:22:25 CET 2008
We don't need to save state when we suspend as we don't put the PMU to
standby.
This improves the 'resume devices' time from 1.175s to 1.135 sec!
---
drivers/i2c/chips/pcf50633.c | 40 ----------------------------------------
1 files changed, 0 insertions(+), 40 deletions(-)
diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
index a7a675c..7641f42 100644
--- a/drivers/i2c/chips/pcf50633.c
+++ b/drivers/i2c/chips/pcf50633.c
@@ -2060,23 +2060,6 @@ static int pcf50633_suspend(struct device *dev, pm_message_t state)
disable_irq(pcf->irq);
- /* Save all registers that don't "survive" standby state */
- pcf->standby_regs.ooctim2 = __reg_read(pcf, PCF50633_REG_OOCTIM2);
-
- ret = i2c_smbus_read_i2c_block_data(pcf->client,
- PCF50633_REG_AUTOOUT,
- sizeof(pcf->standby_regs.misc),
- &pcf->standby_regs.misc[0]);
- if (ret != sizeof(pcf->standby_regs.misc))
- dev_err(dev, "Failed to save misc levels and enables :-(\n");
-
- /* regulator voltages and enable states */
- ret = i2c_smbus_read_i2c_block_data(pcf->client,
- PCF50633_REG_LDO1OUT,
- sizeof(pcf->standby_regs.ldo),
- &pcf->standby_regs.ldo[0]);
- if (ret != sizeof(pcf->standby_regs.ldo))
- dev_err(dev, "Failed to save LDO levels and enables :-(\n");
/* set interrupt masks so only those sources we want to wake
* us are able to
*/
@@ -2149,28 +2132,6 @@ static int pcf50633_resume(struct device *dev)
pcf->suspend_state = PCF50633_SS_STARTING_RESUME;
- /* these guys get reset while pcf50633 is suspend state, refresh */
-
- __reg_write(pcf, PCF50633_REG_OOCTIM2, pcf->standby_regs.ooctim2);
-
- memcpy(misc, pcf->standby_regs.misc, sizeof(pcf->standby_regs.misc));
-
- /* regulator voltages and enable states */
- ret = i2c_smbus_write_i2c_block_data(pcf->client,
- PCF50633_REG_AUTOOUT,
- sizeof(misc),
- &misc[0]);
- if (ret)
- dev_err(dev, "Failed to restore misc :-( %d\n", ret);
-
- /* regulator voltages and enable states */
- ret = i2c_smbus_write_i2c_block_data(pcf->client,
- PCF50633_REG_LDO1OUT,
- sizeof(pcf->standby_regs.ldo),
- &pcf->standby_regs.ldo[0]);
- if (ret)
- dev_err(dev, "Failed to restore LDOs :-( %d\n", ret);
-
memset(res, 0, sizeof(res));
/* not interested in second on resume */
res[0] = PCF50633_INT1_SECOND;
@@ -2179,7 +2140,6 @@ static int pcf50633_resume(struct device *dev)
5, &res[0]);
if (ret)
dev_err(dev, "Failed to set int masks :-( %d\n", ret);
-
pcf->suspend_state = PCF50633_SS_COMPLETED_RESUME;
enable_irq(pcf->irq);
More information about the openmoko-kernel
mailing list