aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/geode/video_gx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/geode/video_gx.c')
-rw-r--r--drivers/video/geode/video_gx.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/video/geode/video_gx.c b/drivers/video/geode/video_gx.c
index 0072d9ec2e24..b8d52a8360db 100644
--- a/drivers/video/geode/video_gx.c
+++ b/drivers/video/geode/video_gx.c
@@ -299,37 +299,39 @@ int gx_blank_display(struct fb_info *info, int blank_mode)
299{ 299{
300 struct gxfb_par *par = info->par; 300 struct gxfb_par *par = info->par;
301 u32 dcfg, fp_pm; 301 u32 dcfg, fp_pm;
302 int blank, hsync, vsync; 302 int blank, hsync, vsync, crt;
303 303
304 /* CRT power saving modes. */ 304 /* CRT power saving modes. */
305 switch (blank_mode) { 305 switch (blank_mode) {
306 case FB_BLANK_UNBLANK: 306 case FB_BLANK_UNBLANK:
307 blank = 0; hsync = 1; vsync = 1; 307 blank = 0; hsync = 1; vsync = 1; crt = 1;
308 break; 308 break;
309 case FB_BLANK_NORMAL: 309 case FB_BLANK_NORMAL:
310 blank = 1; hsync = 1; vsync = 1; 310 blank = 1; hsync = 1; vsync = 1; crt = 1;
311 break; 311 break;
312 case FB_BLANK_VSYNC_SUSPEND: 312 case FB_BLANK_VSYNC_SUSPEND:
313 blank = 1; hsync = 1; vsync = 0; 313 blank = 1; hsync = 1; vsync = 0; crt = 1;
314 break; 314 break;
315 case FB_BLANK_HSYNC_SUSPEND: 315 case FB_BLANK_HSYNC_SUSPEND:
316 blank = 1; hsync = 0; vsync = 1; 316 blank = 1; hsync = 0; vsync = 1; crt = 1;
317 break; 317 break;
318 case FB_BLANK_POWERDOWN: 318 case FB_BLANK_POWERDOWN:
319 blank = 1; hsync = 0; vsync = 0; 319 blank = 1; hsync = 0; vsync = 0; crt = 0;
320 break; 320 break;
321 default: 321 default:
322 return -EINVAL; 322 return -EINVAL;
323 } 323 }
324 dcfg = read_vp(par, VP_DCFG); 324 dcfg = read_vp(par, VP_DCFG);
325 dcfg &= ~(VP_DCFG_DAC_BL_EN 325 dcfg &= ~(VP_DCFG_DAC_BL_EN | VP_DCFG_HSYNC_EN | VP_DCFG_VSYNC_EN |
326 | VP_DCFG_HSYNC_EN | VP_DCFG_VSYNC_EN); 326 VP_DCFG_CRT_EN);
327 if (!blank) 327 if (!blank)
328 dcfg |= VP_DCFG_DAC_BL_EN; 328 dcfg |= VP_DCFG_DAC_BL_EN;
329 if (hsync) 329 if (hsync)
330 dcfg |= VP_DCFG_HSYNC_EN; 330 dcfg |= VP_DCFG_HSYNC_EN;
331 if (vsync) 331 if (vsync)
332 dcfg |= VP_DCFG_VSYNC_EN; 332 dcfg |= VP_DCFG_VSYNC_EN;
333 if (crt)
334 dcfg |= VP_DCFG_CRT_EN;
333 write_vp(par, VP_DCFG, dcfg); 335 write_vp(par, VP_DCFG, dcfg);
334 336
335 /* Power on/off flat panel. */ 337 /* Power on/off flat panel. */