diff options
Diffstat (limited to 'drivers/video/geode/video_gx.c')
-rw-r--r-- | drivers/video/geode/video_gx.c | 18 |
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. */ |