From 9309edcee166a433f6116a68603d345676c267dc Mon Sep 17 00:00:00 2001 From: Jordan Crouse Date: Mon, 28 Apr 2008 02:14:56 -0700 Subject: [PATCH] --- yaml --- r: 94144 b: refs/heads/master c: e2b118090969f153f134647acbcbbf01a9005e64 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/video/geode/video_gx.c | 32 +++++++++++++++------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/[refs] b/[refs] index d1467db54be9..c84388dcbc54 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f0a0c1f20f837221c0d990a54ae5426acf039036 +refs/heads/master: e2b118090969f153f134647acbcbbf01a9005e64 diff --git a/trunk/drivers/video/geode/video_gx.c b/trunk/drivers/video/geode/video_gx.c index 06245a8400c7..cfe2c80b025d 100644 --- a/trunk/drivers/video/geode/video_gx.c +++ b/trunk/drivers/video/geode/video_gx.c @@ -239,18 +239,6 @@ static void gx_configure_display(struct fb_info *info) struct geodefb_par *par = info->par; u32 dcfg, misc; - /* Set up the MISC register */ - - misc = readl(par->vid_regs + GX_MISC); - - /* Power up the DAC */ - misc &= ~(GX_MISC_A_PWRDN | GX_MISC_DAC_PWRDN); - - /* Disable gamma correction */ - misc |= GX_MISC_GAM_EN; - - writel(misc, par->vid_regs + GX_MISC); - /* Write the display configuration */ dcfg = readl(par->vid_regs + GX_DCFG); @@ -269,14 +257,28 @@ static void gx_configure_display(struct fb_info *info) /* Enable hsync and vsync. */ dcfg |= GX_DCFG_HSYNC_EN | GX_DCFG_VSYNC_EN; - /* Only change the sync polarities if we are running - * in CRT mode. The FP polarities will be handled in - * gxfb_configure_tft */ + misc = readl(par->vid_regs + GX_MISC); + + /* Disable gamma correction */ + misc |= GX_MISC_GAM_EN; + if (par->enable_crt) { + + /* Power up the CRT DACs */ + misc &= ~(GX_MISC_A_PWRDN | GX_MISC_DAC_PWRDN); + writel(misc, par->vid_regs + GX_MISC); + + /* Only change the sync polarities if we are running + * in CRT mode. The FP polarities will be handled in + * gxfb_configure_tft */ if (!(info->var.sync & FB_SYNC_HOR_HIGH_ACT)) dcfg |= GX_DCFG_CRT_HSYNC_POL; if (!(info->var.sync & FB_SYNC_VERT_HIGH_ACT)) dcfg |= GX_DCFG_CRT_VSYNC_POL; + } else { + /* Power down the CRT DACs if in FP mode */ + misc |= (GX_MISC_A_PWRDN | GX_MISC_DAC_PWRDN); + writel(misc, par->vid_regs + GX_MISC); } /* Enable the display logic */