git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 2.0 rc7
[linux-2.6.git]
/
drivers
/
video
/
cyber2000fb.c
diff --git
a/drivers/video/cyber2000fb.c
b/drivers/video/cyber2000fb.c
index
4dca34f
..
3894b2a
100644
(file)
--- a/
drivers/video/cyber2000fb.c
+++ b/
drivers/video/cyber2000fb.c
@@
-66,8
+66,8
@@
struct cfb_info {
struct display_switch *dispsw;
struct display *display;
struct pci_dev *dev;
struct display_switch *dispsw;
struct display *display;
struct pci_dev *dev;
- unsigned char *region;
- unsigned char *regs;
+ unsigned char
__iomem
*region;
+ unsigned char
__iomem
*regs;
u_int id;
int func_use_count;
u_long ref_ps;
u_int id;
int func_use_count;
u_long ref_ps;
@@
-90,11
+90,12
@@
struct cfb_info {
*/
u_char ramdac_ctrl;
u_char ramdac_powerdown;
*/
u_char ramdac_ctrl;
u_char ramdac_powerdown;
+
+ u32 pseudo_palette[16];
};
};
-static char default_font_storage[40];
static char *default_font = "Acorn8x8";
static char *default_font = "Acorn8x8";
-
MODULE_PARM(default_font, "s"
);
+
module_param(default_font, charp, 0
);
MODULE_PARM_DESC(default_font, "Default font name");
/*
MODULE_PARM_DESC(default_font, "Default font name");
/*
@@
-1003,16
+1004,16
@@
static int cyber2000fb_blank(int blank, struct fb_info *info)
int i;
switch (blank) {
int i;
switch (blank) {
- case
4:
/* powerdown - both sync lines down */
+ case
FB_BLANK_POWERDOWN:
/* powerdown - both sync lines down */
sync = EXT_SYNC_CTL_VS_0 | EXT_SYNC_CTL_HS_0;
break;
sync = EXT_SYNC_CTL_VS_0 | EXT_SYNC_CTL_HS_0;
break;
- case
3:
/* hsync off */
+ case
FB_BLANK_HSYNC_SUSPEND:
/* hsync off */
sync = EXT_SYNC_CTL_VS_NORMAL | EXT_SYNC_CTL_HS_0;
break;
sync = EXT_SYNC_CTL_VS_NORMAL | EXT_SYNC_CTL_HS_0;
break;
- case
2:
/* vsync off */
+ case
FB_BLANK_VSYNC_SUSPEND:
/* vsync off */
sync = EXT_SYNC_CTL_VS_0 | EXT_SYNC_CTL_HS_NORMAL;
break;
sync = EXT_SYNC_CTL_VS_0 | EXT_SYNC_CTL_HS_NORMAL;
break;
- case
1:
/* soft blank */
+ case
FB_BLANK_NORMAL:
/* soft blank */
default: /* unblank */
break;
}
default: /* unblank */
break;
}
@@
-1224,9
+1225,7
@@
cyberpro_alloc_fb_info(unsigned int id, char *name)
{
struct cfb_info *cfb;
{
struct cfb_info *cfb;
- cfb = kmalloc(sizeof(struct cfb_info) +
- sizeof(u32) * 16, GFP_KERNEL);
-
+ cfb = kmalloc(sizeof(struct cfb_info), GFP_KERNEL);
if (!cfb)
return NULL;
if (!cfb)
return NULL;
@@
-1282,7
+1281,7
@@
cyberpro_alloc_fb_info(unsigned int id, char *name)
cfb->fb.fbops = &cyber2000fb_ops;
cfb->fb.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
cfb->fb.fbops = &cyber2000fb_ops;
cfb->fb.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
- cfb->fb.pseudo_palette =
(void *)(cfb + 1)
;
+ cfb->fb.pseudo_palette =
cfb->pseudo_palette
;
fb_alloc_cmap(&cfb->fb.cmap, NR_PALETTE, 0);
fb_alloc_cmap(&cfb->fb.cmap, NR_PALETTE, 0);
@@
-1306,7
+1305,8
@@
cyberpro_free_fb_info(struct cfb_info *cfb)
* Parse Cyber2000fb options. Usage:
* video=cyber2000:font:fontname
*/
* Parse Cyber2000fb options. Usage:
* video=cyber2000:font:fontname
*/
-int
+#ifndef MODULE
+static int
cyber2000fb_setup(char *options)
{
char *opt;
cyber2000fb_setup(char *options)
{
char *opt;
@@
-1319,6
+1319,8
@@
cyber2000fb_setup(char *options)
continue;
if (strncmp(opt, "font:", 5) == 0) {
continue;
if (strncmp(opt, "font:", 5) == 0) {
+ static char default_font_storage[40];
+
strlcpy(default_font_storage, opt + 5, sizeof(default_font_storage));
default_font = default_font_storage;
continue;
strlcpy(default_font_storage, opt + 5, sizeof(default_font_storage));
default_font = default_font_storage;
continue;
@@
-1328,6
+1330,7
@@
cyber2000fb_setup(char *options)
}
return 0;
}
}
return 0;
}
+#endif /* MODULE */
/*
* The CyberPro chips can be placed on many different bus types.
/*
* The CyberPro chips can be placed on many different bus types.
@@
-1399,6
+1402,8
@@
static int __devinit cyberpro_common_probe(struct cfb_info *cfb)
cfb->fb.var.xres, cfb->fb.var.yres,
h_sync / 1000, h_sync % 1000, v_sync);
cfb->fb.var.xres, cfb->fb.var.yres,
h_sync / 1000, h_sync % 1000, v_sync);
+ if (cfb->dev)
+ cfb->fb.device = &cfb->dev->dev;
err = register_framebuffer(&cfb->fb);
failed:
err = register_framebuffer(&cfb->fb);
failed:
@@
-1663,7
+1668,7
@@
static void __devexit cyberpro_pci_remove(struct pci_dev *dev)
}
}
}
}
-static int cyberpro_pci_suspend(struct pci_dev *dev,
u32
state)
+static int cyberpro_pci_suspend(struct pci_dev *dev,
pm_message_t
state)
{
return 0;
}
{
return 0;
}
@@
-1715,14
+1720,14
@@
static struct pci_driver cyberpro_driver = {
*
* Tony: "module_init" is now required
*/
*
* Tony: "module_init" is now required
*/
-int __init cyber2000fb_init(void)
+
static
int __init cyber2000fb_init(void)
{
int ret = -1, err;
#ifndef MODULE
char *option = NULL;
{
int ret = -1, err;
#ifndef MODULE
char *option = NULL;
- if (fb_get_options("cyber2000fb",
NULL
))
+ if (fb_get_options("cyber2000fb",
&option
))
return -ENODEV;
cyber2000fb_setup(option);
#endif
return -ENODEV;
cyber2000fb_setup(option);
#endif
@@
-1735,7
+1740,7
@@
int __init cyber2000fb_init(void)
}
#endif
#ifdef CONFIG_PCI
}
#endif
#ifdef CONFIG_PCI
- err = pci_
module_init
(&cyberpro_driver);
+ err = pci_
register_driver
(&cyberpro_driver);
if (!err)
ret = 0;
#endif
if (!err)
ret = 0;
#endif