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
# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
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-iplan2p8.o fbcon-vga-planes.o fbcon-cfb16.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,
var->xoffset = up(var->xoffset, 2);
}
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)
par->hw.falcon.line_offset -= bpp;
xoffset = var->xoffset - par->hw.falcon.xoffset;
......@@ -2840,8 +2840,8 @@ int __init atafb_setup( char *options )
if (!options || !*options)
return 0;
for(this_opt=strtok(options,","); this_opt; this_opt=strtok(NULL,",")) {
while ((this_opt = strsep(options, ",")) != NULL) {
if (!*this_opt) continue;
if ((temp=get_video_mode(this_opt)))
default_par=temp;
......
......@@ -74,7 +74,7 @@ struct fb_info_chips {
#define write_ind(num, val, ap, dp) do { \
outb((num), (ap)); outb((val), (dp)); \
} while (0)
} while (0);
#define read_ind(num, var, ap, dp) do { \
outb((num), (ap)); var = inb((dp)); \
} while (0);
......
......@@ -225,7 +225,7 @@ static struct fb_ops controlfb_ops = {
fb_set_var: control_set_var,
fb_get_cmap: control_get_cmap,
fb_set_cmap: gen_set_cmap,
fb_setcolreg: control_setcolreg,
fb_setcolreg: controlfb_setcolreg,
fb_pan_display: control_pan_display,
fb_blank: controlfb_blank,
fb_mmap: control_mmap,
......
......@@ -1111,13 +1111,13 @@ static int cyber2000fb_blank(int blank, struct fb_info *info)
static struct fb_ops cyber2000fb_ops = {
owner: THIS_MODULE,
fb_set_var: cyber2000fb_set_var,
fb_set_cmap: gen_set_cmap,
fb_setcolreg: cyber2000fb_setcolreg,
fb_pan_display: cyber2000fb_pan_display,
fb_blank: cyber2000fb_blank,
fb_get_fix: gen_get_fix,
fb_get_var: gen_get_var,
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)
}
#endif
DPRINTK("EXIT\n");
return 0;
}
......
......@@ -522,7 +522,7 @@ fb_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
set_con2fb_map(i, con2fb.framebuffer);
return 0;
case FBIOBLANK:
if (fb->fb_blank == 0)
if (fb->fb_blank == NULL)
return -EINVAL;
return fb->fb_blank(arg, info);
default:
......
......@@ -423,8 +423,8 @@ static struct display_switch fbcon_neo2200_accel = {
/*
* 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,
u_int transp, struct fb_info *fb)
static int neofb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
u_int transp, struct fb_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
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 --
*
......@@ -1570,7 +1530,7 @@ static int neofb_set_var (struct fb_var_screeninfo *var, int con,
neofb_set_par (info, &par);
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)
neo2200_accel_init (info, var);
......@@ -1673,7 +1633,7 @@ static int neofb_switch (int con, struct fb_info *fb)
/*
* (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;
......@@ -1706,40 +1666,16 @@ static void neofb_blank (int blank, struct fb_info *fb)
default: /* case 0, or anything else: unblank */
break;
}
}
/*
* 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;
return 0;
}
static struct fb_ops neofb_ops = {
owner: THIS_MODULE,
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_blank: neofb_blank,
fb_get_fix: gen_get_fix,
fb_get_var: gen_get_var,
fb_get_cmap: gen_get_cmap,
......@@ -2166,7 +2102,6 @@ static struct neofb_info * __devinit neo_alloc_fb_info (struct pci_dev *dev,
info->fb.changevar = NULL;
info->fb.switch_con = neofb_switch;
info->fb.updatevar = neofb_updatevar;
info->fb.blank = neofb_blank;
info->fb.flags = FBINFO_FLAG_DEFAULT;
info->fb.disp = (struct display *)(info + 1);
info->fb.pseudo_palette = (void *)(info->fb.disp + 1);
......
......@@ -375,7 +375,7 @@ static int platinum_blank(int blank, struct fb_info *fb)
out_le32(&info->platinum_regs->ctrl.r, ctrl);
*/
/* 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,
......
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