Lines Matching refs:var
45 static inline int h_total(struct fb_var_screeninfo *var)
47 return var->xres + var->left_margin +
48 var->right_margin + var->hsync_len;
51 static inline int v_total(struct fb_var_screeninfo *var)
53 return var->yres + var->upper_margin +
54 var->lower_margin + var->vsync_len;
57 static inline int hsp(struct fb_var_screeninfo *var)
59 return var->xres + var->right_margin - 1;
62 static inline int vsp(struct fb_var_screeninfo *var)
64 return var->yres + var->lower_margin - 1;
67 static inline int d_pitch(struct fb_var_screeninfo *var)
69 return var->xres * var->bits_per_pixel / 8;
90 val = chan_to_field(red, &info->var.red);
91 val |= chan_to_field(green, &info->var.green);
92 val |= chan_to_field(blue, &info->var.blue);
110 static int mb862xxfb_check_var(struct fb_var_screeninfo *var,
118 if (var->hsync_len > 255 || var->vsync_len > 255)
121 if ((var->xres + var->right_margin) >= 4096)
124 if ((var->yres + var->lower_margin) > 4096)
127 if (h_total(var) > 4096 || v_total(var) > 4096)
130 if (var->xres_virtual > 4096 || var->yres_virtual > 4096)
133 if (var->bits_per_pixel <= 8)
134 var->bits_per_pixel = 8;
135 else if (var->bits_per_pixel <= 16)
136 var->bits_per_pixel = 16;
137 else if (var->bits_per_pixel <= 32)
138 var->bits_per_pixel = 32;
144 if (d_pitch(&fbi->var) % GC_L0M_L0W_UNIT) {
147 var->bits_per_pixel = 0;
149 var->bits_per_pixel += 8;
150 r = d_pitch(&fbi->var) % GC_L0M_L0W_UNIT;
151 } while (r && var->bits_per_pixel <= 32);
153 if (d_pitch(&fbi->var) % GC_L0M_L0W_UNIT)
158 tmp = (var->xres * var->bits_per_pixel) / 8;
163 switch (var->bits_per_pixel) {
165 var->red.length = var->bits_per_pixel;
166 var->green.length = var->bits_per_pixel;
167 var->blue.length = var->bits_per_pixel;
168 var->red.offset = 0;
169 var->green.offset = 0;
170 var->blue.offset = 0;
171 var->transp.length = 0;
174 var->red.length = 5;
175 var->green.length = 5;
176 var->blue.length = 5;
177 var->red.offset = 10;
178 var->green.offset = 5;
179 var->blue.offset = 0;
180 var->transp.length = 0;
184 var->transp.length = 8;
185 var->red.length = 8;
186 var->green.length = 8;
187 var->blue.length = 8;
188 var->transp.offset = 24;
189 var->red.offset = 16;
190 var->green.offset = 8;
191 var->blue.offset = 0;
211 mb862xxfb_init_accel(fbi, &mb862xxfb_ops, fbi->var.xres);
222 sc = par->refclk / (1000000 / fbi->var.pixclock) - 1;
230 reg = pack(d_pitch(&fbi->var) / GC_L0M_L0W_UNIT,
231 (fbi->var.yres - 1));
232 if (fbi->var.bits_per_pixel == 16)
236 if (fbi->var.bits_per_pixel == 32) {
241 reg = pack(fbi->var.yres - 1, fbi->var.xres);
255 reg = pack(fbi->var.xres - 1, fbi->var.xres - 1);
257 reg = pack((fbi->var.yres - 1), vsp(&fbi->var));
259 reg = ((fbi->var.vsync_len - 1) << 24) |
260 pack((fbi->var.hsync_len - 1), hsp(&fbi->var));
262 outreg(disp, GC_HTP, pack(h_total(&fbi->var) - 1, 0));
263 outreg(disp, GC_VTR, pack(v_total(&fbi->var) - 1, 0));
273 static int mb862xxfb_pan(struct fb_var_screeninfo *var,
279 reg = pack(var->yoffset, var->xoffset);
282 reg = pack(info->var.yres_virtual, info->var.xres_virtual);
450 fbi->var.pixclock = (sc * 1000000) / par->refclk;
451 fbi->var.xres = (inreg(disp, GC_HDB_HDP) & 0x0fff) + 1;
453 fbi->var.yres = ((reg >> 16) & 0x0fff) + 1;
455 fbi->var.xres_virtual = fbi->var.xres;
456 fbi->var.yres_virtual = fbi->var.yres;
459 fbi->var.bits_per_pixel = 32;
463 fbi->var.bits_per_pixel = 16;
465 fbi->var.bits_per_pixel = 8;
468 fbi->var.hsync_len = ((reg & 0xff0000) >> 16) + 1;
469 fbi->var.vsync_len = ((reg & 0x3f000000) >> 24) + 1;
472 fbi->var.right_margin = hsp - fbi->var.xres;
473 fbi->var.left_margin = ht - hsp - fbi->var.hsync_len;
475 fbi->var.lower_margin = vsp - fbi->var.yres;
476 fbi->var.upper_margin = vt - vsp - fbi->var.vsync_len;
479 fb_videomode_to_var(&fbi->var, (struct fb_videomode *)mode);
480 fbi->var.bits_per_pixel = mode->def_bpp ? mode->def_bpp : 8;
484 ret = fb_find_mode(&fbi->var, fbi, "640x480-16@60",
493 fbi->var.xoffset = 0;
494 fbi->var.yoffset = 0;
495 fbi->var.grayscale = 0;
496 fbi->var.nonstd = 0;
497 fbi->var.height = -1;
498 fbi->var.width = -1;
499 fbi->var.accel_flags = 0;
500 fbi->var.vmode = FB_VMODE_NONINTERLACED;
501 fbi->var.activate = FB_ACTIVATE_NOW;
510 if ((fbi->fbops->fb_check_var)(&fbi->var, fbi))
513 fbi->fix.visual = fbi->var.bits_per_pixel == 8 ?
515 fbi->fix.line_length = (fbi->var.xres_virtual *
516 fbi->var.bits_per_pixel) / 8;
517 fbi->fix.smem_len = fbi->fix.line_length * fbi->var.yres_virtual;
533 stride = par->l1_cfg.sw * (fbi->var.bits_per_pixel / 8);