976 var->blue.msb_right = 0;
977 var->transp.msb_right = 0;
978}
979
980
981
982
983
984
985
986
987
988
989
990static int i810_check_params(struct fb_var_screeninfo *var,
991 struct fb_info *info)
992{
993 struct i810fb_par *par = info->par;
994 int line_length, vidmem, mode_valid = 0, retval = 0;
995 u32 vyres = var->yres_virtual, vxres = var->xres_virtual;
996
997
998
999 line_length = get_line_length(par, vxres, var->bits_per_pixel);
1000 vidmem = line_length*vyres;
1001
1002 if (vidmem > par->fb.size) {
1003 vyres = par->fb.size/line_length;
1004 if (vyres < var->yres) {
1005 vyres = yres;
1006 vxres = par->fb.size/vyres;
1007 vxres /= var->bits_per_pixel >> 3;
1008 line_length = get_line_length(par, vxres,
1009 var->bits_per_pixel);
1010 vidmem = line_length * yres;
1011 if (vxres < var->xres) {
1012 printk("i810fb: required video memory, "
1013 "%d bytes, for %dx%d-%d (virtual) "
1014 "is out of range\n",
1015 vidmem, vxres, vyres,
1016 var->bits_per_pixel);