Lines Matching refs:var
1122 static int ami_decode_var(struct fb_var_screeninfo *var, struct amifb_par *par, in ami_decode_var() argument
1134 if (var->pixclock <= pixclock[clk_shift]) in ami_decode_var()
1146 if ((par->xres = var->xres) < 64) in ami_decode_var()
1148 if ((par->yres = var->yres) < 64) in ami_decode_var()
1150 if ((par->vxres = var->xres_virtual) < par->xres) in ami_decode_var()
1152 if ((par->vyres = var->yres_virtual) < par->yres) in ami_decode_var()
1155 par->bpp = var->bits_per_pixel; in ami_decode_var()
1156 if (!var->nonstd) { in ami_decode_var()
1167 } else if (var->nonstd == FB_NONSTD_HAM) { in ami_decode_var()
1188 par->vmode = var->vmode | FB_VMODE_SMOOTH_XPAN; in ami_decode_var()
1216 par->htotal = down8((var->left_margin + par->xres + var->right_margin + in ami_decode_var()
1217 var->hsync_len) << clk_shift); in ami_decode_var()
1219 down2(((var->upper_margin + par->yres + var->lower_margin + in ami_decode_var()
1220 var->vsync_len) << line_shift) + 1); in ami_decode_var()
1226 if (var->sync & FB_SYNC_BROADCAST) { in ami_decode_var()
1228 ((var->right_margin - var->hsync_len) << clk_shift); in ami_decode_var()
1230 par->diwstop_h += mod4(var->hsync_len); in ami_decode_var()
1236 ((var->lower_margin - var->vsync_len) << line_shift); in ami_decode_var()
1326 par->hsstrt = var->right_margin << clk_shift; in ami_decode_var()
1327 par->hsstop = (var->right_margin + var->hsync_len) << clk_shift; in ami_decode_var()
1337 par->vsstrt = var->lower_margin << line_shift; in ami_decode_var()
1338 par->vsstop = (var->lower_margin + var->vsync_len) << line_shift; in ami_decode_var()
1357 if (var->sync & FB_SYNC_HOR_HIGH_ACT) in ami_decode_var()
1359 if (var->sync & FB_SYNC_VERT_HIGH_ACT) in ami_decode_var()
1361 if (var->sync & FB_SYNC_COMP_HIGH_ACT) in ami_decode_var()
1465 if (var->nonstd == FB_NONSTD_HAM) in ami_decode_var()
1467 if (var->sync & FB_SYNC_EXT) in ami_decode_var()
1483 if (!((par->vmode ^ var->vmode) & FB_VMODE_YWRAP)) { in ami_decode_var()
1484 par->xoffset = var->xoffset; in ami_decode_var()
1485 par->yoffset = var->yoffset; in ami_decode_var()
1511 static void ami_encode_var(struct fb_var_screeninfo *var, in ami_encode_var() argument
1516 memset(var, 0, sizeof(struct fb_var_screeninfo)); in ami_encode_var()
1521 var->xres = par->xres; in ami_encode_var()
1522 var->yres = par->yres; in ami_encode_var()
1523 var->xres_virtual = par->vxres; in ami_encode_var()
1524 var->yres_virtual = par->vyres; in ami_encode_var()
1525 var->xoffset = par->xoffset; in ami_encode_var()
1526 var->yoffset = par->yoffset; in ami_encode_var()
1528 var->bits_per_pixel = par->bpp; in ami_encode_var()
1529 var->grayscale = 0; in ami_encode_var()
1531 var->red.offset = 0; in ami_encode_var()
1532 var->red.msb_right = 0; in ami_encode_var()
1533 var->red.length = par->bpp; in ami_encode_var()
1535 var->red.length -= 2; in ami_encode_var()
1536 var->blue = var->green = var->red; in ami_encode_var()
1537 var->transp.offset = 0; in ami_encode_var()
1538 var->transp.length = 0; in ami_encode_var()
1539 var->transp.msb_right = 0; in ami_encode_var()
1542 var->nonstd = FB_NONSTD_HAM; in ami_encode_var()
1544 var->nonstd = 0; in ami_encode_var()
1545 var->activate = 0; in ami_encode_var()
1547 var->height = -1; in ami_encode_var()
1548 var->width = -1; in ami_encode_var()
1550 var->pixclock = pixclock[clk_shift]; in ami_encode_var()
1553 var->vmode = FB_VMODE_DOUBLE; in ami_encode_var()
1555 var->vmode = FB_VMODE_INTERLACED; in ami_encode_var()
1557 var->vmode = FB_VMODE_NONINTERLACED; in ami_encode_var()
1560 var->hsync_len = (par->hsstop - par->hsstrt)>>clk_shift; in ami_encode_var()
1561 var->right_margin = par->hsstrt>>clk_shift; in ami_encode_var()
1562 var->left_margin = (par->htotal>>clk_shift) - var->xres - var->right_margin - var->hsync_len; in ami_encode_var()
1563 var->vsync_len = (par->vsstop - par->vsstrt)>>line_shift; in ami_encode_var()
1564 var->lower_margin = par->vsstrt>>line_shift; in ami_encode_var()
1565 var->upper_margin = (par->vtotal>>line_shift) - var->yres - var->lower_margin - var->vsync_len; in ami_encode_var()
1566 var->sync = 0; in ami_encode_var()
1568 var->sync |= FB_SYNC_HOR_HIGH_ACT; in ami_encode_var()
1570 var->sync |= FB_SYNC_VERT_HIGH_ACT; in ami_encode_var()
1572 var->sync |= FB_SYNC_COMP_HIGH_ACT; in ami_encode_var()
1574 var->sync = FB_SYNC_BROADCAST; in ami_encode_var()
1575 var->hsync_len = (152>>clk_shift) + mod4(par->diwstop_h); in ami_encode_var()
1576 var->right_margin = ((par->htotal - down4(par->diwstop_h))>>clk_shift) + var->hsync_len; in ami_encode_var()
1577 var->left_margin = (par->htotal>>clk_shift) - var->xres - var->right_margin - var->hsync_len; in ami_encode_var()
1578 var->vsync_len = 4>>line_shift; in ami_encode_var()
1579 var->lower_margin = ((par->vtotal - par->diwstop_v)>>line_shift) + var->vsync_len; in ami_encode_var()
1580 var->upper_margin = (((par->vtotal - 2)>>line_shift) + 1) - var->yres - in ami_encode_var()
1581 var->lower_margin - var->vsync_len; in ami_encode_var()
1585 var->sync |= FB_SYNC_EXT; in ami_encode_var()
1587 var->vmode |= FB_VMODE_YWRAP; in ami_encode_var()
1665 static void ami_pan_var(struct fb_var_screeninfo *var, struct fb_info *info) in ami_pan_var() argument
1669 par->xoffset = var->xoffset; in ami_pan_var()
1670 par->yoffset = var->yoffset; in ami_pan_var()
1671 if (var->vmode & FB_VMODE_YWRAP) in ami_pan_var()
1837 static int ami_get_var_cursorinfo(struct fb_var_cursorinfo *var, in ami_get_var_cursorinfo() argument
1853 alloc = var->height * var->width; in ami_get_var_cursorinfo()
1854 var->height = par->crsr.height; in ami_get_var_cursorinfo()
1855 var->width = par->crsr.width; in ami_get_var_cursorinfo()
1856 var->xspot = par->crsr.spot_x; in ami_get_var_cursorinfo()
1857 var->yspot = par->crsr.spot_y; in ami_get_var_cursorinfo()
1858 if (size > var->height * var->width) in ami_get_var_cursorinfo()
1868 for (height = (short)var->height - 1; height >= 0; height--) { in ami_get_var_cursorinfo()
1870 for (width = (short)var->width - 1; width >= 0; width--) { in ami_get_var_cursorinfo()
1913 static int ami_set_var_cursorinfo(struct fb_var_cursorinfo *var, in ami_set_var_cursorinfo() argument
1926 if (!var->width) in ami_set_var_cursorinfo()
1928 else if (var->width <= 16) in ami_set_var_cursorinfo()
1930 else if (var->width <= 32) in ami_set_var_cursorinfo()
1932 else if (var->width <= 64) in ami_set_var_cursorinfo()
1938 if (!var->height) in ami_set_var_cursorinfo()
1940 if (!access_ok(VERIFY_READ, data, var->width * var->height)) in ami_set_var_cursorinfo()
1946 if (((var->height + 4) << fmode << 2) > SPRITEMEMSIZE) in ami_set_var_cursorinfo()
1948 memset(lspr, 0, (var->height + 4) << fmode << 2); in ami_set_var_cursorinfo()
1949 shfsprite += ((var->height + 5)&-2) << fmode; in ami_set_var_cursorinfo()
1952 if (((var->height + 2) << fmode << 2) > SPRITEMEMSIZE) in ami_set_var_cursorinfo()
1954 memset(lspr, 0, (var->height + 2) << fmode << 2); in ami_set_var_cursorinfo()
1957 for (height = (short)var->height - 1; height >= 0; height--) { in ami_set_var_cursorinfo()
1959 for (width = (short)var->width - 1; width >= 0; width--) { in ami_set_var_cursorinfo()
2018 par->crsr.height = var->height; in ami_set_var_cursorinfo()
2019 par->crsr.width = var->width; in ami_set_var_cursorinfo()
2020 par->crsr.spot_x = var->xspot; in ami_set_var_cursorinfo()
2021 par->crsr.spot_y = var->yspot; in ami_set_var_cursorinfo()
2375 static int amifb_check_var(struct fb_var_screeninfo *var, in amifb_check_var() argument
2382 err = ami_decode_var(var, &par, info); in amifb_check_var()
2387 ami_encode_var(var, &par); in amifb_check_var()
2401 error = ami_decode_var(&info->var, par, info); in amifb_set_par()
2538 static int amifb_pan_display(struct fb_var_screeninfo *var, in amifb_pan_display() argument
2541 if (var->vmode & FB_VMODE_YWRAP) { in amifb_pan_display()
2542 if (var->yoffset < 0 || in amifb_pan_display()
2543 var->yoffset >= info->var.yres_virtual || var->xoffset) in amifb_pan_display()
2550 if (var->xoffset + info->var.xres > in amifb_pan_display()
2551 upx(16 << maxfmode, info->var.xres_virtual) || in amifb_pan_display()
2552 var->yoffset + info->var.yres > info->var.yres_virtual) in amifb_pan_display()
2555 ami_pan_var(var, info); in amifb_pan_display()
2556 info->var.xoffset = var->xoffset; in amifb_pan_display()
2557 info->var.yoffset = var->yoffset; in amifb_pan_display()
2558 if (var->vmode & FB_VMODE_YWRAP) in amifb_pan_display()
2559 info->var.vmode |= FB_VMODE_YWRAP; in amifb_pan_display()
2561 info->var.vmode &= ~FB_VMODE_YWRAP; in amifb_pan_display()
3183 x2 = x2 < info->var.xres_virtual ? x2 : info->var.xres_virtual; in amifb_fillrect()
3184 y2 = y2 < info->var.yres_virtual ? y2 : info->var.yres_virtual; in amifb_fillrect()
3195 fill_one_line(info->var.bits_per_pixel, in amifb_fillrect()
3201 xor_one_line(info->var.bits_per_pixel, par->next_plane, in amifb_fillrect()
3259 x2 = x2 < info->var.xres_virtual ? x2 : info->var.xres_virtual; in amifb_copyarea()
3260 y2 = y2 < info->var.yres_virtual ? y2 : info->var.yres_virtual; in amifb_copyarea()
3272 if (sx + width > info->var.xres_virtual || in amifb_copyarea()
3273 sy + height > info->var.yres_virtual) in amifb_copyarea()
3292 copy_one_line_rev(info->var.bits_per_pixel, in amifb_copyarea()
3298 copy_one_line(info->var.bits_per_pixel, in amifb_copyarea()
3356 x2 = x2 < info->var.xres_virtual ? x2 : info->var.xres_virtual; in amifb_imageblit()
3357 y2 = y2 < info->var.yres_virtual ? y2 : info->var.yres_virtual; in amifb_imageblit()
3369 expand_one_line(info->var.bits_per_pixel, in amifb_imageblit()
3379 image->width, info->var.bits_per_pixel); in amifb_imageblit()
3393 struct fb_var_cursorinfo var; in amifb_ioctl() member
3408 i = ami_get_var_cursorinfo(&crsr.var, in amifb_ioctl()
3413 return copy_to_user(argp, &crsr.var, in amifb_ioctl()
3414 sizeof(crsr.var)) ? -EFAULT : 0; in amifb_ioctl()
3417 if (copy_from_user(&crsr.var, argp, sizeof(crsr.var))) in amifb_ioctl()
3419 return ami_set_var_cursorinfo(&crsr.var, in amifb_ioctl()
3677 if (!fb_find_mode(&info->var, info, mode_option, ami_modedb, in amifb_probe()
3735 err = fb_alloc_cmap(&info->cmap, 1 << info->var.bits_per_pixel, 0); in amifb_probe()