Skip to content

Commit

Permalink
gxfb: don't enable the CRT DACs when we are in flatpanel mode
Browse files Browse the repository at this point in the history
When the FP strap is enabled, don't turn on the CRT DACs - that will save
about 35 mA of power.

Updated/cleaned up by Andres Salomon.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Jordan Crouse authored and Linus Torvalds committed Apr 28, 2008
1 parent f0a0c1f commit e2b1180
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions drivers/video/geode/video_gx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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 */
Expand Down

0 comments on commit e2b1180

Please sign in to comment.