Lines Matching refs:var

500 static int ivtvfb_set_var(struct ivtv *itv, struct fb_var_screeninfo *var)  in ivtvfb_set_var()  argument
510 if (var->nonstd) /* YUV */ in ivtvfb_set_var()
516 switch (var->bits_per_pixel) { in ivtvfb_set_var()
524 switch (var->green.length) { in ivtvfb_set_var()
549 oi->bits_per_pixel = var->bits_per_pixel; in ivtvfb_set_var()
550 oi->bytes_per_pixel = var->bits_per_pixel / 8; in ivtvfb_set_var()
553 switch (var->vmode & FB_VMODE_MASK) { in ivtvfb_set_var()
568 ivtv_osd.pixel_stride = var->xres_virtual; in ivtvfb_set_var()
569 ivtv_osd.lines = var->yres_virtual; in ivtvfb_set_var()
576 ivtv_window.width = var->xres; in ivtvfb_set_var()
577 ivtv_window.height = var->yres; in ivtvfb_set_var()
580 if (!var->upper_margin) in ivtvfb_set_var()
581 var->upper_margin++; in ivtvfb_set_var()
582 if (!var->left_margin) in ivtvfb_set_var()
583 var->left_margin++; in ivtvfb_set_var()
584 ivtv_window.top = var->upper_margin - 1; in ivtvfb_set_var()
585 ivtv_window.left = var->left_margin - 1; in ivtvfb_set_var()
597 memcpy(&oi->fbvar_cur, var, sizeof(oi->fbvar_cur)); in ivtvfb_set_var()
600 var->xres, var->yres, in ivtvfb_set_var()
601 var->xres_virtual, var->yres_virtual, in ivtvfb_set_var()
602 var->bits_per_pixel); in ivtvfb_set_var()
605 var->left_margin, var->upper_margin); in ivtvfb_set_var()
608 (var->vmode & FB_VMODE_MASK) == FB_VMODE_NONINTERLACED ? "on" : "off"); in ivtvfb_set_var()
609 IVTVFB_DEBUG_INFO("Color space: %s\n", var->nonstd ? "YUV" : "RGB"); in ivtvfb_set_var()
636 static int _ivtvfb_check_var(struct fb_var_screeninfo *var, struct ivtv *itv) in _ivtvfb_check_var() argument
658 if (var->bits_per_pixel == 8 || var->bits_per_pixel == 32) { in _ivtvfb_check_var()
659 var->transp.offset = 24; in _ivtvfb_check_var()
660 var->transp.length = 8; in _ivtvfb_check_var()
661 var->red.offset = 16; in _ivtvfb_check_var()
662 var->red.length = 8; in _ivtvfb_check_var()
663 var->green.offset = 8; in _ivtvfb_check_var()
664 var->green.length = 8; in _ivtvfb_check_var()
665 var->blue.offset = 0; in _ivtvfb_check_var()
666 var->blue.length = 8; in _ivtvfb_check_var()
668 else if (var->bits_per_pixel == 16) { in _ivtvfb_check_var()
670 switch (var->green.length) { in _ivtvfb_check_var()
672 var->red.offset = 8; in _ivtvfb_check_var()
673 var->red.length = 4; in _ivtvfb_check_var()
674 var->green.offset = 4; in _ivtvfb_check_var()
675 var->green.length = 4; in _ivtvfb_check_var()
676 var->blue.offset = 0; in _ivtvfb_check_var()
677 var->blue.length = 4; in _ivtvfb_check_var()
678 var->transp.offset = 12; in _ivtvfb_check_var()
679 var->transp.length = 1; in _ivtvfb_check_var()
682 var->red.offset = 10; in _ivtvfb_check_var()
683 var->red.length = 5; in _ivtvfb_check_var()
684 var->green.offset = 5; in _ivtvfb_check_var()
685 var->green.length = 5; in _ivtvfb_check_var()
686 var->blue.offset = 0; in _ivtvfb_check_var()
687 var->blue.length = 5; in _ivtvfb_check_var()
688 var->transp.offset = 15; in _ivtvfb_check_var()
689 var->transp.length = 1; in _ivtvfb_check_var()
692 var->red.offset = 11; in _ivtvfb_check_var()
693 var->red.length = 5; in _ivtvfb_check_var()
694 var->green.offset = 5; in _ivtvfb_check_var()
695 var->green.length = 6; in _ivtvfb_check_var()
696 var->blue.offset = 0; in _ivtvfb_check_var()
697 var->blue.length = 5; in _ivtvfb_check_var()
698 var->transp.offset = 0; in _ivtvfb_check_var()
699 var->transp.length = 0; in _ivtvfb_check_var()
704 IVTVFB_DEBUG_WARN("Invalid colour mode: %d\n", var->bits_per_pixel); in _ivtvfb_check_var()
709 if (var->xres > IVTV_OSD_MAX_WIDTH || var->yres > osd_height_limit) { in _ivtvfb_check_var()
711 var->xres, var->yres); in _ivtvfb_check_var()
716 if (var->xres_virtual > 4095 / (var->bits_per_pixel / 8) || in _ivtvfb_check_var()
717 var->xres_virtual * var->yres_virtual * (var->bits_per_pixel / 8) > oi->video_buffer_size || in _ivtvfb_check_var()
718 var->xres_virtual < var->xres || in _ivtvfb_check_var()
719 var->yres_virtual < var->yres) { in _ivtvfb_check_var()
721 var->xres_virtual, var->yres_virtual); in _ivtvfb_check_var()
726 if (var->bits_per_pixel == 8) { in _ivtvfb_check_var()
728 if (var->xres & 3) { in _ivtvfb_check_var()
729 IVTVFB_DEBUG_WARN("Invalid resolution for 8bpp: %d\n", var->xres); in _ivtvfb_check_var()
732 if (var->xres_virtual & 3) { in _ivtvfb_check_var()
733 IVTVFB_DEBUG_WARN("Invalid virtual resolution for 8bpp: %d)\n", var->xres_virtual); in _ivtvfb_check_var()
737 else if (var->bits_per_pixel == 16) { in _ivtvfb_check_var()
739 if (var->xres & 1) { in _ivtvfb_check_var()
740 IVTVFB_DEBUG_WARN("Invalid resolution for 16bpp: %d\n", var->xres); in _ivtvfb_check_var()
743 if (var->xres_virtual & 1) { in _ivtvfb_check_var()
744 IVTVFB_DEBUG_WARN("Invalid virtual resolution for 16bpp: %d)\n", var->xres_virtual); in _ivtvfb_check_var()
750 if (var->xoffset >= var->xres_virtual || var->yoffset >= var->yres_virtual) { in _ivtvfb_check_var()
752 var->xoffset, var->xres_virtual, var->yoffset, var->yres_virtual); in _ivtvfb_check_var()
757 if (var->nonstd > 1) { in _ivtvfb_check_var()
758 IVTVFB_DEBUG_WARN("Invalid nonstd % d\n", var->nonstd); in _ivtvfb_check_var()
763 if (((var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED) && in _ivtvfb_check_var()
764 ((var->vmode & FB_VMODE_MASK) != FB_VMODE_INTERLACED)) { in _ivtvfb_check_var()
765 IVTVFB_DEBUG_WARN("Invalid video mode: %d\n", var->vmode & FB_VMODE_MASK); in _ivtvfb_check_var()
773 if (var->left_margin + var->xres > IVTV_OSD_MAX_WIDTH + 1) in _ivtvfb_check_var()
774 var->left_margin = 1 + ((IVTV_OSD_MAX_WIDTH - var->xres) / 2); in _ivtvfb_check_var()
776 if (var->upper_margin + var->yres > (itv->is_out_50hz ? 577 : 481)) in _ivtvfb_check_var()
777 var->upper_margin = 1 + (((itv->is_out_50hz ? 576 : 480) - in _ivtvfb_check_var()
778 var->yres) / 2); in _ivtvfb_check_var()
781 var->right_margin = hlimit - var->left_margin - var->xres; in _ivtvfb_check_var()
782 var->lower_margin = vlimit - var->upper_margin - var->yres; in _ivtvfb_check_var()
785 var->hsync_len = 24; in _ivtvfb_check_var()
786 var->vsync_len = 2; in _ivtvfb_check_var()
791 if ((var->vmode & FB_VMODE_MASK) == FB_VMODE_NONINTERLACED) in _ivtvfb_check_var()
792 var->pixclock = pixclock / 2; in _ivtvfb_check_var()
794 var->pixclock = pixclock; in _ivtvfb_check_var()
796 itv->osd_rect.width = var->xres; in _ivtvfb_check_var()
797 itv->osd_rect.height = var->yres; in _ivtvfb_check_var()
800 var->xres, var->yres, in _ivtvfb_check_var()
801 var->xres_virtual, var->yres_virtual, in _ivtvfb_check_var()
802 var->bits_per_pixel); in _ivtvfb_check_var()
805 var->left_margin, var->upper_margin); in _ivtvfb_check_var()
808 (var->vmode & FB_VMODE_MASK) == FB_VMODE_NONINTERLACED ? "on" : "off"); in _ivtvfb_check_var()
809 IVTVFB_DEBUG_INFO("Color space: %s\n", var->nonstd ? "YUV" : "RGB"); in _ivtvfb_check_var()
813 static int ivtvfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) in ivtvfb_check_var() argument
817 return _ivtvfb_check_var(var, itv); in ivtvfb_check_var()
820 static int ivtvfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) in ivtvfb_pan_display() argument
825 if (var->yoffset + info->var.yres > info->var.yres_virtual || in ivtvfb_pan_display()
826 var->xoffset + info->var.xres > info->var.xres_virtual) in ivtvfb_pan_display()
829 osd_pan_index = var->yoffset * info->fix.line_length in ivtvfb_pan_display()
830 + var->xoffset * info->var.bits_per_pixel / 8; in ivtvfb_pan_display()
834 itv->yuv_info.osd_x_pan = var->xoffset; in ivtvfb_pan_display()
835 itv->yuv_info.osd_y_pan = var->yoffset; in ivtvfb_pan_display()
850 rc = ivtvfb_set_var(itv, &info->var); in ivtvfb_set_par()
851 ivtvfb_pan_display(&info->var, info); in ivtvfb_set_par()
868 if (info->var.bits_per_pixel <= 8) { in ivtvfb_setcolreg()
878 if (info->var.bits_per_pixel == 16) { in ivtvfb_setcolreg()
879 switch (info->var.green.length) { in ivtvfb_setcolreg()
1052 oi->ivtvfb_info.var = oi->ivtvfb_defined; in ivtvfb_init_vidmode()