Lines Matching refs:var
349 static int sstfb_check_var(struct fb_var_screeninfo *var, in sstfb_check_var() argument
353 int hSyncOff = var->xres + var->right_margin + var->left_margin; in sstfb_check_var()
354 int vSyncOff = var->yres + var->lower_margin + var->upper_margin; in sstfb_check_var()
355 int vBackPorch = var->left_margin, yDim = var->yres; in sstfb_check_var()
356 int vSyncOn = var->vsync_len; in sstfb_check_var()
360 if (sst_calc_pll(PICOS2KHZ(var->pixclock), &freq, &par->pll)) { in sstfb_check_var()
362 PICOS2KHZ(var->pixclock)); in sstfb_check_var()
365 var->pixclock = KHZ2PICOS(freq); in sstfb_check_var()
367 if (var->vmode & FB_VMODE_INTERLACED) in sstfb_check_var()
369 if (var->vmode & FB_VMODE_DOUBLE) { in sstfb_check_var()
376 switch (var->bits_per_pixel) { in sstfb_check_var()
378 var->bits_per_pixel = 16; in sstfb_check_var()
381 printk(KERN_ERR "sstfb: Unsupported bpp %d\n", var->bits_per_pixel); in sstfb_check_var()
386 if (var->xres <= 1 || yDim <= 0 || var->hsync_len <= 1 || in sstfb_check_var()
387 hSyncOff <= 1 || var->left_margin <= 2 || vSyncOn <= 0 || in sstfb_check_var()
394 tiles_in_X = (var->xres + 63 ) / 64 * 2; in sstfb_check_var()
396 if (var->xres > POW2(11) || yDim >= POW2(11)) { in sstfb_check_var()
398 var->xres, var->yres); in sstfb_check_var()
402 if (var->hsync_len > POW2(9) || hSyncOff > POW2(11) || in sstfb_check_var()
403 var->left_margin - 2 >= POW2(9) || vSyncOn >= POW2(13) || in sstfb_check_var()
411 tiles_in_X = (var->xres + 63 ) / 64; in sstfb_check_var()
413 if (var->vmode) { in sstfb_check_var()
415 var->vmode); in sstfb_check_var()
418 if (var->xres > POW2(10) || var->yres >= POW2(10)) { in sstfb_check_var()
420 var->xres, var->yres); in sstfb_check_var()
423 if (var->hsync_len > POW2(8) || hSyncOff - 1 > POW2(10) || in sstfb_check_var()
424 var->left_margin - 2 >= POW2(8) || vSyncOn >= POW2(12) || in sstfb_check_var()
435 * ((var->bits_per_pixel == 16) ? 2 : 4); in sstfb_check_var()
442 var->sync &= (FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT); in sstfb_check_var()
443 var->vmode &= (FB_VMODE_INTERLACED | FB_VMODE_DOUBLE); in sstfb_check_var()
444 var->xoffset = 0; in sstfb_check_var()
445 var->yoffset = 0; in sstfb_check_var()
446 var->height = -1; in sstfb_check_var()
447 var->width = -1; in sstfb_check_var()
454 switch (var->bits_per_pixel) { in sstfb_check_var()
456 var->red.length = 5; in sstfb_check_var()
457 var->green.length = 6; in sstfb_check_var()
458 var->blue.length = 5; in sstfb_check_var()
459 var->transp.length = 0; in sstfb_check_var()
461 var->red.offset = 11; in sstfb_check_var()
462 var->green.offset = 5; in sstfb_check_var()
463 var->blue.offset = 0; in sstfb_check_var()
464 var->transp.offset = 0; in sstfb_check_var()
484 par->hSyncOff = info->var.xres + info->var.right_margin + info->var.left_margin; in sstfb_set_par()
486 par->yDim = info->var.yres; in sstfb_set_par()
487 par->vSyncOn = info->var.vsync_len; in sstfb_set_par()
488 par->vSyncOff = info->var.yres + info->var.lower_margin + info->var.upper_margin; in sstfb_set_par()
489 par->vBackPorch = info->var.upper_margin; in sstfb_set_par()
492 sst_calc_pll(PICOS2KHZ(info->var.pixclock), &freq, &par->pll); in sstfb_set_par()
494 if (info->var.vmode & FB_VMODE_INTERLACED) in sstfb_set_par()
496 if (info->var.vmode & FB_VMODE_DOUBLE) { in sstfb_set_par()
506 par->tiles_in_X = (info->var.xres + 63 ) / 64 * 2; in sstfb_set_par()
509 par->tiles_in_X = (info->var.xres + 63 ) / 64; in sstfb_set_par()
514 info->var.hsync_len, par->hSyncOff, in sstfb_set_par()
518 info->var.left_margin, info->var.upper_margin, in sstfb_set_par()
519 info->var.xres, info->var.yres, PICOS2KHZ(info->var.pixclock)); in sstfb_set_par()
531 sst_write(BACKPORCH, par->vBackPorch << 16 | (info->var.left_margin - 2)); in sstfb_set_par()
532 sst_write(VIDEODIMENSIONS, par->yDim << 16 | (info->var.xres - 1)); in sstfb_set_par()
533 sst_write(HSYNC, (par->hSyncOff - 1) << 16 | (info->var.hsync_len - 1)); in sstfb_set_par()
543 par->dac_sw.set_vidmod(info, info->var.bits_per_pixel); in sstfb_set_par()
586 switch (info->var.bits_per_pixel) { in sstfb_set_par()
597 if (info->var.vmode & FB_VMODE_INTERLACED) in sstfb_set_par()
599 if (info->var.vmode & FB_VMODE_DOUBLE) in sstfb_set_par()
601 if (info->var.sync & FB_SYNC_HOR_HIGH_ACT) in sstfb_set_par()
603 if (info->var.sync & FB_SYNC_VERT_HIGH_ACT) in sstfb_set_par()
616 switch (info->var.bits_per_pixel) { in sstfb_set_par()
645 info->var.xres - 1, par->yDim - 1); in sstfb_set_par()
647 sst_write(CLIP_LEFT_RIGHT, info->var.xres); in sstfb_set_par()
678 red >>= (16 - info->var.red.length); in sstfb_setcolreg()
679 green >>= (16 - info->var.green.length); in sstfb_setcolreg()
680 blue >>= (16 - info->var.blue.length); in sstfb_setcolreg()
681 transp >>= (16 - info->var.transp.length); in sstfb_setcolreg()
682 col = (red << info->var.red.offset) in sstfb_setcolreg()
683 | (green << info->var.green.offset) in sstfb_setcolreg()
684 | (blue << info->var.blue.offset) in sstfb_setcolreg()
685 | (transp << info->var.transp.offset); in sstfb_setcolreg()
805 sst_write(BLTCLIPX, info->var.xres);
806 sst_write(BLTCLIPY, info->var.yres);
1410 fb_find_mode(&info->var, info, mode_option, NULL, 0, NULL, 16); in sstfb_probe()
1412 if (sstfb_check_var(&info->var, info)) { in sstfb_probe()