Lines Matching full:var
50 * Complain if VAR is out of range.
267 static int imxfb_activate_var(struct fb_var_screeninfo *var,
318 if (info->var.grayscale) in imxfb_setcolreg()
331 val = chan_to_field(red, &info->var.red); in imxfb_setcolreg()
332 val |= chan_to_field(green, &info->var.green); in imxfb_setcolreg()
333 val |= chan_to_field(blue, &info->var.blue); in imxfb_setcolreg()
370 static int imxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) in imxfb_check_var() argument
379 if (var->xres < MIN_XRES) in imxfb_check_var()
380 var->xres = MIN_XRES; in imxfb_check_var()
381 if (var->yres < MIN_YRES) in imxfb_check_var()
382 var->yres = MIN_YRES; in imxfb_check_var()
388 var->xres = imxfb_mode->mode.xres; in imxfb_check_var()
389 var->yres = imxfb_mode->mode.yres; in imxfb_check_var()
390 var->bits_per_pixel = imxfb_mode->bpp; in imxfb_check_var()
391 var->pixclock = imxfb_mode->mode.pixclock; in imxfb_check_var()
392 var->hsync_len = imxfb_mode->mode.hsync_len; in imxfb_check_var()
393 var->left_margin = imxfb_mode->mode.left_margin; in imxfb_check_var()
394 var->right_margin = imxfb_mode->mode.right_margin; in imxfb_check_var()
395 var->vsync_len = imxfb_mode->mode.vsync_len; in imxfb_check_var()
396 var->upper_margin = imxfb_mode->mode.upper_margin; in imxfb_check_var()
397 var->lower_margin = imxfb_mode->mode.lower_margin; in imxfb_check_var()
398 var->sync = imxfb_mode->mode.sync; in imxfb_check_var()
399 var->xres_virtual = max(var->xres_virtual, var->xres); in imxfb_check_var()
400 var->yres_virtual = max(var->yres_virtual, var->yres); in imxfb_check_var()
402 pr_debug("var->bits_per_pixel=%d\n", var->bits_per_pixel); in imxfb_check_var()
406 tmp = var->pixclock * (unsigned long long)lcd_clk; in imxfb_check_var()
421 switch (var->bits_per_pixel) { in imxfb_check_var()
465 var->red = rgb->red; in imxfb_check_var()
466 var->green = rgb->green; in imxfb_check_var()
467 var->blue = rgb->blue; in imxfb_check_var()
468 var->transp = rgb->transp; in imxfb_check_var()
471 var->red.length, var->green.length, var->blue.length, in imxfb_check_var()
472 var->transp.length); in imxfb_check_var()
475 var->red.offset, var->green.offset, var->blue.offset, in imxfb_check_var()
476 var->transp.offset); in imxfb_check_var()
488 struct fb_var_screeninfo *var = &info->var; in imxfb_set_par() local
490 if (var->bits_per_pixel == 16 || var->bits_per_pixel == 32) in imxfb_set_par()
503 info->fix.line_length = var->xres_virtual * var->bits_per_pixel / 8; in imxfb_set_par()
504 fbi->palette_size = var->bits_per_pixel == 8 ? 256 : 16; in imxfb_set_par()
506 imxfb_activate_var(var, info); in imxfb_set_par()
606 * Configures LCD Controller based on entries in var parameter. Settings are
609 static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *info) in imxfb_activate_var() argument
615 pr_debug("var: xres=%d hslen=%d lm=%d rm=%d\n", in imxfb_activate_var()
616 var->xres, var->hsync_len, in imxfb_activate_var()
617 var->left_margin, var->right_margin); in imxfb_activate_var()
618 pr_debug("var: yres=%d vslen=%d um=%d bm=%d\n", in imxfb_activate_var()
619 var->yres, var->vsync_len, in imxfb_activate_var()
620 var->upper_margin, var->lower_margin); in imxfb_activate_var()
630 if (var->xres < 16 || var->xres > 1024) in imxfb_activate_var()
632 info->fix.id, var->xres); in imxfb_activate_var()
633 if (var->hsync_len < 1 || var->hsync_len > 64) in imxfb_activate_var()
635 info->fix.id, var->hsync_len); in imxfb_activate_var()
636 if (var->left_margin < left_margin_low || var->left_margin > 255) in imxfb_activate_var()
638 info->fix.id, var->left_margin); in imxfb_activate_var()
639 if (var->right_margin < 1 || var->right_margin > 255) in imxfb_activate_var()
641 info->fix.id, var->right_margin); in imxfb_activate_var()
642 if (var->yres < 1 || var->yres > ymax_mask) in imxfb_activate_var()
644 info->fix.id, var->yres); in imxfb_activate_var()
645 if (var->vsync_len > 100) in imxfb_activate_var()
647 info->fix.id, var->vsync_len); in imxfb_activate_var()
648 if (var->upper_margin > 63) in imxfb_activate_var()
650 info->fix.id, var->upper_margin); in imxfb_activate_var()
651 if (var->lower_margin > 255) in imxfb_activate_var()
653 info->fix.id, var->lower_margin); in imxfb_activate_var()
658 var->xres * var->bits_per_pixel / 8 / 4), in imxfb_activate_var()
661 writel(FIELD_PREP(HCR_H_WIDTH_MASK, var->hsync_len - 1) | in imxfb_activate_var()
662 FIELD_PREP(HCR_H_WAIT_1_MASK, var->right_margin - 1) | in imxfb_activate_var()
664 var->left_margin - left_margin_low), in imxfb_activate_var()
667 writel(FIELD_PREP(VCR_V_WIDTH_MASK, var->vsync_len) | in imxfb_activate_var()
668 FIELD_PREP(VCR_V_WAIT_1_MASK, var->lower_margin) | in imxfb_activate_var()
669 FIELD_PREP(VCR_V_WAIT_2_MASK, var->upper_margin), in imxfb_activate_var()
672 writel(FIELD_PREP(SIZE_XMAX_MASK, var->xres >> 4) | in imxfb_activate_var()
673 (var->yres & ymax_mask), in imxfb_activate_var()
716 info->var.nonstd = 0; in imxfb_init_fbinfo()
717 info->var.activate = FB_ACTIVATE_NOW; in imxfb_init_fbinfo()
718 info->var.height = -1; in imxfb_init_fbinfo()
719 info->var.width = -1; in imxfb_init_fbinfo()
720 info->var.accel_flags = 0; in imxfb_init_fbinfo()
721 info->var.vmode = FB_VMODE_NONINTERLACED; in imxfb_init_fbinfo()
727 info->var.grayscale = of_property_read_bool(np, in imxfb_init_fbinfo()
1006 imxfb_check_var(&info->var, info); in imxfb_probe()