Lines Matching refs:var

37 static int determine_best_pix_fmt(struct fb_var_screeninfo *var)
42 if (var->bits_per_pixel == 8)
48 if (var->bits_per_pixel == 16 && var->red.length <= 5 &&
49 var->green.length <= 6 && var->blue.length <= 5) {
50 if (var->transp.length == 0) {
51 if (var->red.offset >= var->blue.offset)
57 if (var->transp.length == 1 && var->green.length <= 5) {
58 if (var->red.offset >= var->blue.offset)
68 if (var->bits_per_pixel <= 32 && var->red.length <= 8 &&
69 var->green.length <= 8 && var->blue.length <= 8) {
70 if (var->bits_per_pixel == 24 && var->transp.length == 0) {
71 if (var->red.offset >= var->blue.offset)
77 if (var->bits_per_pixel == 32 && var->transp.length == 8) {
78 if (var->red.offset >= var->blue.offset)
83 if (var->red.offset >= var->blue.offset)
93 static void set_pix_fmt(struct fb_var_screeninfo *var, int pix_fmt)
97 var->bits_per_pixel = 16;
98 var->red.offset = 11; var->red.length = 5;
99 var->green.offset = 5; var->green.length = 6;
100 var->blue.offset = 0; var->blue.length = 5;
101 var->transp.offset = 0; var->transp.length = 0;
104 var->bits_per_pixel = 16;
105 var->red.offset = 0; var->red.length = 5;
106 var->green.offset = 5; var->green.length = 6;
107 var->blue.offset = 11; var->blue.length = 5;
108 var->transp.offset = 0; var->transp.length = 0;
111 var->bits_per_pixel = 16;
112 var->red.offset = 10; var->red.length = 5;
113 var->green.offset = 5; var->green.length = 5;
114 var->blue.offset = 0; var->blue.length = 5;
115 var->transp.offset = 15; var->transp.length = 1;
118 var->bits_per_pixel = 16;
119 var->red.offset = 0; var->red.length = 5;
120 var->green.offset = 5; var->green.length = 5;
121 var->blue.offset = 10; var->blue.length = 5;
122 var->transp.offset = 15; var->transp.length = 1;
125 var->bits_per_pixel = 24;
126 var->red.offset = 16; var->red.length = 8;
127 var->green.offset = 8; var->green.length = 8;
128 var->blue.offset = 0; var->blue.length = 8;
129 var->transp.offset = 0; var->transp.length = 0;
132 var->bits_per_pixel = 24;
133 var->red.offset = 0; var->red.length = 8;
134 var->green.offset = 8; var->green.length = 8;
135 var->blue.offset = 16; var->blue.length = 8;
136 var->transp.offset = 0; var->transp.length = 0;
139 var->bits_per_pixel = 32;
140 var->red.offset = 16; var->red.length = 8;
141 var->green.offset = 8; var->green.length = 8;
142 var->blue.offset = 0; var->blue.length = 8;
143 var->transp.offset = 24; var->transp.length = 8;
146 var->bits_per_pixel = 32;
147 var->red.offset = 0; var->red.length = 8;
148 var->green.offset = 8; var->green.length = 8;
149 var->blue.offset = 16; var->blue.length = 8;
150 var->transp.offset = 24; var->transp.length = 8;
153 var->bits_per_pixel = 8;
154 var->red.offset = 0; var->red.length = 8;
155 var->green.offset = 0; var->green.length = 8;
156 var->blue.offset = 0; var->blue.length = 8;
157 var->transp.offset = 0; var->transp.length = 0;
162 static void set_mode(struct pxa168fb_info *fbi, struct fb_var_screeninfo *var,
167 set_pix_fmt(var, pix_fmt);
169 var->xres = mode->xres;
170 var->yres = mode->yres;
171 var->xres_virtual = max(var->xres, var->xres_virtual);
173 var->yres_virtual = info->fix.smem_len /
174 (var->xres_virtual * (var->bits_per_pixel >> 3));
176 var->yres_virtual = max(var->yres, var->yres_virtual);
177 var->grayscale = 0;
178 var->accel_flags = FB_ACCEL_NONE;
179 var->pixclock = mode->pixclock;
180 var->left_margin = mode->left_margin;
181 var->right_margin = mode->right_margin;
182 var->upper_margin = mode->upper_margin;
183 var->lower_margin = mode->lower_margin;
184 var->hsync_len = mode->hsync_len;
185 var->vsync_len = mode->vsync_len;
186 var->sync = mode->sync;
187 var->vmode = FB_VMODE_NONINTERLACED;
188 var->rotate = FB_ROTATE_UR;
191 static int pxa168fb_check_var(struct fb_var_screeninfo *var,
200 pix_fmt = determine_best_pix_fmt(var);
203 set_pix_fmt(var, pix_fmt);
209 if (var->xoffset + var->xres > var->xres_virtual)
211 if (var->yoffset + var->yres > var->yres_virtual)
213 if (var->xres + var->right_margin +
214 var->hsync_len + var->left_margin > 2048)
216 if (var->yres + var->lower_margin +
217 var->vsync_len + var->upper_margin > 2048)
223 if (var->xres_virtual * var->yres_virtual *
224 (var->bits_per_pixel >> 3) > info->fix.smem_len)
350 struct fb_var_screeninfo *var = &info->var;
354 pixel_offset = (yoffset * var->xres_virtual) + xoffset;
356 addr = fbi->fb_start_dma + (pixel_offset * (var->bits_per_pixel >> 3));
376 x |= (info->var.sync & FB_SYNC_COMP_HIGH_ACT) ? 0x00000020 : 0;
378 x |= (info->var.sync & FB_SYNC_VERT_HIGH_ACT) ? 0 : 0x00000008;
379 x |= (info->var.sync & FB_SYNC_HOR_HIGH_ACT) ? 0 : 0x00000004;
388 struct fb_var_screeninfo *v = &info->var;
401 struct fb_var_screeninfo *var = &info->var;
412 info->fix.line_length = var->xres_virtual * var->bits_per_pixel / 8;
413 info->fix.ypanstep = var->yres;
424 writel((var->yres << 16) | var->xres,
428 * convet var to video mode
430 fb_var_to_videomode(&mode, &info->var);
437 set_dma_control1(fbi, info->var.sync);
443 x = (x & ~0xFFFF) | ((var->xres_virtual * var->bits_per_pixel) >> 3);
445 writel((var->yres << 16) | var->xres,
447 writel((var->yres << 16) | var->xres,
456 writel((var->left_margin << 16) | var->right_margin,
458 writel((var->upper_margin << 16) | var->lower_margin,
491 if (info->var.grayscale)
496 val = chan_to_field(red, &info->var.red);
497 val |= chan_to_field(green, &info->var.green);
498 val |= chan_to_field(blue , &info->var.blue);
521 static int pxa168fb_pan_display(struct fb_var_screeninfo *var,
524 set_graphics_start(info, var->xoffset, var->yoffset);
558 struct fb_var_screeninfo *var = &info->var;
569 m = fb_find_best_mode(&info->var, &info->modelist);
571 fb_videomode_to_var(&info->var, m);
574 var->xres_virtual = var->xres;
575 var->yres_virtual = info->fix.smem_len /
576 (var->xres_virtual * (var->bits_per_pixel >> 3));
578 var->xres, var->yres);
581 total_w = var->xres + var->left_margin + var->right_margin +
582 var->hsync_len;
583 total_h = var->yres + var->upper_margin + var->lower_margin +
584 var->vsync_len;
588 var->pixclock = (u32)div_result;
681 set_mode(fbi, &info->var, mi->modes, mi->pix_fmt, 1);
693 ret = pxa168fb_check_var(&info->var, info);