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