Lines Matching refs:var
56 struct fb_var_screeninfo *var = &fbi->var;
59 const unsigned bytespp = var->bits_per_pixel >> 3;
66 if (var->bits_per_pixel == 16) {
75 } else if (var->bits_per_pixel == 24) {
82 } else if (var->bits_per_pixel == 32) {
91 struct fb_var_screeninfo *var = &fbi->var;
92 const short w = var->xres_virtual;
93 const short h = var->yres_virtual;
125 if (var->bits_per_pixel == 16) {
272 static bool cmp_var_to_colormode(struct fb_var_screeninfo *var,
275 if (var->bits_per_pixel == 0 ||
276 var->red.length == 0 ||
277 var->blue.length == 0 ||
278 var->green.length == 0)
281 return var->bits_per_pixel == color->bits_per_pixel &&
282 cmp_component(&var->red, &color->red) &&
283 cmp_component(&var->green, &color->green) &&
284 cmp_component(&var->blue, &color->blue) &&
285 cmp_component(&var->transp, &color->transp);
288 static void assign_colormode_to_var(struct fb_var_screeninfo *var,
291 var->bits_per_pixel = color->bits_per_pixel;
292 var->nonstd = color->nonstd;
293 var->red = color->red;
294 var->green = color->green;
295 var->blue = color->blue;
296 var->transp = color->transp;
299 static int fb_mode_to_dss_mode(struct fb_var_screeninfo *var,
306 if (var->nonstd) {
309 if (var->nonstd == m->nonstd) {
310 assign_colormode_to_var(var, m);
322 if (cmp_var_to_colormode(var, m)) {
323 assign_colormode_to_var(var, m);
331 switch (var->bits_per_pixel) {
363 assign_colormode_to_var(var, m);
372 static int check_fb_res_bounds(struct fb_var_screeninfo *var)
380 if (var->xres_virtual == 0)
381 var->xres_virtual = var->xres;
383 if (var->yres_virtual == 0)
384 var->yres_virtual = var->yres;
386 if (var->xres_virtual < xres_min || var->yres_virtual < yres_min)
389 if (var->xres < xres_min)
390 var->xres = xres_min;
391 if (var->yres < yres_min)
392 var->yres = yres_min;
393 if (var->xres > xres_max)
394 var->xres = xres_max;
395 if (var->yres > yres_max)
396 var->yres = yres_max;
398 if (var->xres > var->xres_virtual)
399 var->xres = var->xres_virtual;
400 if (var->yres > var->yres_virtual)
401 var->yres = var->yres_virtual;
407 struct fb_var_screeninfo *var)
410 var->yres_virtual = max_frame_size /
411 (var->xres_virtual * var->bits_per_pixel >> 3);
413 if (var->yres_virtual < OMAPFB_PLANE_YRES_MIN)
414 var->yres_virtual = OMAPFB_PLANE_YRES_MIN;
416 if (var->yres > var->yres_virtual)
417 var->yres = var->yres_virtual;
421 struct fb_var_screeninfo *var)
424 var->xres_virtual = max_frame_size / var->yres_virtual /
425 (var->bits_per_pixel >> 3);
427 if (var->xres_virtual < OMAPFB_PLANE_XRES_MIN)
428 var->xres_virtual = OMAPFB_PLANE_XRES_MIN;
430 if (var->xres > var->xres_virtual)
431 var->xres = var->xres_virtual;
435 const struct fb_var_screeninfo *var)
437 unsigned long min_phys_size = omap_vrfb_min_phys_size(var->xres_virtual,
438 var->yres_virtual, var->bits_per_pixel >> 3);
444 struct fb_var_screeninfo *var)
447 int bytespp = var->bits_per_pixel >> 3;
448 unsigned long line_size = var->xres_virtual * bytespp;
452 if (check_vrfb_fb_size(max_frame_size, var))
454 max_frame_size, var->xres_virtual, bytespp) *
455 line_size, var);
457 if (check_vrfb_fb_size(max_frame_size, var)) {
467 if (line_size * var->yres_virtual > max_frame_size)
468 shrink_height(max_frame_size, var);
470 if (line_size * var->yres_virtual > max_frame_size) {
471 shrink_width(max_frame_size, var);
472 line_size = var->xres_virtual * bytespp;
475 if (line_size * var->yres_virtual > max_frame_size) {
495 struct fb_var_screeninfo *var = &fbi->var;
508 r = fb_mode_to_dss_mode(var, &mode);
512 bytespp = var->bits_per_pixel >> 3;
527 else if (vrfb->xres != var->xres_virtual ||
528 vrfb->yres != var->yres_virtual)
544 var->xres_virtual,
545 var->yres_virtual,
549 r = omap_vrfb_map_angle(vrfb, var->yres_virtual, 0);
558 switch (var->nonstd) {
562 (OMAP_VRFB_LINE_LEN * var->bits_per_pixel) >> 2;
566 (OMAP_VRFB_LINE_LEN * var->bits_per_pixel) >> 3;
570 fix->smem_len = var->yres_virtual * fix->line_length;
576 struct fb_var_screeninfo *var)
583 assign_colormode_to_var(var, mode);
593 struct fb_var_screeninfo *var = &fbi->var;
604 switch (var->nonstd) {
608 (OMAP_VRFB_LINE_LEN * var->bits_per_pixel) >> 2;
612 (OMAP_VRFB_LINE_LEN * var->bits_per_pixel) >> 3;
616 fix->smem_len = var->yres_virtual * fix->line_length;
619 (var->xres_virtual * var->bits_per_pixel) >> 3;
627 if (var->nonstd)
630 switch (var->bits_per_pixel) {
653 /* check new var and possibly modify it to be ok */
654 int check_fb_var(struct fb_info *fbi, struct fb_var_screeninfo *var)
666 r = fb_mode_to_dss_mode(var, &mode);
668 DBG("cannot convert var to omap dss mode\n");
679 if (var->rotate > 3)
682 if (check_fb_res_bounds(var))
686 if (ofbi->region->size != 0 && check_fb_size(ofbi, var))
689 if (var->xres + var->xoffset > var->xres_virtual)
690 var->xoffset = var->xres_virtual - var->xres;
691 if (var->yres + var->yoffset > var->yres_virtual)
692 var->yoffset = var->yres_virtual - var->yres;
695 var->xres, var->yres,
696 var->xres_virtual, var->yres_virtual);
701 var->width = DIV_ROUND_CLOSEST(w, 1000);
702 var->height = DIV_ROUND_CLOSEST(h, 1000);
704 var->height = -1;
705 var->width = -1;
708 var->grayscale = 0;
715 var->pixclock = timings.pixelclock != 0 ?
718 var->left_margin = timings.hbp;
719 var->right_margin = timings.hfp;
720 var->upper_margin = timings.vbp;
721 var->lower_margin = timings.vfp;
722 var->hsync_len = timings.hsw;
723 var->vsync_len = timings.vsw;
724 var->sync |= timings.hsync_level == OMAPDSS_SIG_ACTIVE_HIGH ?
726 var->sync |= timings.vsync_level == OMAPDSS_SIG_ACTIVE_HIGH ?
728 var->vmode = timings.interlace ?
731 var->pixclock = 0;
732 var->left_margin = 0;
733 var->right_margin = 0;
734 var->upper_margin = 0;
735 var->lower_margin = 0;
736 var->hsync_len = 0;
737 var->vsync_len = 0;
738 var->sync = 0;
739 var->vmode = FB_VMODE_NONINTERLACED;
760 static unsigned calc_rotation_offset_dma(const struct fb_var_screeninfo *var,
765 offset = var->yoffset * fix->line_length +
766 var->xoffset * (var->bits_per_pixel >> 3);
771 static unsigned calc_rotation_offset_vrfb(const struct fb_var_screeninfo *var,
777 offset = (var->yres_virtual - var->yres) *
780 offset = (var->yres_virtual - var->yres) *
781 (var->bits_per_pixel >> 3);
786 offset += var->yoffset * fix->line_length +
787 var->xoffset * (var->bits_per_pixel >> 3);
789 offset -= var->yoffset * fix->line_length +
790 var->xoffset * (var->bits_per_pixel >> 3);
792 offset -= var->xoffset * fix->line_length +
793 var->yoffset * (var->bits_per_pixel >> 3);
795 offset += var->xoffset * fix->line_length +
796 var->yoffset * (var->bits_per_pixel >> 3);
802 const struct fb_var_screeninfo *var,
815 offset = calc_rotation_offset_vrfb(var, fix, rotation);
817 offset = calc_rotation_offset_dma(var, fix, rotation);
823 var->xoffset, var->yoffset, offset);
836 struct fb_var_screeninfo *var = &fbi->var;
844 int rotation = var->rotate;
861 xres = var->yres;
862 yres = var->xres;
864 xres = var->xres;
865 yres = var->yres;
869 omapfb_calc_addr(ofbi, var, fix, rotation, &data_start_p);
871 r = fb_mode_to_dss_mode(var, &mode);
877 switch (var->nonstd) {
882 / (var->bits_per_pixel >> 2);
887 screen_width = fix->line_length / (var->bits_per_pixel >> 3);
925 /* apply var to the overlay */
930 struct fb_var_screeninfo *var = &fbi->var;
957 int rotation = (var->rotate + ofbi->rotation[i]) % 4;
960 outw = var->yres;
961 outh = var->xres;
963 outw = var->xres;
964 outh = var->yres;
996 /* checks var and eventually tweaks it to something supported,
998 static int omapfb_check_var(struct fb_var_screeninfo *var, struct fb_info *fbi)
1007 r = check_fb_var(fbi, var);
1014 /* set the video mode according to info->var */
1038 static int omapfb_pan_display(struct fb_var_screeninfo *var,
1047 if (var->xoffset == fbi->var.xoffset &&
1048 var->yoffset == fbi->var.yoffset)
1051 new_var = fbi->var;
1052 new_var.xoffset = var->xoffset;
1053 new_var.yoffset = var->yoffset;
1055 fbi->var = new_var;
1136 struct fb_var_screeninfo *var = &fbi->var;
1165 pal = ((red >> (16 - var->red.length)) <<
1166 var->red.offset) |
1167 ((green >> (16 - var->green.length)) <<
1168 var->green.offset) |
1169 (blue >> (16 - var->blue.length));
1332 memset(&fbi->var, 0, sizeof(fbi->var));
1571 .width = fbi->var.xres_virtual,
1572 .height = fbi->var.yres_virtual,
1634 memcpy(&new_var, &fbi->var, sizeof(new_var));
1638 memcpy(&fbi->var, &new_var, sizeof(fbi->var));
1726 /* initialize fb_info, var, fix to something sane based on the display */
1729 struct fb_var_screeninfo *var = &fbi->var;
1742 var->nonstd = 0;
1743 var->bits_per_pixel = 0;
1745 var->rotate = def_rotate;
1749 int rotation = (var->rotate + ofbi->rotation[0]) % 4;
1755 var->xres = h;
1756 var->yres = w;
1758 var->xres = w;
1759 var->yres = h;
1762 var->xres_virtual = var->xres;
1763 var->yres_virtual = var->yres;
1765 if (!var->bits_per_pixel) {
1768 var->bits_per_pixel = 16;
1771 var->bits_per_pixel = 32;
1781 var->xres = 320;
1782 var->yres = 240;
1783 var->xres_virtual = var->xres;
1784 var->yres_virtual = var->yres;
1785 if (!var->bits_per_pixel)
1786 var->bits_per_pixel = 16;
1789 r = check_fb_var(fbi, var);
2001 struct fb_var_screeninfo *var;
2018 * that we need fb_info and var, so we create dummy ones */
2022 var = NULL;
2031 var = kzalloc(sizeof(*var), GFP_KERNEL);
2032 if (var == NULL) {
2045 r = fb_find_mode(var, fbi, mode_str, NULL, 0, NULL, 24);
2059 timings->pixelclock = PICOS2KHZ(var->pixclock) * 1000;
2060 timings->hbp = var->left_margin;
2061 timings->hfp = var->right_margin;
2062 timings->vbp = var->upper_margin;
2063 timings->vfp = var->lower_margin;
2064 timings->hsw = var->hsync_len;
2065 timings->vsw = var->vsync_len;
2066 timings->x_res = var->xres;
2067 timings->y_res = var->yres;
2068 timings->hsync_level = var->sync & FB_SYNC_HOR_HIGH_ACT ?
2071 timings->vsync_level = var->sync & FB_SYNC_VERT_HIGH_ACT ?
2074 timings->interlace = var->vmode & FB_VMODE_INTERLACED;
2076 switch (var->bits_per_pixel) {
2091 kfree(var);