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 1.9.5.x5
[linux-2.6.git]
/
drivers
/
video
/
valkyriefb.c
diff --git
a/drivers/video/valkyriefb.c
b/drivers/video/valkyriefb.c
index
e6c4862
..
31a2bbc
100644
(file)
--- a/
drivers/video/valkyriefb.c
+++ b/
drivers/video/valkyriefb.c
@@
-89,13
+89,13
@@
struct fb_par_valkyrie {
struct fb_info_valkyrie {
struct fb_info info;
struct fb_par_valkyrie par;
struct fb_info_valkyrie {
struct fb_info info;
struct fb_par_valkyrie par;
- struct cmap_regs *cmap_regs;
+ struct cmap_regs
__iomem
*cmap_regs;
unsigned long cmap_regs_phys;
unsigned long cmap_regs_phys;
- struct valkyrie_regs *valkyrie_regs;
+ struct valkyrie_regs
__iomem
*valkyrie_regs;
unsigned long valkyrie_regs_phys;
unsigned long valkyrie_regs_phys;
- __u8 *frame_buffer;
+ __u8
__iomem
*frame_buffer;
unsigned long frame_buffer_phys;
int sense;
unsigned long frame_buffer_phys;
int sense;
@@
-118,9
+118,7
@@
static int valkyriefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
static int valkyriefb_blank(int blank_mode, struct fb_info *info);
static int read_valkyrie_sense(struct fb_info_valkyrie *p);
static int valkyriefb_blank(int blank_mode, struct fb_info *info);
static int read_valkyrie_sense(struct fb_info_valkyrie *p);
-static inline int valkyrie_vram_reqd(int video_mode, int color_mode);
static void set_valkyrie_clock(unsigned char *params);
static void set_valkyrie_clock(unsigned char *params);
-static inline int valkyrie_par_to_var(struct fb_par_valkyrie *par, struct fb_var_screeninfo *var);
static int valkyrie_var_to_par(struct fb_var_screeninfo *var,
struct fb_par_valkyrie *par, const struct fb_info *fb_info);
static int valkyrie_var_to_par(struct fb_var_screeninfo *var,
struct fb_par_valkyrie *par, const struct fb_info *fb_info);
@@
-144,7
+142,7
@@
static struct fb_ops valkyriefb_ops = {
static int valkyriefb_set_par(struct fb_info *info)
{
struct fb_info_valkyrie *p = (struct fb_info_valkyrie *) info;
static int valkyriefb_set_par(struct fb_info *info)
{
struct fb_info_valkyrie *p = (struct fb_info_valkyrie *) info;
- volatile struct valkyrie_regs *valkyrie_regs = p->valkyrie_regs;
+ volatile struct valkyrie_regs
__iomem
*valkyrie_regs = p->valkyrie_regs;
struct fb_par_valkyrie *par = info->par;
struct valkyrie_regvals *init;
int err;
struct fb_par_valkyrie *par = info->par;
struct valkyrie_regvals *init;
int err;
@@
-171,6
+169,12
@@
static int valkyriefb_set_par(struct fb_info *info)
return 0;
}
return 0;
}
+static inline int valkyrie_par_to_var(struct fb_par_valkyrie *par,
+ struct fb_var_screeninfo *var)
+{
+ return mac_vmode_to_var(par->vmode, par->cmode, var);
+}
+
static int
valkyriefb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
{
static int
valkyriefb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
{
@@
-203,13
+207,13
@@
static int valkyriefb_blank(int blank_mode, struct fb_info *info)
return 1;
switch (blank_mode) {
return 1;
switch (blank_mode) {
- case
0:
/* unblank */
+ case
FB_BLANK_UNBLANK:
/* unblank */
out_8(&p->valkyrie_regs->mode.r, init->mode);
break;
out_8(&p->valkyrie_regs->mode.r, init->mode);
break;
- case
1
:
+ case
FB_BLANK_NORMAL
:
return 1; /* get caller to set CLUT to all black */
return 1; /* get caller to set CLUT to all black */
- case
VESA_VSYNC_SUSPEND+1
:
- case
VESA_HSYNC_SUSPEND+1
:
+ case
FB_BLANK_VSYNC_SUSPEND
:
+ case
FB_BLANK_HSYNC_SUSPEND
:
/*
* [kps] Value extracted from MacOS. I don't know
* whether this bit disables hsync or vsync, or
/*
* [kps] Value extracted from MacOS. I don't know
* whether this bit disables hsync or vsync, or
@@
-217,7
+221,7
@@
static int valkyriefb_blank(int blank_mode, struct fb_info *info)
*/
out_8(&p->valkyrie_regs->mode.r, init->mode | 0x40);
break;
*/
out_8(&p->valkyrie_regs->mode.r, init->mode | 0x40);
break;
- case
VESA_POWERDOWN+1
:
+ case
FB_BLANK_POWERDOWN
:
out_8(&p->valkyrie_regs->mode.r, 0x66);
break;
}
out_8(&p->valkyrie_regs->mode.r, 0x66);
break;
}
@@
-228,7
+232,7
@@
static int valkyriefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
u_int transp, struct fb_info *info)
{
struct fb_info_valkyrie *p = (struct fb_info_valkyrie *) info;
u_int transp, struct fb_info *info)
{
struct fb_info_valkyrie *p = (struct fb_info_valkyrie *) info;
- volatile struct cmap_regs *cmap_regs = p->cmap_regs;
+ volatile struct cmap_regs
__iomem
*cmap_regs = p->cmap_regs;
struct fb_par_valkyrie *par = info->par;
if (regno > 255)
struct fb_par_valkyrie *par = info->par;
if (regno > 255)
@@
-252,7
+256,7
@@
static int valkyriefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
return 0;
}
return 0;
}
-static int valkyrie_vram_reqd(int video_mode, int color_mode)
+static in
line in
t valkyrie_vram_reqd(int video_mode, int color_mode)
{
int pitch;
struct valkyrie_regvals *init = valkyrie_reg_init[video_mode-1];
{
int pitch;
struct valkyrie_regvals *init = valkyrie_reg_init[video_mode-1];
@@
-318,6
+322,11
@@
int __init valkyriefb_init(void)
struct fb_info_valkyrie *p;
unsigned long frame_buffer_phys, cmap_regs_phys, flags;
int err;
struct fb_info_valkyrie *p;
unsigned long frame_buffer_phys, cmap_regs_phys, flags;
int err;
+ char *option = NULL;
+
+ if (fb_get_options("valkyriefb", &option))
+ return -ENODEV;
+ valkyriefb_setup(option);
#ifdef CONFIG_MAC
if (!MACH_IS_MAC)
#ifdef CONFIG_MAC
if (!MACH_IS_MAC)
@@
-332,21
+341,23
@@
int __init valkyriefb_init(void)
cmap_regs_phys = 0x50f24000;
flags = IOMAP_NOCACHE_SER; /* IOMAP_WRITETHROUGH?? */
#else /* ppc (!CONFIG_MAC) */
cmap_regs_phys = 0x50f24000;
flags = IOMAP_NOCACHE_SER; /* IOMAP_WRITETHROUGH?? */
#else /* ppc (!CONFIG_MAC) */
- struct device_node *dp;
+ {
+ struct device_node *dp;
- dp = find_devices("valkyrie");
- if (dp == 0)
- return 0;
+
dp = find_devices("valkyrie");
+
if (dp == 0)
+
return 0;
- if (dp->n_addrs != 1) {
- printk(KERN_ERR "expecting 1 address for valkyrie (got %d)\n",
- dp->n_addrs);
- return 0;
- }
+
if (dp->n_addrs != 1) {
+
printk(KERN_ERR "expecting 1 address for valkyrie (got %d)\n",
+
dp->n_addrs);
+
return 0;
+
}
- frame_buffer_phys = dp->addrs[0].address;
- cmap_regs_phys = dp->addrs[0].address+0x304000;
- flags = _PAGE_WRITETHRU;
+ frame_buffer_phys = dp->addrs[0].address;
+ cmap_regs_phys = dp->addrs[0].address+0x304000;
+ flags = _PAGE_WRITETHRU;
+ }
#endif /* ppc (!CONFIG_MAC) */
p = kmalloc(sizeof(*p), GFP_ATOMIC);
#endif /* ppc (!CONFIG_MAC) */
p = kmalloc(sizeof(*p), GFP_ATOMIC);
@@
-504,11
+515,6
@@
static int valkyrie_var_to_par(struct fb_var_screeninfo *var,
return 0;
}
return 0;
}
-static int valkyrie_par_to_var(struct fb_par_valkyrie *par, struct fb_var_screeninfo *var)
-{
- return mac_vmode_to_var(par->vmode, par->cmode, var);
-}
-
static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p)
{
memset(fix, 0, sizeof(*fix));
static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p)
{
memset(fix, 0, sizeof(*fix));
@@
-540,8
+546,8
@@
static void valkyrie_par_to_fix(struct fb_par_valkyrie *par,
static void __init valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p)
{
info->fbops = &valkyriefb_ops;
static void __init valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p)
{
info->fbops = &valkyriefb_ops;
- info->screen_base =
(char *)
p->frame_buffer + 0x1000;
- info->flags = FBINFO_
FLAG_
DEFAULT;
+ info->screen_base = p->frame_buffer + 0x1000;
+ info->flags = FBINFO_DEFAULT;
info->pseudo_palette = p->pseudo_palette;
fb_alloc_cmap(&info->cmap, 256, 0);
info->par = &p->par;
info->pseudo_palette = p->pseudo_palette;
fb_alloc_cmap(&info->cmap, 256, 0);
info->par = &p->par;
@@
-580,4
+586,5
@@
int __init valkyriefb_setup(char *options)
return 0;
}
return 0;
}
+module_init(valkyriefb_init);
MODULE_LICENSE("GPL");
MODULE_LICENSE("GPL");