lxfb/gxfb: when blanking with FB_BLANK_POWERDOWN, also turn off the CRT
PATCH 1/3 lxfb/gxfb: when blanking with FB_BLANK_POWERDOWN, also turn off the CRT
The Display Control's CRT_EN can be shut off when we enter FB_BLANK_POWERDOWN in an attempt to save additional power.
Signed-off-by Andres Salomon <[email protected]>
--- drivers/video/geode/lxfb_ops.c | 17 ++++++++++------- drivers/video/geode/video_gx.c | 18 ++++++++++-------- 2 files changed, 20 insertions(+), 15 deletions(-)
drivers/video/geode/lxfb_ops.c +10 -7
@@ -474,37 +474,40 @@ int lx_blank_display(struct fb_info *info, int blank_mode) {struct lxfb_par *par = info->par;u32 dcfg, fp_pm; -int blank, hsync, vsync; +int blank, hsync, vsync, crt;/* CRT power saving modes. */ switch (blank_mode) {case FB_BLANK_UNBLANK : - blank =0 ; hsync =1 ; vsync =1 ; + blank =0 ; hsync =1 ; vsync =1 ; crt =1 ;break ;case FB_BLANK_NORMAL : - blank =1 ; hsync =1 ; vsync =1 ; + blank =1 ; hsync =1 ; vsync =1 ; crt =1 ;break ;case FB_BLANK_VSYNC_SUSPEND : - blank =1 ; hsync =1 ; vsync =0 ; + blank =1 ; hsync =1 ; vsync =0 ; crt =1 ;break ;case FB_BLANK_HSYNC_SUSPEND : - blank =1 ; hsync =0 ; vsync =1 ; + blank =1 ; hsync =0 ; vsync =1 ; crt =1 ;break ;case FB_BLANK_POWERDOWN : - blank =1 ; hsync =0 ; vsync =0 ; + blank =1 ; hsync =0 ; vsync =0 ; crt =0 ;break ;default :return -EINVAL ; } dcfg =read_vp (par,VP_DCFG ); - dcfg &= ~(VP_DCFG_DAC_BL_EN |VP_DCFG_HSYNC_EN |VP_DCFG_VSYNC_EN ); + dcfg &= ~(VP_DCFG_DAC_BL_EN |VP_DCFG_HSYNC_EN |VP_DCFG_VSYNC_EN | +VP_DCFG_CRT_EN );if (!blank) dcfg |=VP_DCFG_DAC_BL_EN ;if (hsync) dcfg |=VP_DCFG_HSYNC_EN ;if (vsync) dcfg |=VP_DCFG_VSYNC_EN ; +if (crt) + dcfg |=VP_DCFG_CRT_EN ;write_vp (par,VP_DCFG , dcfg);/* Power on/off flat panel */
drivers/video/geode/video_gx.c +10 -8
@@ -299,37 +299,39 @@ int gx_blank_display(struct fb_info *info, int blank_mode) {struct gxfb_par *par = info->par;u32 dcfg, fp_pm; -int blank, hsync, vsync; +int blank, hsync, vsync, crt;/* CRT power saving modes. */ switch (blank_mode) {case FB_BLANK_UNBLANK : - blank =0 ; hsync =1 ; vsync =1 ; + blank =0 ; hsync =1 ; vsync =1 ; crt =1 ;break ;case FB_BLANK_NORMAL : - blank =1 ; hsync =1 ; vsync =1 ; + blank =1 ; hsync =1 ; vsync =1 ; crt =1 ;break ;case FB_BLANK_VSYNC_SUSPEND : - blank =1 ; hsync =1 ; vsync =0 ; + blank =1 ; hsync =1 ; vsync =0 ; crt =1 ;break ;case FB_BLANK_HSYNC_SUSPEND : - blank =1 ; hsync =0 ; vsync =1 ; + blank =1 ; hsync =0 ; vsync =1 ; crt =1 ;break ;case FB_BLANK_POWERDOWN : - blank =1 ; hsync =0 ; vsync =0 ; + blank =1 ; hsync =0 ; vsync =0 ; crt =0 ;break ;default :return -EINVAL ; } dcfg =read_vp (par,VP_DCFG ); - dcfg &= ~(VP_DCFG_DAC_BL_EN - |VP_DCFG_HSYNC_EN |VP_DCFG_VSYNC_EN ); + dcfg &= ~(VP_DCFG_DAC_BL_EN |VP_DCFG_HSYNC_EN |VP_DCFG_VSYNC_EN | +VP_DCFG_CRT_EN );if (!blank) dcfg |=VP_DCFG_DAC_BL_EN ;if (hsync) dcfg |=VP_DCFG_HSYNC_EN ;if (vsync) dcfg |=VP_DCFG_VSYNC_EN ; +if (crt) + dcfg |=VP_DCFG_CRT_EN ;write_vp (par,VP_DCFG , dcfg);/* Power on/off flat panel. */
Signature · 8 lines
1.5.4.2 ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone