aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/geode/display_gx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/geode/display_gx.c')
-rw-r--r--drivers/video/geode/display_gx.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/video/geode/display_gx.c b/drivers/video/geode/display_gx.c
index acf20bf2d26c..3743c8766a08 100644
--- a/drivers/video/geode/display_gx.c
+++ b/drivers/video/geode/display_gx.c
@@ -18,8 +18,6 @@
18#include <asm/div64.h> 18#include <asm/div64.h>
19#include <asm/delay.h> 19#include <asm/delay.h>
20 20
21#include "geodefb.h"
22#include "display_gx.h"
23#include "gxfb.h" 21#include "gxfb.h"
24 22
25unsigned int gx_frame_buffer_size(void) 23unsigned int gx_frame_buffer_size(void)
@@ -43,9 +41,9 @@ int gx_line_delta(int xres, int bpp)
43 return (xres * (bpp >> 3) + 7) & ~0x7; 41 return (xres * (bpp >> 3) + 7) & ~0x7;
44} 42}
45 43
46static void gx_set_mode(struct fb_info *info) 44void gx_set_mode(struct fb_info *info)
47{ 45{
48 struct geodefb_par *par = info->par; 46 struct gxfb_par *par = info->par;
49 u32 gcfg, dcfg; 47 u32 gcfg, dcfg;
50 int hactive, hblankstart, hsyncstart, hsyncend, hblankend, htotal; 48 int hactive, hblankstart, hsyncstart, hsyncend, hblankend, htotal;
51 int vactive, vblankstart, vsyncstart, vsyncend, vblankend, vtotal; 49 int vactive, vblankstart, vsyncstart, vsyncend, vblankend, vtotal;
@@ -69,7 +67,7 @@ static void gx_set_mode(struct fb_info *info)
69 write_dc(par, DC_GENERAL_CFG, gcfg); 67 write_dc(par, DC_GENERAL_CFG, gcfg);
70 68
71 /* Setup DCLK and its divisor. */ 69 /* Setup DCLK and its divisor. */
72 par->vid_ops->set_dclk(info); 70 gx_set_dclk_frequency(info);
73 71
74 /* 72 /*
75 * Setup new mode. 73 * Setup new mode.
@@ -147,16 +145,16 @@ static void gx_set_mode(struct fb_info *info)
147 write_dc(par, DC_DISPLAY_CFG, dcfg); 145 write_dc(par, DC_DISPLAY_CFG, dcfg);
148 write_dc(par, DC_GENERAL_CFG, gcfg); 146 write_dc(par, DC_GENERAL_CFG, gcfg);
149 147
150 par->vid_ops->configure_display(info); 148 gx_configure_display(info);
151 149
152 /* Relock display controller registers */ 150 /* Relock display controller registers */
153 write_dc(par, DC_UNLOCK, DC_UNLOCK_LOCK); 151 write_dc(par, DC_UNLOCK, DC_UNLOCK_LOCK);
154} 152}
155 153
156static void gx_set_hw_palette_reg(struct fb_info *info, unsigned regno, 154void gx_set_hw_palette_reg(struct fb_info *info, unsigned regno,
157 unsigned red, unsigned green, unsigned blue) 155 unsigned red, unsigned green, unsigned blue)
158{ 156{
159 struct geodefb_par *par = info->par; 157 struct gxfb_par *par = info->par;
160 int val; 158 int val;
161 159
162 /* Hardware palette is in RGB 8-8-8 format. */ 160 /* Hardware palette is in RGB 8-8-8 format. */
@@ -167,8 +165,3 @@ static void gx_set_hw_palette_reg(struct fb_info *info, unsigned regno,
167 write_dc(par, DC_PAL_ADDRESS, regno); 165 write_dc(par, DC_PAL_ADDRESS, regno);
168 write_dc(par, DC_PAL_DATA, val); 166 write_dc(par, DC_PAL_DATA, val);
169} 167}
170
171struct geode_dc_ops gx_dc_ops = {
172 .set_mode = gx_set_mode,
173 .set_palette_reg = gx_set_hw_palette_reg,
174};