From 8aaff459acdad4915bcdd8475d4314499980e0ac Mon Sep 17 00:00:00 2001 From: Balaji Rao Date: Sun, 4 Jan 2009 16:58:31 +0000 Subject: implement_pm_power_off.patch This fixes the system-does-not-powerdown bug. Reported-by: Michael Trimarchi Signed-off-by: Balaji Rao --- arch/arm/mach-s3c2440/mach-gta02.c | 7 +++++++ include/linux/mfd/pcf50633/core.h | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c index 7e70f82bebc..4520d7b3ec0 100644 --- a/arch/arm/mach-s3c2440/mach-gta02.c +++ b/arch/arm/mach-s3c2440/mach-gta02.c @@ -1679,6 +1679,11 @@ static void gta02_pmu_attach_child_devices(struct pcf50633 *pcf) ARRAY_SIZE(gta02_devices_pmu_children)); } +static void gta02_poweroff(void) +{ + pcf50633_reg_set_bit_mask(gta02_pcf_pdata.pcf, PCF50633_REG_OOCSHDWN, + PCF50633_OOCSHDWN_GOSTDBY, PCF50633_OOCSHDWN_GOSTDBY); +} static void __init gta02_machine_init(void) { @@ -1747,6 +1752,8 @@ static void __init gta02_machine_init(void) if (rc < 0) printk(KERN_ERR "GTA02: can't request ar6k wakeup IRQ\n"); enable_irq_wake(GTA02_IRQ_WLAN_GPIO1); + + pm_power_off = gta02_poweroff; } void DEBUG_LED(int n) diff --git a/include/linux/mfd/pcf50633/core.h b/include/linux/mfd/pcf50633/core.h index bf107d3794e..d08be0da7b3 100644 --- a/include/linux/mfd/pcf50633/core.h +++ b/include/linux/mfd/pcf50633/core.h @@ -206,7 +206,8 @@ enum pcf50633_reg_int5 { }; /* misc. registers */ -#define PCF50633_REG_OOCSHDWN 0x0c +#define PCF50633_REG_OOCSHDWN 0x0c +#define PCF50633_OOCSHDWN_GOSTDBY 0x01 #endif -- cgit v1.2.3