aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/geode/lxfb_ops.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/geode/lxfb_ops.c')
-rw-r--r--drivers/video/geode/lxfb_ops.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/video/geode/lxfb_ops.c b/drivers/video/geode/lxfb_ops.c
index 7abc439101ce..531fcdcdd759 100644
--- a/drivers/video/geode/lxfb_ops.c
+++ b/drivers/video/geode/lxfb_ops.c
@@ -524,37 +524,40 @@ int lx_blank_display(struct fb_info *info, int blank_mode)
524{ 524{
525 struct lxfb_par *par = info->par; 525 struct lxfb_par *par = info->par;
526 u32 dcfg, fp_pm; 526 u32 dcfg, fp_pm;
527 int blank, hsync, vsync; 527 int blank, hsync, vsync, crt;
528 528
529 /* CRT power saving modes. */ 529 /* CRT power saving modes. */
530 switch (blank_mode) { 530 switch (blank_mode) {
531 case FB_BLANK_UNBLANK: 531 case FB_BLANK_UNBLANK:
532 blank = 0; hsync = 1; vsync = 1; 532 blank = 0; hsync = 1; vsync = 1; crt = 1;
533 break; 533 break;
534 case FB_BLANK_NORMAL: 534 case FB_BLANK_NORMAL:
535 blank = 1; hsync = 1; vsync = 1; 535 blank = 1; hsync = 1; vsync = 1; crt = 1;
536 break; 536 break;
537 case FB_BLANK_VSYNC_SUSPEND: 537 case FB_BLANK_VSYNC_SUSPEND:
538 blank = 1; hsync = 1; vsync = 0; 538 blank = 1; hsync = 1; vsync = 0; crt = 1;
539 break; 539 break;
540 case FB_BLANK_HSYNC_SUSPEND: 540 case FB_BLANK_HSYNC_SUSPEND:
541 blank = 1; hsync = 0; vsync = 1; 541 blank = 1; hsync = 0; vsync = 1; crt = 1;
542 break; 542 break;
543 case FB_BLANK_POWERDOWN: 543 case FB_BLANK_POWERDOWN:
544 blank = 1; hsync = 0; vsync = 0; 544 blank = 1; hsync = 0; vsync = 0; crt = 0;
545 break; 545 break;
546 default: 546 default:
547 return -EINVAL; 547 return -EINVAL;
548 } 548 }
549 549
550 dcfg = read_vp(par, VP_DCFG); 550 dcfg = read_vp(par, VP_DCFG);
551 dcfg &= ~(VP_DCFG_DAC_BL_EN | VP_DCFG_HSYNC_EN | VP_DCFG_VSYNC_EN); 551 dcfg &= ~(VP_DCFG_DAC_BL_EN | VP_DCFG_HSYNC_EN | VP_DCFG_VSYNC_EN |
552 VP_DCFG_CRT_EN);
552 if (!blank) 553 if (!blank)
553 dcfg |= VP_DCFG_DAC_BL_EN; 554 dcfg |= VP_DCFG_DAC_BL_EN;
554 if (hsync) 555 if (hsync)
555 dcfg |= VP_DCFG_HSYNC_EN; 556 dcfg |= VP_DCFG_HSYNC_EN;
556 if (vsync) 557 if (vsync)
557 dcfg |= VP_DCFG_VSYNC_EN; 558 dcfg |= VP_DCFG_VSYNC_EN;
559 if (crt)
560 dcfg |= VP_DCFG_CRT_EN;
558 write_vp(par, VP_DCFG, dcfg); 561 write_vp(par, VP_DCFG, dcfg);
559 562
560 /* Power on/off flat panel */ 563 /* Power on/off flat panel */