diff options
Diffstat (limited to 'drivers/video')
35 files changed, 194 insertions, 184 deletions
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 615874e03ce8..1cd942abb580 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
@@ -650,6 +650,7 @@ config FB_NVIDIA | |||
650 | select FB_CFB_FILLRECT | 650 | select FB_CFB_FILLRECT |
651 | select FB_CFB_COPYAREA | 651 | select FB_CFB_COPYAREA |
652 | select FB_CFB_IMAGEBLIT | 652 | select FB_CFB_IMAGEBLIT |
653 | select FB_SOFT_CURSOR | ||
653 | help | 654 | help |
654 | This driver supports graphics boards with the nVidia chips, TNT | 655 | This driver supports graphics boards with the nVidia chips, TNT |
655 | and newer. For very old chipsets, such as the RIVA128, then use | 656 | and newer. For very old chipsets, such as the RIVA128, then use |
@@ -753,7 +754,8 @@ config FB_I810_GTF | |||
753 | 754 | ||
754 | config FB_I810_I2C | 755 | config FB_I810_I2C |
755 | bool "Enable DDC Support" | 756 | bool "Enable DDC Support" |
756 | depends on FB_I810 && I2C && FB_I810_GTF | 757 | depends on FB_I810 && FB_I810_GTF |
758 | select I2C | ||
757 | select I2C_ALGOBIT | 759 | select I2C_ALGOBIT |
758 | help | 760 | help |
759 | 761 | ||
@@ -766,6 +768,7 @@ config FB_INTEL | |||
766 | select FB_CFB_FILLRECT | 768 | select FB_CFB_FILLRECT |
767 | select FB_CFB_COPYAREA | 769 | select FB_CFB_COPYAREA |
768 | select FB_CFB_IMAGEBLIT | 770 | select FB_CFB_IMAGEBLIT |
771 | select FB_SOFT_CURSOR | ||
769 | help | 772 | help |
770 | This driver supports the on-board graphics built in to the Intel | 773 | This driver supports the on-board graphics built in to the Intel |
771 | 830M/845G/852GM/855GM/865G chipsets. | 774 | 830M/845G/852GM/855GM/865G chipsets. |
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c index 046b47860266..8a24a66d9ba8 100644 --- a/drivers/video/aty/radeon_base.c +++ b/drivers/video/aty/radeon_base.c | |||
@@ -475,7 +475,7 @@ static int __devinit radeon_probe_pll_params(struct radeonfb_info *rinfo) | |||
475 | */ | 475 | */ |
476 | 476 | ||
477 | /* Flush PCI buffers ? */ | 477 | /* Flush PCI buffers ? */ |
478 | tmp = INREG(DEVICE_ID); | 478 | tmp = INREG16(DEVICE_ID); |
479 | 479 | ||
480 | local_irq_disable(); | 480 | local_irq_disable(); |
481 | 481 | ||
diff --git a/drivers/video/aty/radeon_pm.c b/drivers/video/aty/radeon_pm.c index 59a1b6f85067..097d668c4fe5 100644 --- a/drivers/video/aty/radeon_pm.c +++ b/drivers/video/aty/radeon_pm.c | |||
@@ -62,9 +62,9 @@ static void radeon_pm_disable_dynamic_mode(struct radeonfb_info *rinfo) | |||
62 | OUTPLL(pllSCLK_CNTL, tmp); | 62 | OUTPLL(pllSCLK_CNTL, tmp); |
63 | return; | 63 | return; |
64 | } | 64 | } |
65 | /* RV350 (M10) */ | 65 | /* RV350 (M10/M11) */ |
66 | if (rinfo->family == CHIP_FAMILY_RV350) { | 66 | if (rinfo->family == CHIP_FAMILY_RV350) { |
67 | /* for RV350/M10, no delays are required. */ | 67 | /* for RV350/M10/M11, no delays are required. */ |
68 | tmp = INPLL(pllSCLK_CNTL2); | 68 | tmp = INPLL(pllSCLK_CNTL2); |
69 | tmp |= (SCLK_CNTL2__R300_FORCE_TCL | | 69 | tmp |= (SCLK_CNTL2__R300_FORCE_TCL | |
70 | SCLK_CNTL2__R300_FORCE_GA | | 70 | SCLK_CNTL2__R300_FORCE_GA | |
@@ -248,7 +248,7 @@ static void radeon_pm_enable_dynamic_mode(struct radeonfb_info *rinfo) | |||
248 | return; | 248 | return; |
249 | } | 249 | } |
250 | 250 | ||
251 | /* M10 */ | 251 | /* M10/M11 */ |
252 | if (rinfo->family == CHIP_FAMILY_RV350) { | 252 | if (rinfo->family == CHIP_FAMILY_RV350) { |
253 | tmp = INPLL(pllSCLK_CNTL2); | 253 | tmp = INPLL(pllSCLK_CNTL2); |
254 | tmp &= ~(SCLK_CNTL2__R300_FORCE_TCL | | 254 | tmp &= ~(SCLK_CNTL2__R300_FORCE_TCL | |
@@ -1155,7 +1155,7 @@ static void radeon_pm_full_reset_sdram(struct radeonfb_info *rinfo) | |||
1155 | OUTREG( CRTC_GEN_CNTL, (crtcGenCntl | CRTC_GEN_CNTL__CRTC_DISP_REQ_EN_B) ); | 1155 | OUTREG( CRTC_GEN_CNTL, (crtcGenCntl | CRTC_GEN_CNTL__CRTC_DISP_REQ_EN_B) ); |
1156 | OUTREG( CRTC2_GEN_CNTL, (crtcGenCntl2 | CRTC2_GEN_CNTL__CRTC2_DISP_REQ_EN_B) ); | 1156 | OUTREG( CRTC2_GEN_CNTL, (crtcGenCntl2 | CRTC2_GEN_CNTL__CRTC2_DISP_REQ_EN_B) ); |
1157 | 1157 | ||
1158 | /* This is the code for the Aluminium PowerBooks M10 */ | 1158 | /* This is the code for the Aluminium PowerBooks M10 / iBooks M11 */ |
1159 | if (rinfo->family == CHIP_FAMILY_RV350) { | 1159 | if (rinfo->family == CHIP_FAMILY_RV350) { |
1160 | u32 sdram_mode_reg = rinfo->save_regs[35]; | 1160 | u32 sdram_mode_reg = rinfo->save_regs[35]; |
1161 | static u32 default_mrtable[] = | 1161 | static u32 default_mrtable[] = |
@@ -2741,9 +2741,11 @@ void radeonfb_pm_init(struct radeonfb_info *rinfo, int dynclk) | |||
2741 | rinfo->pm_mode |= radeon_pm_d2; | 2741 | rinfo->pm_mode |= radeon_pm_d2; |
2742 | 2742 | ||
2743 | /* We can restart Jasper (M10 chip in albooks), BlueStone (7500 chip | 2743 | /* We can restart Jasper (M10 chip in albooks), BlueStone (7500 chip |
2744 | * in some desktop G4s), and Via (M9+ chip on iBook G4) | 2744 | * in some desktop G4s), Via (M9+ chip on iBook G4) and |
2745 | * Snowy (M11 chip on iBook G4 manufactured after July 2005) | ||
2745 | */ | 2746 | */ |
2746 | if (!strcmp(rinfo->of_node->name, "ATY,JasperParent")) { | 2747 | if (!strcmp(rinfo->of_node->name, "ATY,JasperParent") || |
2748 | !strcmp(rinfo->of_node->name, "ATY,SnowyParent")) { | ||
2747 | rinfo->reinit_func = radeon_reinitialize_M10; | 2749 | rinfo->reinit_func = radeon_reinitialize_M10; |
2748 | rinfo->pm_mode |= radeon_pm_off; | 2750 | rinfo->pm_mode |= radeon_pm_off; |
2749 | } | 2751 | } |
diff --git a/drivers/video/aty/radeonfb.h b/drivers/video/aty/radeonfb.h index 659bc9f62244..01b8b2f78514 100644 --- a/drivers/video/aty/radeonfb.h +++ b/drivers/video/aty/radeonfb.h | |||
@@ -395,6 +395,8 @@ static inline void _radeon_msleep(struct radeonfb_info *rinfo, unsigned long ms) | |||
395 | 395 | ||
396 | #define INREG8(addr) readb((rinfo->mmio_base)+addr) | 396 | #define INREG8(addr) readb((rinfo->mmio_base)+addr) |
397 | #define OUTREG8(addr,val) writeb(val, (rinfo->mmio_base)+addr) | 397 | #define OUTREG8(addr,val) writeb(val, (rinfo->mmio_base)+addr) |
398 | #define INREG16(addr) readw((rinfo->mmio_base)+addr) | ||
399 | #define OUTREG16(addr,val) writew(val, (rinfo->mmio_base)+addr) | ||
398 | #define INREG(addr) readl((rinfo->mmio_base)+addr) | 400 | #define INREG(addr) readl((rinfo->mmio_base)+addr) |
399 | #define OUTREG(addr,val) writel(val, (rinfo->mmio_base)+addr) | 401 | #define OUTREG(addr,val) writel(val, (rinfo->mmio_base)+addr) |
400 | 402 | ||
diff --git a/drivers/video/aty/xlinit.c b/drivers/video/aty/xlinit.c index 92643af12581..a085cbf74ecb 100644 --- a/drivers/video/aty/xlinit.c +++ b/drivers/video/aty/xlinit.c | |||
@@ -174,7 +174,7 @@ int atyfb_xl_init(struct fb_info *info) | |||
174 | const struct xl_card_cfg_t * card = &card_cfg[xl_card]; | 174 | const struct xl_card_cfg_t * card = &card_cfg[xl_card]; |
175 | struct atyfb_par *par = (struct atyfb_par *) info->par; | 175 | struct atyfb_par *par = (struct atyfb_par *) info->par; |
176 | union aty_pll pll; | 176 | union aty_pll pll; |
177 | int i, err; | 177 | int err; |
178 | u32 temp; | 178 | u32 temp; |
179 | 179 | ||
180 | aty_st_8(CONFIG_STAT0, 0x85, par); | 180 | aty_st_8(CONFIG_STAT0, 0x85, par); |
@@ -252,9 +252,14 @@ int atyfb_xl_init(struct fb_info *info) | |||
252 | aty_st_le32(0xEC, 0x00000000, par); | 252 | aty_st_le32(0xEC, 0x00000000, par); |
253 | aty_st_le32(0xFC, 0x00000000, par); | 253 | aty_st_le32(0xFC, 0x00000000, par); |
254 | 254 | ||
255 | for (i=0; i<sizeof(lcd_tbl)/sizeof(lcd_tbl_t); i++) { | 255 | #if defined (CONFIG_FB_ATY_GENERIC_LCD) |
256 | aty_st_lcd(lcd_tbl[i].lcd_reg, lcd_tbl[i].val, par); | 256 | { |
257 | int i; | ||
258 | |||
259 | for (i = 0; i < ARRAY_SIZE(lcd_tbl); i++) | ||
260 | aty_st_lcd(lcd_tbl[i].lcd_reg, lcd_tbl[i].val, par); | ||
257 | } | 261 | } |
262 | #endif | ||
258 | 263 | ||
259 | aty_st_le16(CONFIG_STAT0, 0x00A4, par); | 264 | aty_st_le16(CONFIG_STAT0, 0x00A4, par); |
260 | mdelay(10); | 265 | mdelay(10); |
diff --git a/drivers/video/backlight/corgi_bl.c b/drivers/video/backlight/corgi_bl.c index 353cb3f73cf2..3c72c627e65e 100644 --- a/drivers/video/backlight/corgi_bl.c +++ b/drivers/video/backlight/corgi_bl.c | |||
@@ -19,17 +19,17 @@ | |||
19 | #include <linux/fb.h> | 19 | #include <linux/fb.h> |
20 | #include <linux/backlight.h> | 20 | #include <linux/backlight.h> |
21 | 21 | ||
22 | #include <asm/arch-pxa/corgi.h> | 22 | #include <asm/arch/sharpsl.h> |
23 | #include <asm/hardware/scoop.h> | ||
24 | 23 | ||
25 | #define CORGI_MAX_INTENSITY 0x3e | ||
26 | #define CORGI_DEFAULT_INTENSITY 0x1f | 24 | #define CORGI_DEFAULT_INTENSITY 0x1f |
27 | #define CORGI_LIMIT_MASK 0x0b | 25 | #define CORGI_LIMIT_MASK 0x0b |
28 | 26 | ||
29 | static int corgibl_powermode = FB_BLANK_UNBLANK; | 27 | static int corgibl_powermode = FB_BLANK_UNBLANK; |
30 | static int current_intensity = 0; | 28 | static int current_intensity = 0; |
31 | static int corgibl_limit = 0; | 29 | static int corgibl_limit = 0; |
30 | static void (*corgibl_mach_set_intensity)(int intensity); | ||
32 | static spinlock_t bl_lock = SPIN_LOCK_UNLOCKED; | 31 | static spinlock_t bl_lock = SPIN_LOCK_UNLOCKED; |
32 | static struct backlight_properties corgibl_data; | ||
33 | 33 | ||
34 | static void corgibl_send_intensity(int intensity) | 34 | static void corgibl_send_intensity(int intensity) |
35 | { | 35 | { |
@@ -43,18 +43,10 @@ static void corgibl_send_intensity(int intensity) | |||
43 | intensity &= CORGI_LIMIT_MASK; | 43 | intensity &= CORGI_LIMIT_MASK; |
44 | } | 44 | } |
45 | 45 | ||
46 | /* Skip 0x20 as it will blank the display */ | ||
47 | if (intensity >= 0x20) | ||
48 | intensity++; | ||
49 | |||
50 | spin_lock_irqsave(&bl_lock, flags); | 46 | spin_lock_irqsave(&bl_lock, flags); |
51 | /* Bits 0-4 are accessed via the SSP interface */ | 47 | |
52 | corgi_ssp_blduty_set(intensity & 0x1f); | 48 | corgibl_mach_set_intensity(intensity); |
53 | /* Bit 5 is via SCOOP */ | 49 | |
54 | if (intensity & 0x0020) | ||
55 | set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_BACKLIGHT_CONT); | ||
56 | else | ||
57 | reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_BACKLIGHT_CONT); | ||
58 | spin_unlock_irqrestore(&bl_lock, flags); | 50 | spin_unlock_irqrestore(&bl_lock, flags); |
59 | } | 51 | } |
60 | 52 | ||
@@ -113,8 +105,8 @@ static int corgibl_get_power(struct backlight_device *bd) | |||
113 | 105 | ||
114 | static int corgibl_set_intensity(struct backlight_device *bd, int intensity) | 106 | static int corgibl_set_intensity(struct backlight_device *bd, int intensity) |
115 | { | 107 | { |
116 | if (intensity > CORGI_MAX_INTENSITY) | 108 | if (intensity > corgibl_data.max_brightness) |
117 | intensity = CORGI_MAX_INTENSITY; | 109 | intensity = corgibl_data.max_brightness; |
118 | corgibl_send_intensity(intensity); | 110 | corgibl_send_intensity(intensity); |
119 | current_intensity=intensity; | 111 | current_intensity=intensity; |
120 | return 0; | 112 | return 0; |
@@ -141,7 +133,6 @@ static struct backlight_properties corgibl_data = { | |||
141 | .owner = THIS_MODULE, | 133 | .owner = THIS_MODULE, |
142 | .get_power = corgibl_get_power, | 134 | .get_power = corgibl_get_power, |
143 | .set_power = corgibl_set_power, | 135 | .set_power = corgibl_set_power, |
144 | .max_brightness = CORGI_MAX_INTENSITY, | ||
145 | .get_brightness = corgibl_get_intensity, | 136 | .get_brightness = corgibl_get_intensity, |
146 | .set_brightness = corgibl_set_intensity, | 137 | .set_brightness = corgibl_set_intensity, |
147 | }; | 138 | }; |
@@ -150,12 +141,18 @@ static struct backlight_device *corgi_backlight_device; | |||
150 | 141 | ||
151 | static int __init corgibl_probe(struct device *dev) | 142 | static int __init corgibl_probe(struct device *dev) |
152 | { | 143 | { |
144 | struct corgibl_machinfo *machinfo = dev->platform_data; | ||
145 | |||
146 | corgibl_data.max_brightness = machinfo->max_intensity; | ||
147 | corgibl_mach_set_intensity = machinfo->set_bl_intensity; | ||
148 | |||
153 | corgi_backlight_device = backlight_device_register ("corgi-bl", | 149 | corgi_backlight_device = backlight_device_register ("corgi-bl", |
154 | NULL, &corgibl_data); | 150 | NULL, &corgibl_data); |
155 | if (IS_ERR (corgi_backlight_device)) | 151 | if (IS_ERR (corgi_backlight_device)) |
156 | return PTR_ERR (corgi_backlight_device); | 152 | return PTR_ERR (corgi_backlight_device); |
157 | 153 | ||
158 | corgibl_set_intensity(NULL, CORGI_DEFAULT_INTENSITY); | 154 | corgibl_set_intensity(NULL, CORGI_DEFAULT_INTENSITY); |
155 | corgibl_limit_intensity(0); | ||
159 | 156 | ||
160 | printk("Corgi Backlight Driver Initialized.\n"); | 157 | printk("Corgi Backlight Driver Initialized.\n"); |
161 | return 0; | 158 | return 0; |
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 2e93224d2d55..0fc8bb499c3f 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
@@ -767,7 +767,7 @@ static const char *fbcon_startup(void) | |||
767 | const char *display_desc = "frame buffer device"; | 767 | const char *display_desc = "frame buffer device"; |
768 | struct display *p = &fb_display[fg_console]; | 768 | struct display *p = &fb_display[fg_console]; |
769 | struct vc_data *vc = vc_cons[fg_console].d; | 769 | struct vc_data *vc = vc_cons[fg_console].d; |
770 | struct font_desc *font = NULL; | 770 | const struct font_desc *font = NULL; |
771 | struct module *owner; | 771 | struct module *owner; |
772 | struct fb_info *info = NULL; | 772 | struct fb_info *info = NULL; |
773 | struct fbcon_ops *ops; | 773 | struct fbcon_ops *ops; |
@@ -841,7 +841,7 @@ static const char *fbcon_startup(void) | |||
841 | info->var.yres); | 841 | info->var.yres); |
842 | vc->vc_font.width = font->width; | 842 | vc->vc_font.width = font->width; |
843 | vc->vc_font.height = font->height; | 843 | vc->vc_font.height = font->height; |
844 | vc->vc_font.data = p->fontdata = font->data; | 844 | vc->vc_font.data = (void *)(p->fontdata = font->data); |
845 | vc->vc_font.charcount = 256; /* FIXME Need to support more fonts */ | 845 | vc->vc_font.charcount = 256; /* FIXME Need to support more fonts */ |
846 | } | 846 | } |
847 | 847 | ||
@@ -941,7 +941,7 @@ static void fbcon_init(struct vc_data *vc, int init) | |||
941 | fb, copy the font from that console */ | 941 | fb, copy the font from that console */ |
942 | t = &fb_display[svc->vc_num]; | 942 | t = &fb_display[svc->vc_num]; |
943 | if (!vc->vc_font.data) { | 943 | if (!vc->vc_font.data) { |
944 | vc->vc_font.data = p->fontdata = t->fontdata; | 944 | vc->vc_font.data = (void *)(p->fontdata = t->fontdata); |
945 | vc->vc_font.width = (*default_mode)->vc_font.width; | 945 | vc->vc_font.width = (*default_mode)->vc_font.width; |
946 | vc->vc_font.height = (*default_mode)->vc_font.height; | 946 | vc->vc_font.height = (*default_mode)->vc_font.height; |
947 | p->userfont = t->userfont; | 947 | p->userfont = t->userfont; |
@@ -1188,7 +1188,7 @@ static void fbcon_set_disp(struct fb_info *info, struct fb_var_screeninfo *var, | |||
1188 | return; | 1188 | return; |
1189 | t = &fb_display[svc->vc_num]; | 1189 | t = &fb_display[svc->vc_num]; |
1190 | if (!vc->vc_font.data) { | 1190 | if (!vc->vc_font.data) { |
1191 | vc->vc_font.data = p->fontdata = t->fontdata; | 1191 | vc->vc_font.data = (void *)(p->fontdata = t->fontdata); |
1192 | vc->vc_font.width = (*default_mode)->vc_font.width; | 1192 | vc->vc_font.width = (*default_mode)->vc_font.width; |
1193 | vc->vc_font.height = (*default_mode)->vc_font.height; | 1193 | vc->vc_font.height = (*default_mode)->vc_font.height; |
1194 | p->userfont = t->userfont; | 1194 | p->userfont = t->userfont; |
@@ -1687,6 +1687,8 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir, | |||
1687 | case SM_DOWN: | 1687 | case SM_DOWN: |
1688 | if (count > vc->vc_rows) /* Maximum realistic size */ | 1688 | if (count > vc->vc_rows) /* Maximum realistic size */ |
1689 | count = vc->vc_rows; | 1689 | count = vc->vc_rows; |
1690 | if (logo_shown >= 0) | ||
1691 | goto redraw_down; | ||
1690 | switch (p->scrollmode) { | 1692 | switch (p->scrollmode) { |
1691 | case SCROLL_MOVE: | 1693 | case SCROLL_MOVE: |
1692 | ops->bmove(vc, info, t, 0, t + count, 0, | 1694 | ops->bmove(vc, info, t, 0, t + count, 0, |
@@ -2148,7 +2150,7 @@ static int fbcon_get_font(struct vc_data *vc, struct console_font *font) | |||
2148 | } | 2150 | } |
2149 | 2151 | ||
2150 | static int fbcon_do_set_font(struct vc_data *vc, int w, int h, | 2152 | static int fbcon_do_set_font(struct vc_data *vc, int w, int h, |
2151 | u8 * data, int userfont) | 2153 | const u8 * data, int userfont) |
2152 | { | 2154 | { |
2153 | struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; | 2155 | struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; |
2154 | struct display *p = &fb_display[vc->vc_num]; | 2156 | struct display *p = &fb_display[vc->vc_num]; |
@@ -2166,7 +2168,7 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h, | |||
2166 | cnt = FNTCHARCNT(data); | 2168 | cnt = FNTCHARCNT(data); |
2167 | else | 2169 | else |
2168 | cnt = 256; | 2170 | cnt = 256; |
2169 | vc->vc_font.data = p->fontdata = data; | 2171 | vc->vc_font.data = (void *)(p->fontdata = data); |
2170 | if ((p->userfont = userfont)) | 2172 | if ((p->userfont = userfont)) |
2171 | REFCOUNT(data)++; | 2173 | REFCOUNT(data)++; |
2172 | vc->vc_font.width = w; | 2174 | vc->vc_font.width = w; |
@@ -2323,7 +2325,7 @@ static int fbcon_set_font(struct vc_data *vc, struct console_font *font, unsigne | |||
2323 | tmp->vc_font.width == w && | 2325 | tmp->vc_font.width == w && |
2324 | !memcmp(fb_display[i].fontdata, new_data, size)) { | 2326 | !memcmp(fb_display[i].fontdata, new_data, size)) { |
2325 | kfree(new_data - FONT_EXTRA_WORDS * sizeof(int)); | 2327 | kfree(new_data - FONT_EXTRA_WORDS * sizeof(int)); |
2326 | new_data = fb_display[i].fontdata; | 2328 | new_data = (u8 *)fb_display[i].fontdata; |
2327 | break; | 2329 | break; |
2328 | } | 2330 | } |
2329 | } | 2331 | } |
@@ -2333,7 +2335,7 @@ static int fbcon_set_font(struct vc_data *vc, struct console_font *font, unsigne | |||
2333 | static int fbcon_set_def_font(struct vc_data *vc, struct console_font *font, char *name) | 2335 | static int fbcon_set_def_font(struct vc_data *vc, struct console_font *font, char *name) |
2334 | { | 2336 | { |
2335 | struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; | 2337 | struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; |
2336 | struct font_desc *f; | 2338 | const struct font_desc *f; |
2337 | 2339 | ||
2338 | if (!name) | 2340 | if (!name) |
2339 | f = get_default_font(info->var.xres, info->var.yres); | 2341 | f = get_default_font(info->var.xres, info->var.yres); |
diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h index 08befafe11d1..0738cd62def2 100644 --- a/drivers/video/console/fbcon.h +++ b/drivers/video/console/fbcon.h | |||
@@ -30,7 +30,7 @@ struct display { | |||
30 | /* Filled in by the frame buffer device */ | 30 | /* Filled in by the frame buffer device */ |
31 | u_short inverse; /* != 0 text black on white as default */ | 31 | u_short inverse; /* != 0 text black on white as default */ |
32 | /* Filled in by the low-level console driver */ | 32 | /* Filled in by the low-level console driver */ |
33 | u_char *fontdata; | 33 | const u_char *fontdata; |
34 | int userfont; /* != 0 if fontdata kmalloc()ed */ | 34 | int userfont; /* != 0 if fontdata kmalloc()ed */ |
35 | u_short scrollmode; /* Scroll Method */ | 35 | u_short scrollmode; /* Scroll Method */ |
36 | short yscroll; /* Hardware scrolling */ | 36 | short yscroll; /* Hardware scrolling */ |
diff --git a/drivers/video/console/font_10x18.c b/drivers/video/console/font_10x18.c index ff0af96e4dfc..e6aa0eab5bb6 100644 --- a/drivers/video/console/font_10x18.c +++ b/drivers/video/console/font_10x18.c | |||
@@ -7,7 +7,7 @@ | |||
7 | 7 | ||
8 | #define FONTDATAMAX 9216 | 8 | #define FONTDATAMAX 9216 |
9 | 9 | ||
10 | static unsigned char fontdata_10x18[FONTDATAMAX] = { | 10 | static const unsigned char fontdata_10x18[FONTDATAMAX] = { |
11 | 11 | ||
12 | /* 0 0x00 '^@' */ | 12 | /* 0 0x00 '^@' */ |
13 | 0x00, 0x00, /* 0000000000 */ | 13 | 0x00, 0x00, /* 0000000000 */ |
@@ -5132,7 +5132,7 @@ static unsigned char fontdata_10x18[FONTDATAMAX] = { | |||
5132 | }; | 5132 | }; |
5133 | 5133 | ||
5134 | 5134 | ||
5135 | struct font_desc font_10x18 = { | 5135 | const struct font_desc font_10x18 = { |
5136 | FONT10x18_IDX, | 5136 | FONT10x18_IDX, |
5137 | "10x18", | 5137 | "10x18", |
5138 | 10, | 5138 | 10, |
diff --git a/drivers/video/console/font_6x11.c b/drivers/video/console/font_6x11.c index c52f1294044a..89976cd97494 100644 --- a/drivers/video/console/font_6x11.c +++ b/drivers/video/console/font_6x11.c | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #define FONTDATAMAX (11*256) | 9 | #define FONTDATAMAX (11*256) |
10 | 10 | ||
11 | static unsigned char fontdata_6x11[FONTDATAMAX] = { | 11 | static const unsigned char fontdata_6x11[FONTDATAMAX] = { |
12 | 12 | ||
13 | /* 0 0x00 '^@' */ | 13 | /* 0 0x00 '^@' */ |
14 | 0x00, /* 00000000 */ | 14 | 0x00, /* 00000000 */ |
@@ -3341,7 +3341,7 @@ static unsigned char fontdata_6x11[FONTDATAMAX] = { | |||
3341 | }; | 3341 | }; |
3342 | 3342 | ||
3343 | 3343 | ||
3344 | struct font_desc font_vga_6x11 = { | 3344 | const struct font_desc font_vga_6x11 = { |
3345 | VGA6x11_IDX, | 3345 | VGA6x11_IDX, |
3346 | "ProFont6x11", | 3346 | "ProFont6x11", |
3347 | 6, | 3347 | 6, |
diff --git a/drivers/video/console/font_7x14.c b/drivers/video/console/font_7x14.c index 1fa7fcf2ff72..bbf116647397 100644 --- a/drivers/video/console/font_7x14.c +++ b/drivers/video/console/font_7x14.c | |||
@@ -7,7 +7,7 @@ | |||
7 | 7 | ||
8 | #define FONTDATAMAX 3584 | 8 | #define FONTDATAMAX 3584 |
9 | 9 | ||
10 | static unsigned char fontdata_7x14[FONTDATAMAX] = { | 10 | static const unsigned char fontdata_7x14[FONTDATAMAX] = { |
11 | 11 | ||
12 | /* 0 0x00 '^@' */ | 12 | /* 0 0x00 '^@' */ |
13 | 0x00, /* 0000000 */ | 13 | 0x00, /* 0000000 */ |
@@ -4108,7 +4108,7 @@ static unsigned char fontdata_7x14[FONTDATAMAX] = { | |||
4108 | }; | 4108 | }; |
4109 | 4109 | ||
4110 | 4110 | ||
4111 | struct font_desc font_7x14 = { | 4111 | const struct font_desc font_7x14 = { |
4112 | FONT7x14_IDX, | 4112 | FONT7x14_IDX, |
4113 | "7x14", | 4113 | "7x14", |
4114 | 7, | 4114 | 7, |
diff --git a/drivers/video/console/font_8x16.c b/drivers/video/console/font_8x16.c index e6f8dbaa122b..74fe86f28ff4 100644 --- a/drivers/video/console/font_8x16.c +++ b/drivers/video/console/font_8x16.c | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #define FONTDATAMAX 4096 | 9 | #define FONTDATAMAX 4096 |
10 | 10 | ||
11 | static unsigned char fontdata_8x16[FONTDATAMAX] = { | 11 | static const unsigned char fontdata_8x16[FONTDATAMAX] = { |
12 | 12 | ||
13 | /* 0 0x00 '^@' */ | 13 | /* 0 0x00 '^@' */ |
14 | 0x00, /* 00000000 */ | 14 | 0x00, /* 00000000 */ |
@@ -4621,7 +4621,7 @@ static unsigned char fontdata_8x16[FONTDATAMAX] = { | |||
4621 | }; | 4621 | }; |
4622 | 4622 | ||
4623 | 4623 | ||
4624 | struct font_desc font_vga_8x16 = { | 4624 | const struct font_desc font_vga_8x16 = { |
4625 | VGA8x16_IDX, | 4625 | VGA8x16_IDX, |
4626 | "VGA8x16", | 4626 | "VGA8x16", |
4627 | 8, | 4627 | 8, |
diff --git a/drivers/video/console/font_8x8.c b/drivers/video/console/font_8x8.c index 57fbe266a6b9..26199f8ee908 100644 --- a/drivers/video/console/font_8x8.c +++ b/drivers/video/console/font_8x8.c | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #define FONTDATAMAX 2048 | 9 | #define FONTDATAMAX 2048 |
10 | 10 | ||
11 | static unsigned char fontdata_8x8[FONTDATAMAX] = { | 11 | static const unsigned char fontdata_8x8[FONTDATAMAX] = { |
12 | 12 | ||
13 | /* 0 0x00 '^@' */ | 13 | /* 0 0x00 '^@' */ |
14 | 0x00, /* 00000000 */ | 14 | 0x00, /* 00000000 */ |
@@ -2573,7 +2573,7 @@ static unsigned char fontdata_8x8[FONTDATAMAX] = { | |||
2573 | }; | 2573 | }; |
2574 | 2574 | ||
2575 | 2575 | ||
2576 | struct font_desc font_vga_8x8 = { | 2576 | const struct font_desc font_vga_8x8 = { |
2577 | VGA8x8_IDX, | 2577 | VGA8x8_IDX, |
2578 | "VGA8x8", | 2578 | "VGA8x8", |
2579 | 8, | 2579 | 8, |
diff --git a/drivers/video/console/font_acorn_8x8.c b/drivers/video/console/font_acorn_8x8.c index d565505e3069..2d2e39632e2d 100644 --- a/drivers/video/console/font_acorn_8x8.c +++ b/drivers/video/console/font_acorn_8x8.c | |||
@@ -3,7 +3,7 @@ | |||
3 | #include <linux/config.h> | 3 | #include <linux/config.h> |
4 | #include <linux/font.h> | 4 | #include <linux/font.h> |
5 | 5 | ||
6 | static unsigned char acorndata_8x8[] = { | 6 | static const unsigned char acorndata_8x8[] = { |
7 | /* 00 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ^@ */ | 7 | /* 00 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ^@ */ |
8 | /* 01 */ 0x7e, 0x81, 0xa5, 0x81, 0xbd, 0x99, 0x81, 0x7e, /* ^A */ | 8 | /* 01 */ 0x7e, 0x81, 0xa5, 0x81, 0xbd, 0x99, 0x81, 0x7e, /* ^A */ |
9 | /* 02 */ 0x7e, 0xff, 0xbd, 0xff, 0xc3, 0xe7, 0xff, 0x7e, /* ^B */ | 9 | /* 02 */ 0x7e, 0xff, 0xbd, 0xff, 0xc3, 0xe7, 0xff, 0x7e, /* ^B */ |
@@ -262,7 +262,7 @@ static unsigned char acorndata_8x8[] = { | |||
262 | /* FF */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | 262 | /* FF */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
263 | }; | 263 | }; |
264 | 264 | ||
265 | struct font_desc font_acorn_8x8 = { | 265 | const struct font_desc font_acorn_8x8 = { |
266 | ACORN8x8_IDX, | 266 | ACORN8x8_IDX, |
267 | "Acorn8x8", | 267 | "Acorn8x8", |
268 | 8, | 268 | 8, |
diff --git a/drivers/video/console/font_mini_4x6.c b/drivers/video/console/font_mini_4x6.c index 593b95500a0c..d818234fdf11 100644 --- a/drivers/video/console/font_mini_4x6.c +++ b/drivers/video/console/font_mini_4x6.c | |||
@@ -43,7 +43,7 @@ __END__; | |||
43 | 43 | ||
44 | #define FONTDATAMAX 1536 | 44 | #define FONTDATAMAX 1536 |
45 | 45 | ||
46 | static unsigned char fontdata_mini_4x6[FONTDATAMAX] = { | 46 | static const unsigned char fontdata_mini_4x6[FONTDATAMAX] = { |
47 | 47 | ||
48 | /*{*/ | 48 | /*{*/ |
49 | /* Char 0: ' ' */ | 49 | /* Char 0: ' ' */ |
@@ -2147,7 +2147,7 @@ static unsigned char fontdata_mini_4x6[FONTDATAMAX] = { | |||
2147 | /*}*/ | 2147 | /*}*/ |
2148 | }; | 2148 | }; |
2149 | 2149 | ||
2150 | struct font_desc font_mini_4x6 = { | 2150 | const struct font_desc font_mini_4x6 = { |
2151 | MINI4x6_IDX, | 2151 | MINI4x6_IDX, |
2152 | "MINI4x6", | 2152 | "MINI4x6", |
2153 | 4, | 2153 | 4, |
diff --git a/drivers/video/console/font_pearl_8x8.c b/drivers/video/console/font_pearl_8x8.c index 5fa95f118818..e646c88f55c7 100644 --- a/drivers/video/console/font_pearl_8x8.c +++ b/drivers/video/console/font_pearl_8x8.c | |||
@@ -13,7 +13,7 @@ | |||
13 | 13 | ||
14 | #define FONTDATAMAX 2048 | 14 | #define FONTDATAMAX 2048 |
15 | 15 | ||
16 | static unsigned char fontdata_pearl8x8[FONTDATAMAX] = { | 16 | static const unsigned char fontdata_pearl8x8[FONTDATAMAX] = { |
17 | 17 | ||
18 | /* 0 0x00 '^@' */ | 18 | /* 0 0x00 '^@' */ |
19 | 0x00, /* 00000000 */ | 19 | 0x00, /* 00000000 */ |
@@ -2577,7 +2577,7 @@ static unsigned char fontdata_pearl8x8[FONTDATAMAX] = { | |||
2577 | 2577 | ||
2578 | }; | 2578 | }; |
2579 | 2579 | ||
2580 | struct font_desc font_pearl_8x8 = { | 2580 | const struct font_desc font_pearl_8x8 = { |
2581 | PEARL8x8_IDX, | 2581 | PEARL8x8_IDX, |
2582 | "PEARL8x8", | 2582 | "PEARL8x8", |
2583 | 8, | 2583 | 8, |
diff --git a/drivers/video/console/font_sun12x22.c b/drivers/video/console/font_sun12x22.c index c7bd967ea100..ab5eb93407b4 100644 --- a/drivers/video/console/font_sun12x22.c +++ b/drivers/video/console/font_sun12x22.c | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | #define FONTDATAMAX 11264 | 3 | #define FONTDATAMAX 11264 |
4 | 4 | ||
5 | static unsigned char fontdata_sun12x22[FONTDATAMAX] = { | 5 | static const unsigned char fontdata_sun12x22[FONTDATAMAX] = { |
6 | 6 | ||
7 | /* 0 0x00 '^@' */ | 7 | /* 0 0x00 '^@' */ |
8 | 0x00, 0x00, /* 000000000000 */ | 8 | 0x00, 0x00, /* 000000000000 */ |
@@ -6151,7 +6151,7 @@ static unsigned char fontdata_sun12x22[FONTDATAMAX] = { | |||
6151 | }; | 6151 | }; |
6152 | 6152 | ||
6153 | 6153 | ||
6154 | struct font_desc font_sun_12x22 = { | 6154 | const struct font_desc font_sun_12x22 = { |
6155 | SUN12x22_IDX, | 6155 | SUN12x22_IDX, |
6156 | "SUN12x22", | 6156 | "SUN12x22", |
6157 | 12, | 6157 | 12, |
diff --git a/drivers/video/console/font_sun8x16.c b/drivers/video/console/font_sun8x16.c index 2af3ab354652..41f910f5529c 100644 --- a/drivers/video/console/font_sun8x16.c +++ b/drivers/video/console/font_sun8x16.c | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | #define FONTDATAMAX 4096 | 3 | #define FONTDATAMAX 4096 |
4 | 4 | ||
5 | static unsigned char fontdata_sun8x16[FONTDATAMAX] = { | 5 | static const unsigned char fontdata_sun8x16[FONTDATAMAX] = { |
6 | /* */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 6 | /* */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
7 | /* */ 0x00,0x00,0x7e,0x81,0xa5,0x81,0x81,0xbd,0x99,0x81,0x81,0x7e,0x00,0x00,0x00,0x00, | 7 | /* */ 0x00,0x00,0x7e,0x81,0xa5,0x81,0x81,0xbd,0x99,0x81,0x81,0x7e,0x00,0x00,0x00,0x00, |
8 | /* */ 0x00,0x00,0x7e,0xff,0xdb,0xff,0xff,0xc3,0xe7,0xff,0xff,0x7e,0x00,0x00,0x00,0x00, | 8 | /* */ 0x00,0x00,0x7e,0xff,0xdb,0xff,0xff,0xc3,0xe7,0xff,0xff,0x7e,0x00,0x00,0x00,0x00, |
@@ -261,7 +261,7 @@ static unsigned char fontdata_sun8x16[FONTDATAMAX] = { | |||
261 | /* */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 261 | /* */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
262 | }; | 262 | }; |
263 | 263 | ||
264 | struct font_desc font_sun_8x16 = { | 264 | const struct font_desc font_sun_8x16 = { |
265 | SUN8x16_IDX, | 265 | SUN8x16_IDX, |
266 | "SUN8x16", | 266 | "SUN8x16", |
267 | 8, | 267 | 8, |
diff --git a/drivers/video/console/fonts.c b/drivers/video/console/fonts.c index e79b29702649..4fd07d9eca03 100644 --- a/drivers/video/console/fonts.c +++ b/drivers/video/console/fonts.c | |||
@@ -23,7 +23,7 @@ | |||
23 | 23 | ||
24 | #define NO_FONTS | 24 | #define NO_FONTS |
25 | 25 | ||
26 | static struct font_desc *fonts[] = { | 26 | static const struct font_desc *fonts[] = { |
27 | #ifdef CONFIG_FONT_8x8 | 27 | #ifdef CONFIG_FONT_8x8 |
28 | #undef NO_FONTS | 28 | #undef NO_FONTS |
29 | &font_vga_8x8, | 29 | &font_vga_8x8, |
@@ -84,7 +84,7 @@ static struct font_desc *fonts[] = { | |||
84 | * | 84 | * |
85 | */ | 85 | */ |
86 | 86 | ||
87 | struct font_desc *find_font(char *name) | 87 | const struct font_desc *find_font(const char *name) |
88 | { | 88 | { |
89 | unsigned int i; | 89 | unsigned int i; |
90 | 90 | ||
@@ -108,10 +108,10 @@ struct font_desc *find_font(char *name) | |||
108 | * | 108 | * |
109 | */ | 109 | */ |
110 | 110 | ||
111 | struct font_desc *get_default_font(int xres, int yres) | 111 | const struct font_desc *get_default_font(int xres, int yres) |
112 | { | 112 | { |
113 | int i, c, cc; | 113 | int i, c, cc; |
114 | struct font_desc *f, *g; | 114 | const struct font_desc *f, *g; |
115 | 115 | ||
116 | g = NULL; | 116 | g = NULL; |
117 | cc = -10000; | 117 | cc = -10000; |
@@ -138,7 +138,6 @@ struct font_desc *get_default_font(int xres, int yres) | |||
138 | return g; | 138 | return g; |
139 | } | 139 | } |
140 | 140 | ||
141 | EXPORT_SYMBOL(fonts); | ||
142 | EXPORT_SYMBOL(find_font); | 141 | EXPORT_SYMBOL(find_font); |
143 | EXPORT_SYMBOL(get_default_font); | 142 | EXPORT_SYMBOL(get_default_font); |
144 | 143 | ||
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index 0705cd741411..6ef6f7760e47 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c | |||
@@ -1020,7 +1020,9 @@ static int vgacon_font_get(struct vc_data *c, struct console_font *font) | |||
1020 | static int vgacon_resize(struct vc_data *c, unsigned int width, | 1020 | static int vgacon_resize(struct vc_data *c, unsigned int width, |
1021 | unsigned int height) | 1021 | unsigned int height) |
1022 | { | 1022 | { |
1023 | if (width % 2 || width > ORIG_VIDEO_COLS || height > ORIG_VIDEO_LINES) | 1023 | if (width % 2 || width > ORIG_VIDEO_COLS || |
1024 | height > (ORIG_VIDEO_LINES * vga_default_font_height)/ | ||
1025 | c->vc_font.height) | ||
1024 | return -EINVAL; | 1026 | return -EINVAL; |
1025 | 1027 | ||
1026 | if (CON_IS_VISIBLE(c) && !vga_is_gfx) /* who knows */ | 1028 | if (CON_IS_VISIBLE(c) && !vga_is_gfx) /* who knows */ |
diff --git a/drivers/video/cyblafb.c b/drivers/video/cyblafb.c index ae2762cb5608..6992100a508c 100644 --- a/drivers/video/cyblafb.c +++ b/drivers/video/cyblafb.c | |||
@@ -410,20 +410,21 @@ static void cyblafb_imageblit(struct fb_info *info, | |||
410 | out32(GE0C,point(image->dx+image->width-1,image->dy+image->height-1)); | 410 | out32(GE0C,point(image->dx+image->width-1,image->dy+image->height-1)); |
411 | 411 | ||
412 | while(index < index_end) { | 412 | while(index < index_end) { |
413 | const char *p = image->data + index; | ||
413 | for(i=0;i<width_dds;i++) { | 414 | for(i=0;i<width_dds;i++) { |
414 | out32(GE9C,*((u32*) ((u32)image->data + index))); | 415 | out32(GE9C,*(u32*)p); |
416 | p+=4; | ||
415 | index+=4; | 417 | index+=4; |
416 | } | 418 | } |
417 | switch(width_dbs) { | 419 | switch(width_dbs) { |
418 | case 0: break; | 420 | case 0: break; |
419 | case 8: out32(GE9C,*((u8*)((u32)image->data+index))); | 421 | case 8: out32(GE9C,*(u8*)p); |
420 | index+=1; | 422 | index+=1; |
421 | break; | 423 | break; |
422 | case 16: out32(GE9C,*((u16*)((u32)image->data+index))); | 424 | case 16: out32(GE9C,*(u16*)p); |
423 | index+=2; | 425 | index+=2; |
424 | break; | 426 | break; |
425 | case 24: out32(GE9C,(u32)(*((u16*)((u32)image->data+index))) | | 427 | case 24: out32(GE9C,*(u16*)p | *(u8*)(p+2)<<16); |
426 | (u32)(*((u8*)((u32)image->data+index+2)))<<16); | ||
427 | index+=3; | 428 | index+=3; |
428 | break; | 429 | break; |
429 | } | 430 | } |
diff --git a/drivers/video/fbcvt.c b/drivers/video/fbcvt.c index cfa61b512de0..0b6af00d197e 100644 --- a/drivers/video/fbcvt.c +++ b/drivers/video/fbcvt.c | |||
@@ -272,11 +272,11 @@ static void fb_cvt_convert_to_mode(struct fb_cvt_data *cvt, | |||
272 | { | 272 | { |
273 | mode->refresh = cvt->f_refresh; | 273 | mode->refresh = cvt->f_refresh; |
274 | mode->pixclock = KHZ2PICOS(cvt->pixclock/1000); | 274 | mode->pixclock = KHZ2PICOS(cvt->pixclock/1000); |
275 | mode->left_margin = cvt->h_front_porch; | 275 | mode->left_margin = cvt->h_back_porch; |
276 | mode->right_margin = cvt->h_back_porch; | 276 | mode->right_margin = cvt->h_front_porch; |
277 | mode->hsync_len = cvt->hsync; | 277 | mode->hsync_len = cvt->hsync; |
278 | mode->upper_margin = cvt->v_front_porch; | 278 | mode->upper_margin = cvt->v_back_porch; |
279 | mode->lower_margin = cvt->v_back_porch; | 279 | mode->lower_margin = cvt->v_front_porch; |
280 | mode->vsync_len = cvt->vsync; | 280 | mode->vsync_len = cvt->vsync; |
281 | 281 | ||
282 | mode->sync &= ~(FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT); | 282 | mode->sync &= ~(FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT); |
diff --git a/drivers/video/i810/i810-i2c.c b/drivers/video/i810/i810-i2c.c index fda53aac1fc1..689d2586366d 100644 --- a/drivers/video/i810/i810-i2c.c +++ b/drivers/video/i810/i810-i2c.c | |||
@@ -44,7 +44,7 @@ static void i810i2c_setscl(void *data, int state) | |||
44 | { | 44 | { |
45 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; | 45 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; |
46 | struct i810fb_par *par = chan->par; | 46 | struct i810fb_par *par = chan->par; |
47 | u8 *mmio = par->mmio_start_virtual; | 47 | u8 __iomem *mmio = par->mmio_start_virtual; |
48 | 48 | ||
49 | i810_writel(mmio, GPIOB, (state ? SCL_VAL_OUT : 0) | SCL_DIR | | 49 | i810_writel(mmio, GPIOB, (state ? SCL_VAL_OUT : 0) | SCL_DIR | |
50 | SCL_DIR_MASK | SCL_VAL_MASK); | 50 | SCL_DIR_MASK | SCL_VAL_MASK); |
@@ -55,7 +55,7 @@ static void i810i2c_setsda(void *data, int state) | |||
55 | { | 55 | { |
56 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; | 56 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; |
57 | struct i810fb_par *par = chan->par; | 57 | struct i810fb_par *par = chan->par; |
58 | u8 *mmio = par->mmio_start_virtual; | 58 | u8 __iomem *mmio = par->mmio_start_virtual; |
59 | 59 | ||
60 | i810_writel(mmio, GPIOB, (state ? SDA_VAL_OUT : 0) | SDA_DIR | | 60 | i810_writel(mmio, GPIOB, (state ? SDA_VAL_OUT : 0) | SDA_DIR | |
61 | SDA_DIR_MASK | SDA_VAL_MASK); | 61 | SDA_DIR_MASK | SDA_VAL_MASK); |
@@ -66,7 +66,7 @@ static int i810i2c_getscl(void *data) | |||
66 | { | 66 | { |
67 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; | 67 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; |
68 | struct i810fb_par *par = chan->par; | 68 | struct i810fb_par *par = chan->par; |
69 | u8 *mmio = par->mmio_start_virtual; | 69 | u8 __iomem *mmio = par->mmio_start_virtual; |
70 | 70 | ||
71 | i810_writel(mmio, GPIOB, SCL_DIR_MASK); | 71 | i810_writel(mmio, GPIOB, SCL_DIR_MASK); |
72 | i810_writel(mmio, GPIOB, 0); | 72 | i810_writel(mmio, GPIOB, 0); |
@@ -77,7 +77,7 @@ static int i810i2c_getsda(void *data) | |||
77 | { | 77 | { |
78 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; | 78 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; |
79 | struct i810fb_par *par = chan->par; | 79 | struct i810fb_par *par = chan->par; |
80 | u8 *mmio = par->mmio_start_virtual; | 80 | u8 __iomem *mmio = par->mmio_start_virtual; |
81 | 81 | ||
82 | i810_writel(mmio, GPIOB, SDA_DIR_MASK); | 82 | i810_writel(mmio, GPIOB, SDA_DIR_MASK); |
83 | i810_writel(mmio, GPIOB, 0); | 83 | i810_writel(mmio, GPIOB, 0); |
@@ -88,7 +88,7 @@ static void i810ddc_setscl(void *data, int state) | |||
88 | { | 88 | { |
89 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; | 89 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; |
90 | struct i810fb_par *par = chan->par; | 90 | struct i810fb_par *par = chan->par; |
91 | u8 *mmio = par->mmio_start_virtual; | 91 | u8 __iomem *mmio = par->mmio_start_virtual; |
92 | 92 | ||
93 | i810_writel(mmio, GPIOA, (state ? SCL_VAL_OUT : 0) | SCL_DIR | | 93 | i810_writel(mmio, GPIOA, (state ? SCL_VAL_OUT : 0) | SCL_DIR | |
94 | SCL_DIR_MASK | SCL_VAL_MASK); | 94 | SCL_DIR_MASK | SCL_VAL_MASK); |
@@ -99,7 +99,7 @@ static void i810ddc_setsda(void *data, int state) | |||
99 | { | 99 | { |
100 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; | 100 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; |
101 | struct i810fb_par *par = chan->par; | 101 | struct i810fb_par *par = chan->par; |
102 | u8 *mmio = par->mmio_start_virtual; | 102 | u8 __iomem *mmio = par->mmio_start_virtual; |
103 | 103 | ||
104 | i810_writel(mmio, GPIOA, (state ? SDA_VAL_OUT : 0) | SDA_DIR | | 104 | i810_writel(mmio, GPIOA, (state ? SDA_VAL_OUT : 0) | SDA_DIR | |
105 | SDA_DIR_MASK | SDA_VAL_MASK); | 105 | SDA_DIR_MASK | SDA_VAL_MASK); |
@@ -110,7 +110,7 @@ static int i810ddc_getscl(void *data) | |||
110 | { | 110 | { |
111 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; | 111 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; |
112 | struct i810fb_par *par = chan->par; | 112 | struct i810fb_par *par = chan->par; |
113 | u8 *mmio = par->mmio_start_virtual; | 113 | u8 __iomem *mmio = par->mmio_start_virtual; |
114 | 114 | ||
115 | i810_writel(mmio, GPIOA, SCL_DIR_MASK); | 115 | i810_writel(mmio, GPIOA, SCL_DIR_MASK); |
116 | i810_writel(mmio, GPIOA, 0); | 116 | i810_writel(mmio, GPIOA, 0); |
@@ -121,7 +121,7 @@ static int i810ddc_getsda(void *data) | |||
121 | { | 121 | { |
122 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; | 122 | struct i810fb_i2c_chan *chan = (struct i810fb_i2c_chan *)data; |
123 | struct i810fb_par *par = chan->par; | 123 | struct i810fb_par *par = chan->par; |
124 | u8 *mmio = par->mmio_start_virtual; | 124 | u8 __iomem *mmio = par->mmio_start_virtual; |
125 | 125 | ||
126 | i810_writel(mmio, GPIOA, SDA_DIR_MASK); | 126 | i810_writel(mmio, GPIOA, SDA_DIR_MASK); |
127 | i810_writel(mmio, GPIOA, 0); | 127 | i810_writel(mmio, GPIOA, 0); |
diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c index cabd53cec991..1d54d3d6960b 100644 --- a/drivers/video/imxfb.c +++ b/drivers/video/imxfb.c | |||
@@ -36,7 +36,6 @@ | |||
36 | 36 | ||
37 | #include <asm/hardware.h> | 37 | #include <asm/hardware.h> |
38 | #include <asm/io.h> | 38 | #include <asm/io.h> |
39 | #include <asm/mach-types.h> | ||
40 | #include <asm/uaccess.h> | 39 | #include <asm/uaccess.h> |
41 | #include <asm/arch/imxfb.h> | 40 | #include <asm/arch/imxfb.h> |
42 | 41 | ||
@@ -425,7 +424,7 @@ static void imxfb_setup_gpio(struct imxfb_info *fbi) | |||
425 | * Power management hooks. Note that we won't be called from IRQ context, | 424 | * Power management hooks. Note that we won't be called from IRQ context, |
426 | * unlike the blank functions above, so we may sleep. | 425 | * unlike the blank functions above, so we may sleep. |
427 | */ | 426 | */ |
428 | static int imxfb_suspend(struct device *dev, u32 state, u32 level) | 427 | static int imxfb_suspend(struct device *dev, pm_message_t state, u32 level) |
429 | { | 428 | { |
430 | struct imxfb_info *fbi = dev_get_drvdata(dev); | 429 | struct imxfb_info *fbi = dev_get_drvdata(dev); |
431 | pr_debug("%s\n",__FUNCTION__); | 430 | pr_debug("%s\n",__FUNCTION__); |
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c index bf62e6ed0382..80a09344f1aa 100644 --- a/drivers/video/intelfb/intelfbdrv.c +++ b/drivers/video/intelfb/intelfbdrv.c | |||
@@ -226,7 +226,7 @@ MODULE_DEVICE_TABLE(pci, intelfb_pci_table); | |||
226 | 226 | ||
227 | static int accel = 1; | 227 | static int accel = 1; |
228 | static int vram = 4; | 228 | static int vram = 4; |
229 | static int hwcursor = 1; | 229 | static int hwcursor = 0; |
230 | static int mtrr = 1; | 230 | static int mtrr = 1; |
231 | static int fixed = 0; | 231 | static int fixed = 0; |
232 | static int noinit = 0; | 232 | static int noinit = 0; |
@@ -609,15 +609,9 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
609 | dinfo->accel = 0; | 609 | dinfo->accel = 0; |
610 | } | 610 | } |
611 | 611 | ||
612 | if (MB(voffset) < stolen_size) | ||
613 | offset = (stolen_size >> 12); | ||
614 | else | ||
615 | offset = ROUND_UP_TO_PAGE(MB(voffset))/GTT_PAGE_SIZE; | ||
616 | |||
617 | /* Framebuffer parameters - Use all the stolen memory if >= vram */ | 612 | /* Framebuffer parameters - Use all the stolen memory if >= vram */ |
618 | if (ROUND_UP_TO_PAGE(stolen_size) >= ((offset << 12) + MB(vram))) { | 613 | if (ROUND_UP_TO_PAGE(stolen_size) >= MB(vram)) { |
619 | dinfo->fb.size = ROUND_UP_TO_PAGE(stolen_size); | 614 | dinfo->fb.size = ROUND_UP_TO_PAGE(stolen_size); |
620 | dinfo->fb.offset = 0; | ||
621 | dinfo->fbmem_gart = 0; | 615 | dinfo->fbmem_gart = 0; |
622 | } else { | 616 | } else { |
623 | dinfo->fb.size = MB(vram); | 617 | dinfo->fb.size = MB(vram); |
@@ -648,6 +642,11 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
648 | return -ENODEV; | 642 | return -ENODEV; |
649 | } | 643 | } |
650 | 644 | ||
645 | if (MB(voffset) < stolen_size) | ||
646 | offset = (stolen_size >> 12); | ||
647 | else | ||
648 | offset = ROUND_UP_TO_PAGE(MB(voffset))/GTT_PAGE_SIZE; | ||
649 | |||
651 | /* set the mem offsets - set them after the already used pages */ | 650 | /* set the mem offsets - set them after the already used pages */ |
652 | if (dinfo->accel) { | 651 | if (dinfo->accel) { |
653 | dinfo->ring.offset = offset + gtt_info.current_memory; | 652 | dinfo->ring.offset = offset + gtt_info.current_memory; |
@@ -662,10 +661,11 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
662 | + (dinfo->cursor.size >> 12); | 661 | + (dinfo->cursor.size >> 12); |
663 | } | 662 | } |
664 | 663 | ||
664 | /* Allocate memories (which aren't stolen) */ | ||
665 | /* Map the fb and MMIO regions */ | 665 | /* Map the fb and MMIO regions */ |
666 | /* ioremap only up to the end of used aperture */ | 666 | /* ioremap only up to the end of used aperture */ |
667 | dinfo->aperture.virtual = (u8 __iomem *)ioremap_nocache | 667 | dinfo->aperture.virtual = (u8 __iomem *)ioremap_nocache |
668 | (dinfo->aperture.physical, (dinfo->fb.offset << 12) | 668 | (dinfo->aperture.physical, ((offset + dinfo->fb.offset) << 12) |
669 | + dinfo->fb.size); | 669 | + dinfo->fb.size); |
670 | if (!dinfo->aperture.virtual) { | 670 | if (!dinfo->aperture.virtual) { |
671 | ERR_MSG("Cannot remap FB region.\n"); | 671 | ERR_MSG("Cannot remap FB region.\n"); |
@@ -682,7 +682,6 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
682 | return -ENODEV; | 682 | return -ENODEV; |
683 | } | 683 | } |
684 | 684 | ||
685 | /* Allocate memories (which aren't stolen) */ | ||
686 | if (dinfo->accel) { | 685 | if (dinfo->accel) { |
687 | if (!(dinfo->gtt_ring_mem = | 686 | if (!(dinfo->gtt_ring_mem = |
688 | agp_allocate_memory(bridge, dinfo->ring.size >> 12, | 687 | agp_allocate_memory(bridge, dinfo->ring.size >> 12, |
@@ -1484,7 +1483,7 @@ intelfb_cursor(struct fb_info *info, struct fb_cursor *cursor) | |||
1484 | #endif | 1483 | #endif |
1485 | 1484 | ||
1486 | if (!dinfo->hwcursor) | 1485 | if (!dinfo->hwcursor) |
1487 | return -ENXIO; | 1486 | return soft_cursor(info, cursor); |
1488 | 1487 | ||
1489 | intelfbhw_cursor_hide(dinfo); | 1488 | intelfbhw_cursor_hide(dinfo); |
1490 | 1489 | ||
diff --git a/drivers/video/matrox/matroxfb_base.c b/drivers/video/matrox/matroxfb_base.c index 98e00d8601e5..e02da41f1b26 100644 --- a/drivers/video/matrox/matroxfb_base.c +++ b/drivers/video/matrox/matroxfb_base.c | |||
@@ -1285,7 +1285,7 @@ static int matroxfb_getmemory(WPMINFO unsigned int maxSize, unsigned int *realSi | |||
1285 | vaddr_t vm; | 1285 | vaddr_t vm; |
1286 | unsigned int offs; | 1286 | unsigned int offs; |
1287 | unsigned int offs2; | 1287 | unsigned int offs2; |
1288 | unsigned char store; | 1288 | unsigned char store, orig; |
1289 | unsigned char bytes[32]; | 1289 | unsigned char bytes[32]; |
1290 | unsigned char* tmp; | 1290 | unsigned char* tmp; |
1291 | 1291 | ||
@@ -1298,7 +1298,8 @@ static int matroxfb_getmemory(WPMINFO unsigned int maxSize, unsigned int *realSi | |||
1298 | if (maxSize > 0x2000000) maxSize = 0x2000000; | 1298 | if (maxSize > 0x2000000) maxSize = 0x2000000; |
1299 | 1299 | ||
1300 | mga_outb(M_EXTVGA_INDEX, 0x03); | 1300 | mga_outb(M_EXTVGA_INDEX, 0x03); |
1301 | mga_outb(M_EXTVGA_DATA, mga_inb(M_EXTVGA_DATA) | 0x80); | 1301 | orig = mga_inb(M_EXTVGA_DATA); |
1302 | mga_outb(M_EXTVGA_DATA, orig | 0x80); | ||
1302 | 1303 | ||
1303 | store = mga_readb(vm, 0x1234); | 1304 | store = mga_readb(vm, 0x1234); |
1304 | tmp = bytes; | 1305 | tmp = bytes; |
@@ -1323,7 +1324,7 @@ static int matroxfb_getmemory(WPMINFO unsigned int maxSize, unsigned int *realSi | |||
1323 | mga_writeb(vm, 0x1234, store); | 1324 | mga_writeb(vm, 0x1234, store); |
1324 | 1325 | ||
1325 | mga_outb(M_EXTVGA_INDEX, 0x03); | 1326 | mga_outb(M_EXTVGA_INDEX, 0x03); |
1326 | mga_outb(M_EXTVGA_DATA, mga_inb(M_EXTVGA_DATA) & ~0x80); | 1327 | mga_outb(M_EXTVGA_DATA, orig); |
1327 | 1328 | ||
1328 | *realSize = offs - 0x100000; | 1329 | *realSize = offs - 0x100000; |
1329 | #ifdef CONFIG_FB_MATROX_MILLENIUM | 1330 | #ifdef CONFIG_FB_MATROX_MILLENIUM |
@@ -1858,6 +1859,8 @@ static int initMatrox2(WPMINFO struct board* b){ | |||
1858 | to yres_virtual * xres_virtual < 2^32 */ | 1859 | to yres_virtual * xres_virtual < 2^32 */ |
1859 | } | 1860 | } |
1860 | matroxfb_init_fix(PMINFO2); | 1861 | matroxfb_init_fix(PMINFO2); |
1862 | ACCESS_FBINFO(fbcon.screen_base) = vaddr_va(ACCESS_FBINFO(video.vbase)); | ||
1863 | matroxfb_update_fix(PMINFO2); | ||
1861 | /* Normalize values (namely yres_virtual) */ | 1864 | /* Normalize values (namely yres_virtual) */ |
1862 | matroxfb_check_var(&vesafb_defined, &ACCESS_FBINFO(fbcon)); | 1865 | matroxfb_check_var(&vesafb_defined, &ACCESS_FBINFO(fbcon)); |
1863 | /* And put it into "current" var. Do NOT program hardware yet, or we'll not take over | 1866 | /* And put it into "current" var. Do NOT program hardware yet, or we'll not take over |
@@ -2010,11 +2013,11 @@ static int matroxfb_probe(struct pci_dev* pdev, const struct pci_device_id* dumm | |||
2010 | } | 2013 | } |
2011 | /* not match... */ | 2014 | /* not match... */ |
2012 | if (!b->vendor) | 2015 | if (!b->vendor) |
2013 | return -1; | 2016 | return -ENODEV; |
2014 | if (dev > 0) { | 2017 | if (dev > 0) { |
2015 | /* not requested one... */ | 2018 | /* not requested one... */ |
2016 | dev--; | 2019 | dev--; |
2017 | return -1; | 2020 | return -ENODEV; |
2018 | } | 2021 | } |
2019 | pci_read_config_dword(pdev, PCI_COMMAND, &cmd); | 2022 | pci_read_config_dword(pdev, PCI_COMMAND, &cmd); |
2020 | if (pci_enable_device(pdev)) { | 2023 | if (pci_enable_device(pdev)) { |
diff --git a/drivers/video/nvidia/nv_i2c.c b/drivers/video/nvidia/nv_i2c.c index ace484fa61ce..12f2884d3f0b 100644 --- a/drivers/video/nvidia/nv_i2c.c +++ b/drivers/video/nvidia/nv_i2c.c | |||
@@ -209,10 +209,13 @@ int nvidia_probe_i2c_connector(struct fb_info *info, int conn, u8 **out_edid) | |||
209 | 209 | ||
210 | if (!edid && conn == 1) { | 210 | if (!edid && conn == 1) { |
211 | /* try to get from firmware */ | 211 | /* try to get from firmware */ |
212 | edid = kmalloc(EDID_LENGTH, GFP_KERNEL); | 212 | const u8 *e = fb_firmware_edid(info->device); |
213 | if (edid) | 213 | |
214 | memcpy(edid, fb_firmware_edid(info->device), | 214 | if (e != NULL) { |
215 | EDID_LENGTH); | 215 | edid = kmalloc(EDID_LENGTH, GFP_KERNEL); |
216 | if (edid) | ||
217 | memcpy(edid, e, EDID_LENGTH); | ||
218 | } | ||
216 | } | 219 | } |
217 | 220 | ||
218 | if (out_edid) | 221 | if (out_edid) |
diff --git a/drivers/video/nvidia/nvidia.c b/drivers/video/nvidia/nvidia.c index 3620de0f252e..a7f020ada630 100644 --- a/drivers/video/nvidia/nvidia.c +++ b/drivers/video/nvidia/nvidia.c | |||
@@ -893,7 +893,7 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor) | |||
893 | int i, set = cursor->set; | 893 | int i, set = cursor->set; |
894 | u16 fg, bg; | 894 | u16 fg, bg; |
895 | 895 | ||
896 | if (!hwcur || cursor->image.width > MAX_CURS || cursor->image.height > MAX_CURS) | 896 | if (cursor->image.width > MAX_CURS || cursor->image.height > MAX_CURS) |
897 | return -ENXIO; | 897 | return -ENXIO; |
898 | 898 | ||
899 | NVShowHideCursor(par, 0); | 899 | NVShowHideCursor(par, 0); |
@@ -1356,6 +1356,9 @@ static int __devinit nvidia_set_fbinfo(struct fb_info *info) | |||
1356 | info->pixmap.size = 8 * 1024; | 1356 | info->pixmap.size = 8 * 1024; |
1357 | info->pixmap.flags = FB_PIXMAP_SYSTEM; | 1357 | info->pixmap.flags = FB_PIXMAP_SYSTEM; |
1358 | 1358 | ||
1359 | if (!hwcur) | ||
1360 | info->fbops->fb_cursor = soft_cursor; | ||
1361 | |||
1359 | info->var.accel_flags = (!noaccel); | 1362 | info->var.accel_flags = (!noaccel); |
1360 | 1363 | ||
1361 | switch (par->Architecture) { | 1364 | switch (par->Architecture) { |
diff --git a/drivers/video/pm3fb.c b/drivers/video/pm3fb.c index e0dad948467b..2e11b601c488 100644 --- a/drivers/video/pm3fb.c +++ b/drivers/video/pm3fb.c | |||
@@ -67,6 +67,7 @@ | |||
67 | #include <linux/init.h> | 67 | #include <linux/init.h> |
68 | #include <linux/pci.h> | 68 | #include <linux/pci.h> |
69 | #include <linux/ioport.h> | 69 | #include <linux/ioport.h> |
70 | #include <linux/ctype.h> | ||
70 | 71 | ||
71 | #include <video/fbcon.h> | 72 | #include <video/fbcon.h> |
72 | #include <video/fbcon-mfb.h> | 73 | #include <video/fbcon-mfb.h> |
@@ -2594,7 +2595,7 @@ static char *pm3fb_boardnum_setup(char *options, unsigned long *bn) | |||
2594 | { | 2595 | { |
2595 | char *next; | 2596 | char *next; |
2596 | 2597 | ||
2597 | if (!(CHAR_IS_NUM(options[0]))) { | 2598 | if (!(isdigit(options[0]))) { |
2598 | (*bn) = 0; | 2599 | (*bn) = 0; |
2599 | return (options); | 2600 | return (options); |
2600 | } | 2601 | } |
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c index 34d4dcc0320a..194eed0a238c 100644 --- a/drivers/video/pxafb.c +++ b/drivers/video/pxafb.c | |||
@@ -260,9 +260,9 @@ static int pxafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) | |||
260 | } | 260 | } |
261 | 261 | ||
262 | #ifdef CONFIG_CPU_FREQ | 262 | #ifdef CONFIG_CPU_FREQ |
263 | DPRINTK("dma period = %d ps, clock = %d kHz\n", | 263 | pr_debug("pxafb: dma period = %d ps, clock = %d kHz\n", |
264 | pxafb_display_dma_period(var), | 264 | pxafb_display_dma_period(var), |
265 | get_clk_frequency_khz(0)); | 265 | get_clk_frequency_khz(0)); |
266 | #endif | 266 | #endif |
267 | 267 | ||
268 | return 0; | 268 | return 0; |
@@ -270,7 +270,7 @@ static int pxafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) | |||
270 | 270 | ||
271 | static inline void pxafb_set_truecolor(u_int is_true_color) | 271 | static inline void pxafb_set_truecolor(u_int is_true_color) |
272 | { | 272 | { |
273 | DPRINTK("true_color = %d\n", is_true_color); | 273 | pr_debug("pxafb: true_color = %d\n", is_true_color); |
274 | // do your machine-specific setup if needed | 274 | // do your machine-specific setup if needed |
275 | } | 275 | } |
276 | 276 | ||
@@ -284,7 +284,7 @@ static int pxafb_set_par(struct fb_info *info) | |||
284 | struct fb_var_screeninfo *var = &info->var; | 284 | struct fb_var_screeninfo *var = &info->var; |
285 | unsigned long palette_mem_size; | 285 | unsigned long palette_mem_size; |
286 | 286 | ||
287 | DPRINTK("set_par\n"); | 287 | pr_debug("pxafb: set_par\n"); |
288 | 288 | ||
289 | if (var->bits_per_pixel == 16) | 289 | if (var->bits_per_pixel == 16) |
290 | fbi->fb.fix.visual = FB_VISUAL_TRUECOLOR; | 290 | fbi->fb.fix.visual = FB_VISUAL_TRUECOLOR; |
@@ -308,7 +308,7 @@ static int pxafb_set_par(struct fb_info *info) | |||
308 | 308 | ||
309 | palette_mem_size = fbi->palette_size * sizeof(u16); | 309 | palette_mem_size = fbi->palette_size * sizeof(u16); |
310 | 310 | ||
311 | DPRINTK("palette_mem_size = 0x%08lx\n", (u_long) palette_mem_size); | 311 | pr_debug("pxafb: palette_mem_size = 0x%08lx\n", palette_mem_size); |
312 | 312 | ||
313 | fbi->palette_cpu = (u16 *)(fbi->map_cpu + PAGE_SIZE - palette_mem_size); | 313 | fbi->palette_cpu = (u16 *)(fbi->map_cpu + PAGE_SIZE - palette_mem_size); |
314 | fbi->palette_dma = fbi->map_dma + PAGE_SIZE - palette_mem_size; | 314 | fbi->palette_dma = fbi->map_dma + PAGE_SIZE - palette_mem_size; |
@@ -369,7 +369,7 @@ static int pxafb_blank(int blank, struct fb_info *info) | |||
369 | struct pxafb_info *fbi = (struct pxafb_info *)info; | 369 | struct pxafb_info *fbi = (struct pxafb_info *)info; |
370 | int i; | 370 | int i; |
371 | 371 | ||
372 | DPRINTK("pxafb_blank: blank=%d\n", blank); | 372 | pr_debug("pxafb: blank=%d\n", blank); |
373 | 373 | ||
374 | switch (blank) { | 374 | switch (blank) { |
375 | case FB_BLANK_POWERDOWN: | 375 | case FB_BLANK_POWERDOWN: |
@@ -508,15 +508,15 @@ static int pxafb_activate_var(struct fb_var_screeninfo *var, struct pxafb_info * | |||
508 | u_long flags; | 508 | u_long flags; |
509 | u_int lines_per_panel, pcd = get_pcd(var->pixclock); | 509 | u_int lines_per_panel, pcd = get_pcd(var->pixclock); |
510 | 510 | ||
511 | DPRINTK("Configuring PXA LCD\n"); | 511 | pr_debug("pxafb: Configuring PXA LCD\n"); |
512 | 512 | ||
513 | DPRINTK("var: xres=%d hslen=%d lm=%d rm=%d\n", | 513 | pr_debug("var: xres=%d hslen=%d lm=%d rm=%d\n", |
514 | var->xres, var->hsync_len, | 514 | var->xres, var->hsync_len, |
515 | var->left_margin, var->right_margin); | 515 | var->left_margin, var->right_margin); |
516 | DPRINTK("var: yres=%d vslen=%d um=%d bm=%d\n", | 516 | pr_debug("var: yres=%d vslen=%d um=%d bm=%d\n", |
517 | var->yres, var->vsync_len, | 517 | var->yres, var->vsync_len, |
518 | var->upper_margin, var->lower_margin); | 518 | var->upper_margin, var->lower_margin); |
519 | DPRINTK("var: pixclock=%d pcd=%d\n", var->pixclock, pcd); | 519 | pr_debug("var: pixclock=%d pcd=%d\n", var->pixclock, pcd); |
520 | 520 | ||
521 | #if DEBUG_VAR | 521 | #if DEBUG_VAR |
522 | if (var->xres < 16 || var->xres > 1024) | 522 | if (var->xres < 16 || var->xres > 1024) |
@@ -589,10 +589,10 @@ static int pxafb_activate_var(struct fb_var_screeninfo *var, struct pxafb_info * | |||
589 | if (pcd) | 589 | if (pcd) |
590 | new_regs.lccr3 |= LCCR3_PixClkDiv(pcd); | 590 | new_regs.lccr3 |= LCCR3_PixClkDiv(pcd); |
591 | 591 | ||
592 | DPRINTK("nlccr0 = 0x%08x\n", new_regs.lccr0); | 592 | pr_debug("nlccr0 = 0x%08x\n", new_regs.lccr0); |
593 | DPRINTK("nlccr1 = 0x%08x\n", new_regs.lccr1); | 593 | pr_debug("nlccr1 = 0x%08x\n", new_regs.lccr1); |
594 | DPRINTK("nlccr2 = 0x%08x\n", new_regs.lccr2); | 594 | pr_debug("nlccr2 = 0x%08x\n", new_regs.lccr2); |
595 | DPRINTK("nlccr3 = 0x%08x\n", new_regs.lccr3); | 595 | pr_debug("nlccr3 = 0x%08x\n", new_regs.lccr3); |
596 | 596 | ||
597 | /* Update shadow copy atomically */ | 597 | /* Update shadow copy atomically */ |
598 | local_irq_save(flags); | 598 | local_irq_save(flags); |
@@ -637,24 +637,24 @@ static int pxafb_activate_var(struct fb_var_screeninfo *var, struct pxafb_info * | |||
637 | } | 637 | } |
638 | 638 | ||
639 | #if 0 | 639 | #if 0 |
640 | DPRINTK("fbi->dmadesc_fblow_cpu = 0x%p\n", fbi->dmadesc_fblow_cpu); | 640 | pr_debug("fbi->dmadesc_fblow_cpu = 0x%p\n", fbi->dmadesc_fblow_cpu); |
641 | DPRINTK("fbi->dmadesc_fbhigh_cpu = 0x%p\n", fbi->dmadesc_fbhigh_cpu); | 641 | pr_debug("fbi->dmadesc_fbhigh_cpu = 0x%p\n", fbi->dmadesc_fbhigh_cpu); |
642 | DPRINTK("fbi->dmadesc_palette_cpu = 0x%p\n", fbi->dmadesc_palette_cpu); | 642 | pr_debug("fbi->dmadesc_palette_cpu = 0x%p\n", fbi->dmadesc_palette_cpu); |
643 | DPRINTK("fbi->dmadesc_fblow_dma = 0x%x\n", fbi->dmadesc_fblow_dma); | 643 | pr_debug("fbi->dmadesc_fblow_dma = 0x%x\n", fbi->dmadesc_fblow_dma); |
644 | DPRINTK("fbi->dmadesc_fbhigh_dma = 0x%x\n", fbi->dmadesc_fbhigh_dma); | 644 | pr_debug("fbi->dmadesc_fbhigh_dma = 0x%x\n", fbi->dmadesc_fbhigh_dma); |
645 | DPRINTK("fbi->dmadesc_palette_dma = 0x%x\n", fbi->dmadesc_palette_dma); | 645 | pr_debug("fbi->dmadesc_palette_dma = 0x%x\n", fbi->dmadesc_palette_dma); |
646 | 646 | ||
647 | DPRINTK("fbi->dmadesc_fblow_cpu->fdadr = 0x%x\n", fbi->dmadesc_fblow_cpu->fdadr); | 647 | pr_debug("fbi->dmadesc_fblow_cpu->fdadr = 0x%x\n", fbi->dmadesc_fblow_cpu->fdadr); |
648 | DPRINTK("fbi->dmadesc_fbhigh_cpu->fdadr = 0x%x\n", fbi->dmadesc_fbhigh_cpu->fdadr); | 648 | pr_debug("fbi->dmadesc_fbhigh_cpu->fdadr = 0x%x\n", fbi->dmadesc_fbhigh_cpu->fdadr); |
649 | DPRINTK("fbi->dmadesc_palette_cpu->fdadr = 0x%x\n", fbi->dmadesc_palette_cpu->fdadr); | 649 | pr_debug("fbi->dmadesc_palette_cpu->fdadr = 0x%x\n", fbi->dmadesc_palette_cpu->fdadr); |
650 | 650 | ||
651 | DPRINTK("fbi->dmadesc_fblow_cpu->fsadr = 0x%x\n", fbi->dmadesc_fblow_cpu->fsadr); | 651 | pr_debug("fbi->dmadesc_fblow_cpu->fsadr = 0x%x\n", fbi->dmadesc_fblow_cpu->fsadr); |
652 | DPRINTK("fbi->dmadesc_fbhigh_cpu->fsadr = 0x%x\n", fbi->dmadesc_fbhigh_cpu->fsadr); | 652 | pr_debug("fbi->dmadesc_fbhigh_cpu->fsadr = 0x%x\n", fbi->dmadesc_fbhigh_cpu->fsadr); |
653 | DPRINTK("fbi->dmadesc_palette_cpu->fsadr = 0x%x\n", fbi->dmadesc_palette_cpu->fsadr); | 653 | pr_debug("fbi->dmadesc_palette_cpu->fsadr = 0x%x\n", fbi->dmadesc_palette_cpu->fsadr); |
654 | 654 | ||
655 | DPRINTK("fbi->dmadesc_fblow_cpu->ldcmd = 0x%x\n", fbi->dmadesc_fblow_cpu->ldcmd); | 655 | pr_debug("fbi->dmadesc_fblow_cpu->ldcmd = 0x%x\n", fbi->dmadesc_fblow_cpu->ldcmd); |
656 | DPRINTK("fbi->dmadesc_fbhigh_cpu->ldcmd = 0x%x\n", fbi->dmadesc_fbhigh_cpu->ldcmd); | 656 | pr_debug("fbi->dmadesc_fbhigh_cpu->ldcmd = 0x%x\n", fbi->dmadesc_fbhigh_cpu->ldcmd); |
657 | DPRINTK("fbi->dmadesc_palette_cpu->ldcmd = 0x%x\n", fbi->dmadesc_palette_cpu->ldcmd); | 657 | pr_debug("fbi->dmadesc_palette_cpu->ldcmd = 0x%x\n", fbi->dmadesc_palette_cpu->ldcmd); |
658 | #endif | 658 | #endif |
659 | 659 | ||
660 | fbi->reg_lccr0 = new_regs.lccr0; | 660 | fbi->reg_lccr0 = new_regs.lccr0; |
@@ -684,7 +684,7 @@ static int pxafb_activate_var(struct fb_var_screeninfo *var, struct pxafb_info * | |||
684 | */ | 684 | */ |
685 | static inline void __pxafb_backlight_power(struct pxafb_info *fbi, int on) | 685 | static inline void __pxafb_backlight_power(struct pxafb_info *fbi, int on) |
686 | { | 686 | { |
687 | DPRINTK("backlight o%s\n", on ? "n" : "ff"); | 687 | pr_debug("pxafb: backlight o%s\n", on ? "n" : "ff"); |
688 | 688 | ||
689 | if (pxafb_backlight_power) | 689 | if (pxafb_backlight_power) |
690 | pxafb_backlight_power(on); | 690 | pxafb_backlight_power(on); |
@@ -692,7 +692,7 @@ static inline void __pxafb_backlight_power(struct pxafb_info *fbi, int on) | |||
692 | 692 | ||
693 | static inline void __pxafb_lcd_power(struct pxafb_info *fbi, int on) | 693 | static inline void __pxafb_lcd_power(struct pxafb_info *fbi, int on) |
694 | { | 694 | { |
695 | DPRINTK("LCD power o%s\n", on ? "n" : "ff"); | 695 | pr_debug("pxafb: LCD power o%s\n", on ? "n" : "ff"); |
696 | 696 | ||
697 | if (pxafb_lcd_power) | 697 | if (pxafb_lcd_power) |
698 | pxafb_lcd_power(on); | 698 | pxafb_lcd_power(on); |
@@ -740,13 +740,13 @@ static void pxafb_setup_gpio(struct pxafb_info *fbi) | |||
740 | 740 | ||
741 | static void pxafb_enable_controller(struct pxafb_info *fbi) | 741 | static void pxafb_enable_controller(struct pxafb_info *fbi) |
742 | { | 742 | { |
743 | DPRINTK("Enabling LCD controller\n"); | 743 | pr_debug("pxafb: Enabling LCD controller\n"); |
744 | DPRINTK("fdadr0 0x%08x\n", (unsigned int) fbi->fdadr0); | 744 | pr_debug("fdadr0 0x%08x\n", (unsigned int) fbi->fdadr0); |
745 | DPRINTK("fdadr1 0x%08x\n", (unsigned int) fbi->fdadr1); | 745 | pr_debug("fdadr1 0x%08x\n", (unsigned int) fbi->fdadr1); |
746 | DPRINTK("reg_lccr0 0x%08x\n", (unsigned int) fbi->reg_lccr0); | 746 | pr_debug("reg_lccr0 0x%08x\n", (unsigned int) fbi->reg_lccr0); |
747 | DPRINTK("reg_lccr1 0x%08x\n", (unsigned int) fbi->reg_lccr1); | 747 | pr_debug("reg_lccr1 0x%08x\n", (unsigned int) fbi->reg_lccr1); |
748 | DPRINTK("reg_lccr2 0x%08x\n", (unsigned int) fbi->reg_lccr2); | 748 | pr_debug("reg_lccr2 0x%08x\n", (unsigned int) fbi->reg_lccr2); |
749 | DPRINTK("reg_lccr3 0x%08x\n", (unsigned int) fbi->reg_lccr3); | 749 | pr_debug("reg_lccr3 0x%08x\n", (unsigned int) fbi->reg_lccr3); |
750 | 750 | ||
751 | /* enable LCD controller clock */ | 751 | /* enable LCD controller clock */ |
752 | pxa_set_cken(CKEN16_LCD, 1); | 752 | pxa_set_cken(CKEN16_LCD, 1); |
@@ -761,19 +761,19 @@ static void pxafb_enable_controller(struct pxafb_info *fbi) | |||
761 | FDADR1 = fbi->fdadr1; | 761 | FDADR1 = fbi->fdadr1; |
762 | LCCR0 |= LCCR0_ENB; | 762 | LCCR0 |= LCCR0_ENB; |
763 | 763 | ||
764 | DPRINTK("FDADR0 0x%08x\n", (unsigned int) FDADR0); | 764 | pr_debug("FDADR0 0x%08x\n", (unsigned int) FDADR0); |
765 | DPRINTK("FDADR1 0x%08x\n", (unsigned int) FDADR1); | 765 | pr_debug("FDADR1 0x%08x\n", (unsigned int) FDADR1); |
766 | DPRINTK("LCCR0 0x%08x\n", (unsigned int) LCCR0); | 766 | pr_debug("LCCR0 0x%08x\n", (unsigned int) LCCR0); |
767 | DPRINTK("LCCR1 0x%08x\n", (unsigned int) LCCR1); | 767 | pr_debug("LCCR1 0x%08x\n", (unsigned int) LCCR1); |
768 | DPRINTK("LCCR2 0x%08x\n", (unsigned int) LCCR2); | 768 | pr_debug("LCCR2 0x%08x\n", (unsigned int) LCCR2); |
769 | DPRINTK("LCCR3 0x%08x\n", (unsigned int) LCCR3); | 769 | pr_debug("LCCR3 0x%08x\n", (unsigned int) LCCR3); |
770 | } | 770 | } |
771 | 771 | ||
772 | static void pxafb_disable_controller(struct pxafb_info *fbi) | 772 | static void pxafb_disable_controller(struct pxafb_info *fbi) |
773 | { | 773 | { |
774 | DECLARE_WAITQUEUE(wait, current); | 774 | DECLARE_WAITQUEUE(wait, current); |
775 | 775 | ||
776 | DPRINTK("Disabling LCD controller\n"); | 776 | pr_debug("pxafb: disabling LCD controller\n"); |
777 | 777 | ||
778 | set_current_state(TASK_UNINTERRUPTIBLE); | 778 | set_current_state(TASK_UNINTERRUPTIBLE); |
779 | add_wait_queue(&fbi->ctrlr_wait, &wait); | 779 | add_wait_queue(&fbi->ctrlr_wait, &wait); |
@@ -1039,7 +1039,7 @@ static int __init pxafb_map_video_memory(struct pxafb_info *fbi) | |||
1039 | fbi->palette_size = fbi->fb.var.bits_per_pixel == 8 ? 256 : 16; | 1039 | fbi->palette_size = fbi->fb.var.bits_per_pixel == 8 ? 256 : 16; |
1040 | 1040 | ||
1041 | palette_mem_size = fbi->palette_size * sizeof(u16); | 1041 | palette_mem_size = fbi->palette_size * sizeof(u16); |
1042 | DPRINTK("palette_mem_size = 0x%08lx\n", (u_long) palette_mem_size); | 1042 | pr_debug("pxafb: palette_mem_size = 0x%08lx\n", palette_mem_size); |
1043 | 1043 | ||
1044 | fbi->palette_cpu = (u16 *)(fbi->map_cpu + PAGE_SIZE - palette_mem_size); | 1044 | fbi->palette_cpu = (u16 *)(fbi->map_cpu + PAGE_SIZE - palette_mem_size); |
1045 | fbi->palette_dma = fbi->map_dma + PAGE_SIZE - palette_mem_size; | 1045 | fbi->palette_dma = fbi->map_dma + PAGE_SIZE - palette_mem_size; |
diff --git a/drivers/video/pxafb.h b/drivers/video/pxafb.h index 22c00be786a8..47f41f70db7a 100644 --- a/drivers/video/pxafb.h +++ b/drivers/video/pxafb.h | |||
@@ -114,15 +114,6 @@ struct pxafb_info { | |||
114 | #define PXA_NAME "PXA" | 114 | #define PXA_NAME "PXA" |
115 | 115 | ||
116 | /* | 116 | /* |
117 | * Debug macros | ||
118 | */ | ||
119 | #if DEBUG | ||
120 | # define DPRINTK(fmt, args...) printk("%s: " fmt, __FUNCTION__ , ## args) | ||
121 | #else | ||
122 | # define DPRINTK(fmt, args...) | ||
123 | #endif | ||
124 | |||
125 | /* | ||
126 | * Minimum X and Y resolutions | 117 | * Minimum X and Y resolutions |
127 | */ | 118 | */ |
128 | #define MIN_XRES 64 | 119 | #define MIN_XRES 64 |
diff --git a/drivers/video/s3c2410fb.c b/drivers/video/s3c2410fb.c index 00c0223a352e..5ab79afb53b7 100644 --- a/drivers/video/s3c2410fb.c +++ b/drivers/video/s3c2410fb.c | |||
@@ -228,8 +228,8 @@ static int s3c2410fb_check_var(struct fb_var_screeninfo *var, | |||
228 | * information | 228 | * information |
229 | */ | 229 | */ |
230 | 230 | ||
231 | static int s3c2410fb_activate_var(struct s3c2410fb_info *fbi, | 231 | static void s3c2410fb_activate_var(struct s3c2410fb_info *fbi, |
232 | struct fb_var_screeninfo *var) | 232 | struct fb_var_screeninfo *var) |
233 | { | 233 | { |
234 | fbi->regs.lcdcon1 &= ~S3C2410_LCDCON1_MODEMASK; | 234 | fbi->regs.lcdcon1 &= ~S3C2410_LCDCON1_MODEMASK; |
235 | 235 | ||
diff --git a/drivers/video/savage/savagefb-i2c.c b/drivers/video/savage/savagefb-i2c.c index 959404ad68f4..3c98457783c4 100644 --- a/drivers/video/savage/savagefb-i2c.c +++ b/drivers/video/savage/savagefb-i2c.c | |||
@@ -274,10 +274,13 @@ int savagefb_probe_i2c_connector(struct fb_info *info, u8 **out_edid) | |||
274 | 274 | ||
275 | if (!edid) { | 275 | if (!edid) { |
276 | /* try to get from firmware */ | 276 | /* try to get from firmware */ |
277 | edid = kmalloc(EDID_LENGTH, GFP_KERNEL); | 277 | const u8 *e = fb_firmware_edid(info->device); |
278 | if (edid) | 278 | |
279 | memcpy(edid, fb_firmware_edid(info->device), | 279 | if (e) { |
280 | EDID_LENGTH); | 280 | edid = kmalloc(EDID_LENGTH, GFP_KERNEL); |
281 | if (edid) | ||
282 | memcpy(edid, e, EDID_LENGTH); | ||
283 | } | ||
281 | } | 284 | } |
282 | 285 | ||
283 | if (out_edid) | 286 | if (out_edid) |
diff --git a/drivers/video/savage/savagefb.h b/drivers/video/savage/savagefb.h index d6f94742c9f2..ea17f7e0482c 100644 --- a/drivers/video/savage/savagefb.h +++ b/drivers/video/savage/savagefb.h | |||
@@ -60,8 +60,6 @@ | |||
60 | 60 | ||
61 | #define S3_SAVAGE_SERIES(chip) ((chip>=S3_SAVAGE3D) && (chip<=S3_SAVAGE2000)) | 61 | #define S3_SAVAGE_SERIES(chip) ((chip>=S3_SAVAGE3D) && (chip<=S3_SAVAGE2000)) |
62 | 62 | ||
63 | #define S3_MOBILE_TWISTER_SERIES(chip) ((chip==S3_TWISTER) || (chip == S3_PROSAVAGEDDR)) | ||
64 | |||
65 | /* Chip tags. These are used to group the adapters into | 63 | /* Chip tags. These are used to group the adapters into |
66 | * related families. | 64 | * related families. |
67 | */ | 65 | */ |
@@ -74,8 +72,6 @@ typedef enum { | |||
74 | S3_PROSAVAGE, | 72 | S3_PROSAVAGE, |
75 | S3_SUPERSAVAGE, | 73 | S3_SUPERSAVAGE, |
76 | S3_SAVAGE2000, | 74 | S3_SAVAGE2000, |
77 | S3_PROSAVAGEDDR, | ||
78 | S3_TWISTER, | ||
79 | S3_LAST | 75 | S3_LAST |
80 | } savage_chipset; | 76 | } savage_chipset; |
81 | 77 | ||
diff --git a/drivers/video/savage/savagefb_driver.c b/drivers/video/savage/savagefb_driver.c index b5ca3ef8271f..7c285455c924 100644 --- a/drivers/video/savage/savagefb_driver.c +++ b/drivers/video/savage/savagefb_driver.c | |||
@@ -1773,8 +1773,7 @@ static int __devinit savage_init_hw (struct savagefb_par *par) | |||
1773 | } | 1773 | } |
1774 | } | 1774 | } |
1775 | 1775 | ||
1776 | if (S3_SAVAGE_MOBILE_SERIES(par->chip) || | 1776 | if (S3_SAVAGE_MOBILE_SERIES(par->chip) && !par->crtonly) |
1777 | (S3_MOBILE_TWISTER_SERIES(par->chip) && !par->crtonly)) | ||
1778 | par->display_type = DISP_LCD; | 1777 | par->display_type = DISP_LCD; |
1779 | else if (dvi || (par->chip == S3_SAVAGE4 && par->dvi)) | 1778 | else if (dvi || (par->chip == S3_SAVAGE4 && par->dvi)) |
1780 | par->display_type = DISP_DFP; | 1779 | par->display_type = DISP_DFP; |
@@ -1783,7 +1782,7 @@ static int __devinit savage_init_hw (struct savagefb_par *par) | |||
1783 | 1782 | ||
1784 | /* Check LCD panel parrmation */ | 1783 | /* Check LCD panel parrmation */ |
1785 | 1784 | ||
1786 | if (par->chip == S3_SAVAGE_MX) { | 1785 | if (par->display_type == DISP_LCD) { |
1787 | unsigned char cr6b = VGArCR( 0x6b ); | 1786 | unsigned char cr6b = VGArCR( 0x6b ); |
1788 | 1787 | ||
1789 | int panelX = (VGArSEQ (0x61) + | 1788 | int panelX = (VGArSEQ (0x61) + |
@@ -1922,15 +1921,15 @@ static int __devinit savage_init_fb_info (struct fb_info *info, | |||
1922 | snprintf (info->fix.id, 16, "ProSavageKM"); | 1921 | snprintf (info->fix.id, 16, "ProSavageKM"); |
1923 | break; | 1922 | break; |
1924 | case FB_ACCEL_S3TWISTER_P: | 1923 | case FB_ACCEL_S3TWISTER_P: |
1925 | par->chip = S3_TWISTER; | 1924 | par->chip = S3_PROSAVAGE; |
1926 | snprintf (info->fix.id, 16, "TwisterP"); | 1925 | snprintf (info->fix.id, 16, "TwisterP"); |
1927 | break; | 1926 | break; |
1928 | case FB_ACCEL_S3TWISTER_K: | 1927 | case FB_ACCEL_S3TWISTER_K: |
1929 | par->chip = S3_TWISTER; | 1928 | par->chip = S3_PROSAVAGE; |
1930 | snprintf (info->fix.id, 16, "TwisterK"); | 1929 | snprintf (info->fix.id, 16, "TwisterK"); |
1931 | break; | 1930 | break; |
1932 | case FB_ACCEL_PROSAVAGE_DDR: | 1931 | case FB_ACCEL_PROSAVAGE_DDR: |
1933 | par->chip = S3_PROSAVAGEDDR; | 1932 | par->chip = S3_PROSAVAGE; |
1934 | snprintf (info->fix.id, 16, "ProSavageDDR"); | 1933 | snprintf (info->fix.id, 16, "ProSavageDDR"); |
1935 | break; | 1934 | break; |
1936 | case FB_ACCEL_PROSAVAGE_DDRK: | 1935 | case FB_ACCEL_PROSAVAGE_DDRK: |