diff options
Diffstat (limited to 'drivers/video/geode/video_gx.c')
-rw-r--r-- | drivers/video/geode/video_gx.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/video/geode/video_gx.c b/drivers/video/geode/video_gx.c index 2b2a7880ea75..616ce339c5fa 100644 --- a/drivers/video/geode/video_gx.c +++ b/drivers/video/geode/video_gx.c | |||
@@ -178,7 +178,21 @@ static void gx_set_dclk_frequency(struct fb_info *info) | |||
178 | static void gx_configure_display(struct fb_info *info) | 178 | static void gx_configure_display(struct fb_info *info) |
179 | { | 179 | { |
180 | struct geodefb_par *par = info->par; | 180 | struct geodefb_par *par = info->par; |
181 | u32 dcfg, fp_pm; | 181 | u32 dcfg, fp_pm, misc; |
182 | |||
183 | /* Set up the MISC register */ | ||
184 | |||
185 | misc = readl(par->vid_regs + GX_MISC); | ||
186 | |||
187 | /* Power up the DAC */ | ||
188 | misc &= ~(GX_MISC_A_PWRDN | GX_MISC_DAC_PWRDN); | ||
189 | |||
190 | /* Disable gamma correction */ | ||
191 | misc |= GX_MISC_GAM_EN; | ||
192 | |||
193 | writel(misc, par->vid_regs + GX_MISC); | ||
194 | |||
195 | /* Write the display configuration */ | ||
182 | 196 | ||
183 | dcfg = readl(par->vid_regs + GX_DCFG); | 197 | dcfg = readl(par->vid_regs + GX_DCFG); |
184 | 198 | ||
@@ -199,9 +213,17 @@ static void gx_configure_display(struct fb_info *info) | |||
199 | if (info->var.sync & FB_SYNC_VERT_HIGH_ACT) | 213 | if (info->var.sync & FB_SYNC_VERT_HIGH_ACT) |
200 | dcfg |= GX_DCFG_CRT_VSYNC_POL; | 214 | dcfg |= GX_DCFG_CRT_VSYNC_POL; |
201 | 215 | ||
216 | /* Enable the display logic */ | ||
217 | /* Set up the DACS to blank normally */ | ||
218 | |||
219 | dcfg |= GX_DCFG_CRT_EN | GX_DCFG_DAC_BL_EN; | ||
220 | |||
221 | /* Enable the external DAC VREF? */ | ||
222 | |||
202 | writel(dcfg, par->vid_regs + GX_DCFG); | 223 | writel(dcfg, par->vid_regs + GX_DCFG); |
203 | 224 | ||
204 | /* Power on flat panel. */ | 225 | /* Power on flat panel. */ |
226 | |||
205 | fp_pm = readl(par->vid_regs + GX_FP_PM); | 227 | fp_pm = readl(par->vid_regs + GX_FP_PM); |
206 | fp_pm |= GX_FP_PM_P; | 228 | fp_pm |= GX_FP_PM_P; |
207 | writel(fp_pm, par->vid_regs + GX_FP_PM); | 229 | writel(fp_pm, par->vid_regs + GX_FP_PM); |