Lines Matching refs:var

515 static int ivtvfb_set_var(struct ivtv *itv, struct fb_var_screeninfo *var)  in ivtvfb_set_var()  argument
525 if (var->nonstd) /* YUV */ in ivtvfb_set_var()
531 switch (var->bits_per_pixel) { in ivtvfb_set_var()
539 switch (var->green.length) { in ivtvfb_set_var()
564 oi->bits_per_pixel = var->bits_per_pixel; in ivtvfb_set_var()
565 oi->bytes_per_pixel = var->bits_per_pixel / 8; in ivtvfb_set_var()
568 switch (var->vmode & FB_VMODE_MASK) { in ivtvfb_set_var()
583 ivtv_osd.pixel_stride = var->xres_virtual; in ivtvfb_set_var()
584 ivtv_osd.lines = var->yres_virtual; in ivtvfb_set_var()
591 ivtv_window.width = var->xres; in ivtvfb_set_var()
592 ivtv_window.height = var->yres; in ivtvfb_set_var()
595 if (!var->upper_margin) in ivtvfb_set_var()
596 var->upper_margin++; in ivtvfb_set_var()
597 if (!var->left_margin) in ivtvfb_set_var()
598 var->left_margin++; in ivtvfb_set_var()
599 ivtv_window.top = var->upper_margin - 1; in ivtvfb_set_var()
600 ivtv_window.left = var->left_margin - 1; in ivtvfb_set_var()
612 memcpy(&oi->fbvar_cur, var, sizeof(oi->fbvar_cur)); in ivtvfb_set_var()
615 var->xres, var->yres, in ivtvfb_set_var()
616 var->xres_virtual, var->yres_virtual, in ivtvfb_set_var()
617 var->bits_per_pixel); in ivtvfb_set_var()
620 var->left_margin, var->upper_margin); in ivtvfb_set_var()
623 (var->vmode & FB_VMODE_MASK) == FB_VMODE_NONINTERLACED ? "on" : "off"); in ivtvfb_set_var()
624 IVTVFB_DEBUG_INFO("Color space: %s\n", var->nonstd ? "YUV" : "RGB"); in ivtvfb_set_var()
651 static int _ivtvfb_check_var(struct fb_var_screeninfo *var, struct ivtv *itv) in _ivtvfb_check_var() argument
673 if (var->bits_per_pixel == 8 || var->bits_per_pixel == 32) { in _ivtvfb_check_var()
674 var->transp.offset = 24; in _ivtvfb_check_var()
675 var->transp.length = 8; in _ivtvfb_check_var()
676 var->red.offset = 16; in _ivtvfb_check_var()
677 var->red.length = 8; in _ivtvfb_check_var()
678 var->green.offset = 8; in _ivtvfb_check_var()
679 var->green.length = 8; in _ivtvfb_check_var()
680 var->blue.offset = 0; in _ivtvfb_check_var()
681 var->blue.length = 8; in _ivtvfb_check_var()
683 else if (var->bits_per_pixel == 16) { in _ivtvfb_check_var()
685 switch (var->green.length) { in _ivtvfb_check_var()
687 var->red.offset = 8; in _ivtvfb_check_var()
688 var->red.length = 4; in _ivtvfb_check_var()
689 var->green.offset = 4; in _ivtvfb_check_var()
690 var->green.length = 4; in _ivtvfb_check_var()
691 var->blue.offset = 0; in _ivtvfb_check_var()
692 var->blue.length = 4; in _ivtvfb_check_var()
693 var->transp.offset = 12; in _ivtvfb_check_var()
694 var->transp.length = 1; in _ivtvfb_check_var()
697 var->red.offset = 10; in _ivtvfb_check_var()
698 var->red.length = 5; in _ivtvfb_check_var()
699 var->green.offset = 5; in _ivtvfb_check_var()
700 var->green.length = 5; in _ivtvfb_check_var()
701 var->blue.offset = 0; in _ivtvfb_check_var()
702 var->blue.length = 5; in _ivtvfb_check_var()
703 var->transp.offset = 15; in _ivtvfb_check_var()
704 var->transp.length = 1; in _ivtvfb_check_var()
707 var->red.offset = 11; in _ivtvfb_check_var()
708 var->red.length = 5; in _ivtvfb_check_var()
709 var->green.offset = 5; in _ivtvfb_check_var()
710 var->green.length = 6; in _ivtvfb_check_var()
711 var->blue.offset = 0; in _ivtvfb_check_var()
712 var->blue.length = 5; in _ivtvfb_check_var()
713 var->transp.offset = 0; in _ivtvfb_check_var()
714 var->transp.length = 0; in _ivtvfb_check_var()
719 IVTVFB_DEBUG_WARN("Invalid colour mode: %d\n", var->bits_per_pixel); in _ivtvfb_check_var()
724 if (var->xres > IVTV_OSD_MAX_WIDTH || var->yres > osd_height_limit) { in _ivtvfb_check_var()
726 var->xres, var->yres); in _ivtvfb_check_var()
731 if (var->xres_virtual > 4095 / (var->bits_per_pixel / 8) || in _ivtvfb_check_var()
732 var->xres_virtual * var->yres_virtual * (var->bits_per_pixel / 8) > oi->video_buffer_size || in _ivtvfb_check_var()
733 var->xres_virtual < var->xres || in _ivtvfb_check_var()
734 var->yres_virtual < var->yres) { in _ivtvfb_check_var()
736 var->xres_virtual, var->yres_virtual); in _ivtvfb_check_var()
741 if (var->bits_per_pixel == 8) { in _ivtvfb_check_var()
743 if (var->xres & 3) { in _ivtvfb_check_var()
744 IVTVFB_DEBUG_WARN("Invalid resolution for 8bpp: %d\n", var->xres); in _ivtvfb_check_var()
747 if (var->xres_virtual & 3) { in _ivtvfb_check_var()
748 IVTVFB_DEBUG_WARN("Invalid virtual resolution for 8bpp: %d)\n", var->xres_virtual); in _ivtvfb_check_var()
752 else if (var->bits_per_pixel == 16) { in _ivtvfb_check_var()
754 if (var->xres & 1) { in _ivtvfb_check_var()
755 IVTVFB_DEBUG_WARN("Invalid resolution for 16bpp: %d\n", var->xres); in _ivtvfb_check_var()
758 if (var->xres_virtual & 1) { in _ivtvfb_check_var()
759 IVTVFB_DEBUG_WARN("Invalid virtual resolution for 16bpp: %d)\n", var->xres_virtual); in _ivtvfb_check_var()
765 if (var->xoffset >= var->xres_virtual || var->yoffset >= var->yres_virtual) { in _ivtvfb_check_var()
767 var->xoffset, var->xres_virtual, var->yoffset, var->yres_virtual); in _ivtvfb_check_var()
772 if (var->nonstd > 1) { in _ivtvfb_check_var()
773 IVTVFB_DEBUG_WARN("Invalid nonstd % d\n", var->nonstd); in _ivtvfb_check_var()
778 if (((var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED) && in _ivtvfb_check_var()
779 ((var->vmode & FB_VMODE_MASK) != FB_VMODE_INTERLACED)) { in _ivtvfb_check_var()
780 IVTVFB_DEBUG_WARN("Invalid video mode: %d\n", var->vmode & FB_VMODE_MASK); in _ivtvfb_check_var()
788 if (var->left_margin + var->xres > IVTV_OSD_MAX_WIDTH + 1) in _ivtvfb_check_var()
789 var->left_margin = 1 + ((IVTV_OSD_MAX_WIDTH - var->xres) / 2); in _ivtvfb_check_var()
791 if (var->upper_margin + var->yres > (itv->is_out_50hz ? 577 : 481)) in _ivtvfb_check_var()
792 var->upper_margin = 1 + (((itv->is_out_50hz ? 576 : 480) - in _ivtvfb_check_var()
793 var->yres) / 2); in _ivtvfb_check_var()
796 var->right_margin = hlimit - var->left_margin - var->xres; in _ivtvfb_check_var()
797 var->lower_margin = vlimit - var->upper_margin - var->yres; in _ivtvfb_check_var()
800 var->hsync_len = 24; in _ivtvfb_check_var()
801 var->vsync_len = 2; in _ivtvfb_check_var()
806 if ((var->vmode & FB_VMODE_MASK) == FB_VMODE_NONINTERLACED) in _ivtvfb_check_var()
807 var->pixclock = pixclock / 2; in _ivtvfb_check_var()
809 var->pixclock = pixclock; in _ivtvfb_check_var()
811 itv->osd_rect.width = var->xres; in _ivtvfb_check_var()
812 itv->osd_rect.height = var->yres; in _ivtvfb_check_var()
815 var->xres, var->yres, in _ivtvfb_check_var()
816 var->xres_virtual, var->yres_virtual, in _ivtvfb_check_var()
817 var->bits_per_pixel); in _ivtvfb_check_var()
820 var->left_margin, var->upper_margin); in _ivtvfb_check_var()
823 (var->vmode & FB_VMODE_MASK) == FB_VMODE_NONINTERLACED ? "on" : "off"); in _ivtvfb_check_var()
824 IVTVFB_DEBUG_INFO("Color space: %s\n", var->nonstd ? "YUV" : "RGB"); in _ivtvfb_check_var()
828 static int ivtvfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) in ivtvfb_check_var() argument
832 return _ivtvfb_check_var(var, itv); in ivtvfb_check_var()
835 static int ivtvfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) in ivtvfb_pan_display() argument
840 if (var->yoffset + info->var.yres > info->var.yres_virtual || in ivtvfb_pan_display()
841 var->xoffset + info->var.xres > info->var.xres_virtual) in ivtvfb_pan_display()
844 osd_pan_index = var->yoffset * info->fix.line_length in ivtvfb_pan_display()
845 + var->xoffset * info->var.bits_per_pixel / 8; in ivtvfb_pan_display()
849 itv->yuv_info.osd_x_pan = var->xoffset; in ivtvfb_pan_display()
850 itv->yuv_info.osd_y_pan = var->yoffset; in ivtvfb_pan_display()
865 rc = ivtvfb_set_var(itv, &info->var); in ivtvfb_set_par()
866 ivtvfb_pan_display(&info->var, info); in ivtvfb_set_par()
883 if (info->var.bits_per_pixel <= 8) { in ivtvfb_setcolreg()
893 if (info->var.bits_per_pixel == 16) { in ivtvfb_setcolreg()
894 switch (info->var.green.length) { in ivtvfb_setcolreg()
1069 oi->ivtvfb_info.var = oi->ivtvfb_defined; in ivtvfb_init_vidmode()