From: Paul Parsons Date: Sun, 3 Jun 2012 10:33:52 +0000 (+0100) Subject: video: w100fb: Reduce sleep mode battery discharge X-Git-Tag: next-20120724~49^2~2 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=fb18155925139caef33f5c2d0e60316c3c9c1aac;p=karo-tx-linux.git video: w100fb: Reduce sleep mode battery discharge In 2006 and 2007 the handhelds.org kernel w100fb driver was patched to reduce sleep mode battery discharge. Unfortunately those two patches never migrated to the mainline kernel. Fortunately the function affected - w100_suspend() - has not changed since; thus those patches still apply cleanly. Applying those patches to linux-3.4-rc3 running on an HP iPAQ hx4700 reduces the sleep mode battery discharge from approximately 26 mA to approximately 11 mA. This patch combines those two patches into a single unified patch. Signed-off-by: Paul Parsons Cc: Matt Reimer Cc: Philipp Zabel Signed-off-by: Florian Tobias Schandinat --- diff --git a/drivers/video/w100fb.c b/drivers/video/w100fb.c index 90a2e30272ad..2f6b2b835f88 100644 --- a/drivers/video/w100fb.c +++ b/drivers/video/w100fb.c @@ -1567,6 +1567,18 @@ static void w100_suspend(u32 mode) val = readl(remapped_regs + mmPLL_CNTL); val |= 0x00000004; /* bit2=1 */ writel(val, remapped_regs + mmPLL_CNTL); + + writel(0x00000000, remapped_regs + mmLCDD_CNTL1); + writel(0x00000000, remapped_regs + mmLCDD_CNTL2); + writel(0x00000000, remapped_regs + mmGENLCD_CNTL1); + writel(0x00000000, remapped_regs + mmGENLCD_CNTL2); + writel(0x00000000, remapped_regs + mmGENLCD_CNTL3); + + val = readl(remapped_regs + mmMEM_EXT_CNTL); + val |= 0xF0000000; + val &= ~(0x00000001); + writel(val, remapped_regs + mmMEM_EXT_CNTL); + writel(0x0000001d, remapped_regs + mmPWRMGT_CNTL); } }