Commit 60c9598a authored by James Simmons's avatar James Simmons Committed by James Simmons

A bunch of fixes.

parent e73ea16d
...@@ -10,7 +10,7 @@ mod-subdirs := matrox ...@@ -10,7 +10,7 @@ mod-subdirs := matrox
# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'. # This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
export-objs := fbmem.o fbcmap.o fbcon.o fbmon.o modedb.o \ export-objs := fbmem.o fbcmap.o fbcon.o fbmon.o modedb.o \
fbcon-afb.o fbcon-ilbm.o fbgen.o \ fbcon-afb.o fbcon-ilbm.o \
fbcon-vga.o fbcon-iplan2p2.o fbcon-iplan2p4.o \ fbcon-vga.o fbcon-iplan2p2.o fbcon-iplan2p4.o \
fbcon-iplan2p8.o fbcon-vga-planes.o fbcon-cfb16.o \ fbcon-iplan2p8.o fbcon-vga-planes.o fbcon-cfb16.o \
fbcon-cfb2.o fbcon-cfb24.o fbcon-cfb32.o fbcon-cfb4.o \ fbcon-cfb2.o fbcon-cfb24.o fbcon-cfb32.o fbcon-cfb4.o \
......
...@@ -1596,7 +1596,7 @@ static int falcon_pan_display( struct fb_var_screeninfo *var, ...@@ -1596,7 +1596,7 @@ static int falcon_pan_display( struct fb_var_screeninfo *var,
var->xoffset = up(var->xoffset, 2); var->xoffset = up(var->xoffset, 2);
} }
par->hw.falcon.line_offset = bpp * par->hw.falcon.line_offset = bpp *
(fb_display[fb_info.currcon].var.xres_virtual - fb_display[currcon].var.xres) / 16; (fb_display[fb_info.currcon].var.xres_virtual - fb_display[fb_info.currcon].var.xres) / 16;
if (par->hw.falcon.xoffset) if (par->hw.falcon.xoffset)
par->hw.falcon.line_offset -= bpp; par->hw.falcon.line_offset -= bpp;
xoffset = var->xoffset - par->hw.falcon.xoffset; xoffset = var->xoffset - par->hw.falcon.xoffset;
...@@ -2840,8 +2840,8 @@ int __init atafb_setup( char *options ) ...@@ -2840,8 +2840,8 @@ int __init atafb_setup( char *options )
if (!options || !*options) if (!options || !*options)
return 0; return 0;
for(this_opt=strtok(options,","); this_opt; this_opt=strtok(NULL,",")) { while ((this_opt = strsep(options, ",")) != NULL) {
if (!*this_opt) continue; if (!*this_opt) continue;
if ((temp=get_video_mode(this_opt))) if ((temp=get_video_mode(this_opt)))
default_par=temp; default_par=temp;
......
...@@ -74,7 +74,7 @@ struct fb_info_chips { ...@@ -74,7 +74,7 @@ struct fb_info_chips {
#define write_ind(num, val, ap, dp) do { \ #define write_ind(num, val, ap, dp) do { \
outb((num), (ap)); outb((val), (dp)); \ outb((num), (ap)); outb((val), (dp)); \
} while (0) } while (0);
#define read_ind(num, var, ap, dp) do { \ #define read_ind(num, var, ap, dp) do { \
outb((num), (ap)); var = inb((dp)); \ outb((num), (ap)); var = inb((dp)); \
} while (0); } while (0);
......
...@@ -225,7 +225,7 @@ static struct fb_ops controlfb_ops = { ...@@ -225,7 +225,7 @@ static struct fb_ops controlfb_ops = {
fb_set_var: control_set_var, fb_set_var: control_set_var,
fb_get_cmap: control_get_cmap, fb_get_cmap: control_get_cmap,
fb_set_cmap: gen_set_cmap, fb_set_cmap: gen_set_cmap,
fb_setcolreg: control_setcolreg, fb_setcolreg: controlfb_setcolreg,
fb_pan_display: control_pan_display, fb_pan_display: control_pan_display,
fb_blank: controlfb_blank, fb_blank: controlfb_blank,
fb_mmap: control_mmap, fb_mmap: control_mmap,
......
...@@ -1111,13 +1111,13 @@ static int cyber2000fb_blank(int blank, struct fb_info *info) ...@@ -1111,13 +1111,13 @@ static int cyber2000fb_blank(int blank, struct fb_info *info)
static struct fb_ops cyber2000fb_ops = { static struct fb_ops cyber2000fb_ops = {
owner: THIS_MODULE, owner: THIS_MODULE,
fb_set_var: cyber2000fb_set_var, fb_set_var: cyber2000fb_set_var,
fb_set_cmap: gen_set_cmap,
fb_setcolreg: cyber2000fb_setcolreg, fb_setcolreg: cyber2000fb_setcolreg,
fb_pan_display: cyber2000fb_pan_display, fb_pan_display: cyber2000fb_pan_display,
fb_blank: cyber2000fb_blank, fb_blank: cyber2000fb_blank,
fb_get_fix: gen_get_fix, fb_get_fix: gen_get_fix,
fb_get_var: gen_get_var, fb_get_var: gen_get_var,
fb_get_cmap: gen_get_cmap, fb_get_cmap: gen_get_cmap,
fb_set_cmap: gen_set_cmap,
}; };
/* /*
......
...@@ -604,6 +604,7 @@ static int cyberfb_blank(int blank, struct fb_info *info) ...@@ -604,6 +604,7 @@ static int cyberfb_blank(int blank, struct fb_info *info)
} }
#endif #endif
DPRINTK("EXIT\n"); DPRINTK("EXIT\n");
return 0;
} }
......
...@@ -522,7 +522,7 @@ fb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, ...@@ -522,7 +522,7 @@ fb_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
set_con2fb_map(i, con2fb.framebuffer); set_con2fb_map(i, con2fb.framebuffer);
return 0; return 0;
case FBIOBLANK: case FBIOBLANK:
if (fb->fb_blank == 0) if (fb->fb_blank == NULL)
return -EINVAL; return -EINVAL;
return fb->fb_blank(arg, info); return fb->fb_blank(arg, info);
default: default:
......
...@@ -423,8 +423,8 @@ static struct display_switch fbcon_neo2200_accel = { ...@@ -423,8 +423,8 @@ static struct display_switch fbcon_neo2200_accel = {
/* /*
* Set a single color register. Return != 0 for invalid regno. * Set a single color register. Return != 0 for invalid regno.
*/ */
static int neo_setcolreg(u_int regno, u_int red, u_int green, u_int blue, static int neofb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
u_int transp, struct fb_info *fb) u_int transp, struct fb_info *fb)
{ {
struct neofb_info *info = (struct neofb_info *)fb; struct neofb_info *info = (struct neofb_info *)fb;
...@@ -830,46 +830,6 @@ static void neofb_update_start (struct neofb_info *info, struct fb_var_screeninf ...@@ -830,46 +830,6 @@ static void neofb_update_start (struct neofb_info *info, struct fb_var_screeninf
neoLock(); neoLock();
} }
/*
* Set the Colormap
*/
static int neofb_set_cmap(struct fb_cmap *cmap, int kspc, int con,
struct fb_info *fb)
{
struct neofb_info *info = (struct neofb_info *)fb;
struct display* disp = (con < 0) ? fb->disp : (fb_display + con);
struct fb_cmap *dcmap = &disp->cmap;
int err = 0;
/* no colormap allocated? */
if (!dcmap->len)
{
int size;
if (fb->var.bits_per_pixel == 8)
size = NR_PALETTE;
else
size = 32;
err = fb_alloc_cmap (dcmap, size, 0);
}
/*
* we should be able to remove this test once fbcon has been
* "improved" --rmk
*/
if (!err && con == info->fb.currcon)
{
err = fb_set_cmap (cmap, kspc, neo_setcolreg, fb);
dcmap = &fb->cmap;
}
if (!err)
fb_copy_cmap (cmap, dcmap, kspc ? 0 : 1);
return err;
}
/* /*
* neoCalcVCLK -- * neoCalcVCLK --
* *
...@@ -1570,7 +1530,7 @@ static int neofb_set_var (struct fb_var_screeninfo *var, int con, ...@@ -1570,7 +1530,7 @@ static int neofb_set_var (struct fb_var_screeninfo *var, int con,
neofb_set_par (info, &par); neofb_set_par (info, &par);
neofb_update_start (info, var); neofb_update_start (info, var);
fb_set_cmap (&fb->cmap, 1, neo_setcolreg, fb); fb_set_cmap (&fb->cmap, 1, fb);
if (var->accel_flags & FB_ACCELF_TEXT) if (var->accel_flags & FB_ACCELF_TEXT)
neo2200_accel_init (info, var); neo2200_accel_init (info, var);
...@@ -1673,7 +1633,7 @@ static int neofb_switch (int con, struct fb_info *fb) ...@@ -1673,7 +1633,7 @@ static int neofb_switch (int con, struct fb_info *fb)
/* /*
* (Un)Blank the display. * (Un)Blank the display.
*/ */
static void neofb_blank (int blank, struct fb_info *fb) static int neofb_blank (int blank, struct fb_info *fb)
{ {
// struct neofb_info *info = (struct neofb_info *)fb; // struct neofb_info *info = (struct neofb_info *)fb;
...@@ -1706,40 +1666,16 @@ static void neofb_blank (int blank, struct fb_info *fb) ...@@ -1706,40 +1666,16 @@ static void neofb_blank (int blank, struct fb_info *fb)
default: /* case 0, or anything else: unblank */ default: /* case 0, or anything else: unblank */
break; break;
} }
} return 0;
/*
* Get the currently displayed virtual consoles colormap.
*/
static int gen_get_cmap (struct fb_cmap *cmap, int kspc, int con, struct fb_info *fb)
{
fb_copy_cmap (&fb->cmap, cmap, kspc ? 0 : 2);
return 0;
}
/*
* Get the currently displayed virtual consoles fixed part of the display.
*/
static int gen_get_fix (struct fb_fix_screeninfo *fix, int con, struct fb_info *fb)
{
*fix = fb->fix;
return 0;
}
/*
* Get the current user defined part of the display.
*/
static int gen_get_var (struct fb_var_screeninfo *var, int con, struct fb_info *fb)
{
*var = fb->var;
return 0;
} }
static struct fb_ops neofb_ops = { static struct fb_ops neofb_ops = {
owner: THIS_MODULE, owner: THIS_MODULE,
fb_set_var: neofb_set_var, fb_set_var: neofb_set_var,
fb_set_cmap: neofb_set_cmap, fb_set_cmap: gen_set_cmap,
fb_setcolreg: neofb_setcolreg,
fb_pan_display: neofb_pan_display, fb_pan_display: neofb_pan_display,
fb_blank: neofb_blank,
fb_get_fix: gen_get_fix, fb_get_fix: gen_get_fix,
fb_get_var: gen_get_var, fb_get_var: gen_get_var,
fb_get_cmap: gen_get_cmap, fb_get_cmap: gen_get_cmap,
...@@ -2166,7 +2102,6 @@ static struct neofb_info * __devinit neo_alloc_fb_info (struct pci_dev *dev, ...@@ -2166,7 +2102,6 @@ static struct neofb_info * __devinit neo_alloc_fb_info (struct pci_dev *dev,
info->fb.changevar = NULL; info->fb.changevar = NULL;
info->fb.switch_con = neofb_switch; info->fb.switch_con = neofb_switch;
info->fb.updatevar = neofb_updatevar; info->fb.updatevar = neofb_updatevar;
info->fb.blank = neofb_blank;
info->fb.flags = FBINFO_FLAG_DEFAULT; info->fb.flags = FBINFO_FLAG_DEFAULT;
info->fb.disp = (struct display *)(info + 1); info->fb.disp = (struct display *)(info + 1);
info->fb.pseudo_palette = (void *)(info->fb.disp + 1); info->fb.pseudo_palette = (void *)(info->fb.disp + 1);
......
...@@ -375,7 +375,7 @@ static int platinum_blank(int blank, struct fb_info *fb) ...@@ -375,7 +375,7 @@ static int platinum_blank(int blank, struct fb_info *fb)
out_le32(&info->platinum_regs->ctrl.r, ctrl); out_le32(&info->platinum_regs->ctrl.r, ctrl);
*/ */
/* TODO: Figure out how the heck to powerdown this thing! */ /* TODO: Figure out how the heck to powerdown this thing! */
return 0; return 0;
} }
static int platinum_getcolreg(u_int regno, u_int *red, u_int *green, static int platinum_getcolreg(u_int regno, u_int *red, u_int *green,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment