• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/video/

Lines Matching defs:var

80 static int pxafb_activate_var(struct fb_var_screeninfo *var,
84 struct fb_var_screeninfo *var, int branch);
146 if (fbi->fb.var.grayscale) {
205 if (fbi->fb.var.grayscale)
218 val = chan_to_field(red, &fbi->fb.var.red);
219 val |= chan_to_field(green, &fbi->fb.var.green);
220 val |= chan_to_field(blue, &fbi->fb.var.blue);
237 static inline int var_to_depth(struct fb_var_screeninfo *var)
239 return var->red.length + var->green.length +
240 var->blue.length + var->transp.length;
244 static int pxafb_var_to_bpp(struct fb_var_screeninfo *var)
248 switch (var->bits_per_pixel) {
255 switch (var_to_depth(var)) {
262 switch (var_to_depth(var)) {
283 static uint32_t pxafb_var_to_lccr3(struct fb_var_screeninfo *var)
285 int bpp = pxafb_var_to_bpp(var);
293 switch (var_to_depth(var)) {
294 case 16: lccr3 |= var->transp.length ? LCCR3_PDFOR_3 : 0; break;
296 case 24: lccr3 |= var->transp.length ? LCCR3_PDFOR_2 : LCCR3_PDFOR_3;
314 * var->bits_per_pixel and given depth
316 static void pxafb_set_pixfmt(struct fb_var_screeninfo *var, int depth)
319 depth = var->bits_per_pixel;
321 if (var->bits_per_pixel < 16) {
323 var->red.offset = 0; var->red.length = 8;
324 var->green.offset = 0; var->green.length = 8;
325 var->blue.offset = 0; var->blue.length = 8;
326 var->transp.offset = 0; var->transp.length = 8;
330 case 16: var->transp.length ?
331 SET_PIXFMT(var, 5, 5, 5, 1) : /* RGBT555 */
332 SET_PIXFMT(var, 5, 6, 5, 0); break; /* RGB565 */
333 case 18: SET_PIXFMT(var, 6, 6, 6, 0); break; /* RGB666 */
334 case 19: SET_PIXFMT(var, 6, 6, 6, 1); break; /* RGBT666 */
335 case 24: var->transp.length ?
336 SET_PIXFMT(var, 8, 8, 7, 1) : /* RGBT887 */
337 SET_PIXFMT(var, 8, 8, 8, 0); break; /* RGB888 */
338 case 25: SET_PIXFMT(var, 8, 8, 8, 1); break; /* RGBT888 */
349 static unsigned int pxafb_display_dma_period(struct fb_var_screeninfo *var)
355 return var->pixclock * 8 * 16 / var->bits_per_pixel;
364 struct fb_var_screeninfo *var)
372 if (modelist[i].xres >= var->xres &&
373 modelist[i].yres >= var->yres &&
376 modelist[i].bpp >= var->bits_per_pixel) {
386 static void pxafb_setmode(struct fb_var_screeninfo *var,
389 var->xres = mode->xres;
390 var->yres = mode->yres;
391 var->bits_per_pixel = mode->bpp;
392 var->pixclock = mode->pixclock;
393 var->hsync_len = mode->hsync_len;
394 var->left_margin = mode->left_margin;
395 var->right_margin = mode->right_margin;
396 var->vsync_len = mode->vsync_len;
397 var->upper_margin = mode->upper_margin;
398 var->lower_margin = mode->lower_margin;
399 var->sync = mode->sync;
400 var->grayscale = mode->cmap_greyscale;
401 var->transp.length = mode->transparency;
404 pxafb_set_pixfmt(var, mode->depth);
408 struct fb_var_screeninfo *var)
412 var->xres = max_t(int, var->xres, MIN_XRES);
413 var->yres = max_t(int, var->yres, MIN_YRES);
416 clamp_val(var->hsync_len, 1, 64);
417 clamp_val(var->vsync_len, 1, 64);
418 clamp_val(var->left_margin, 1, 255);
419 clamp_val(var->right_margin, 1, 255);
420 clamp_val(var->upper_margin, 1, 255);
421 clamp_val(var->lower_margin, 1, 255);
425 line_length = var->xres * var->bits_per_pixel / 8;
427 var->xres = line_length * 8 / var->bits_per_pixel;
430 var->xres_virtual = var->xres;
432 if (var->accel_flags & FB_ACCELF_TEXT)
433 var->yres_virtual = fbi->fb.fix.smem_len / line_length;
435 var->yres_virtual = max(var->yres_virtual, var->yres);
438 if (var->xres > MAX_XRES || var->yres > MAX_YRES)
441 if (var->yres > var->yres_virtual)
449 * Get the video params out of 'var'. If a value doesn't fit, round it up,
456 static int pxafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
465 mode = pxafb_getmode(inf, var);
468 pxafb_setmode(var, mode);
472 err = pxafb_var_to_bpp(var);
476 pxafb_set_pixfmt(var, var_to_depth(var));
478 err = pxafb_adjust_timing(fbi, var);
484 pxafb_display_dma_period(var));
497 struct fb_var_screeninfo *var = &info->var;
499 if (var->bits_per_pixel >= 16)
512 fbi->fb.fix.line_length = var->xres_virtual *
513 var->bits_per_pixel / 8;
514 if (var->bits_per_pixel >= 16)
517 fbi->palette_size = var->bits_per_pixel == 1 ?
518 4 : 1 << var->bits_per_pixel;
522 if (fbi->fb.var.bits_per_pixel >= 16)
525 fb_alloc_cmap(&fbi->fb.cmap, 1<<fbi->fb.var.bits_per_pixel, 0);
527 pxafb_activate_var(var, fbi);
532 static int pxafb_pan_display(struct fb_var_screeninfo *var,
545 memcpy(&newvar, &fbi->fb.var, sizeof(newvar));
546 newvar.xoffset = var->xoffset;
547 newvar.yoffset = var->yoffset;
549 newvar.vmode |= var->vmode & FB_VMODE_YWRAP;
610 int size = ofb->fb.fix.line_length * ofb->fb.var.yres_virtual;
646 int size, div = 1, pfor = NONSTD_TO_PFOR(ofb->fb.var.nonstd);
650 size = ofb->fb.fix.line_length * ofb->fb.var.yres_virtual;
653 size = ofb->fb.var.xres_virtual * ofb->fb.var.yres_virtual;
669 int pfor = NONSTD_TO_PFOR(ofb->fb.var.nonstd);
745 static int overlayfb_check_var(struct fb_var_screeninfo *var,
749 struct fb_var_screeninfo *base_var = &ofb->fbi->fb.var;
752 xpos = NONSTD_TO_XPOS(var->nonstd);
753 ypos = NONSTD_TO_XPOS(var->nonstd);
754 pfor = NONSTD_TO_PFOR(var->nonstd);
756 bpp = pxafb_var_to_bpp(var);
767 bpp = pxafb_var_to_bpp(var);
771 pxafb_set_pixfmt(var, var_to_depth(var));
786 var->xres = roundup(var->xres * bpp, 32) / bpp;
788 if ((xpos + var->xres > base_var->xres) ||
789 (ypos + var->yres > base_var->yres))
792 var->xres_virtual = var->xres;
793 var->yres_virtual = max(var->yres, var->yres_virtual);
799 struct fb_var_screeninfo *var = &ofb->fb.var;
800 int pfor = NONSTD_TO_PFOR(var->nonstd);
804 case OVERLAY_FORMAT_RGB: bpp = var->bits_per_pixel; break;
811 ofb->fb.fix.line_length = var->xres_virtual * bpp / 8;
813 size = PAGE_ALIGN(ofb->fb.fix.line_length * var->yres_virtual);
832 ofb->fb.fix.smem_len = ofb->fb.fix.line_length * var->yres_virtual;
841 struct fb_var_screeninfo *var = &info->var;
848 bpp = pxafb_var_to_bpp(var);
849 xpos = NONSTD_TO_XPOS(var->nonstd);
850 ypos = NONSTD_TO_XPOS(var->nonstd);
851 pfor = NONSTD_TO_PFOR(var->nonstd);
853 ofb->control[0] = OVLxC1_PPL(var->xres) | OVLxC1_LPO(var->yres) |
882 ofb->fb.var.activate = FB_ACTIVATE_NOW;
883 ofb->fb.var.height = -1;
884 ofb->fb.var.width = -1;
885 ofb->fb.var.vmode = FB_VMODE_NONINTERLACED;
1000 if ((pcd == 0) || (fbi->fb.var.hsync_len == 0)) {
1005 htime = clk_get_rate(fbi->clk) / (pcd * fbi->fb.var.hsync_len);
1065 struct fb_var_screeninfo *var,
1069 int nbytes, dma, pal, bpp = var->bits_per_pixel;
1075 nbytes = fix->line_length * var->yres;
1076 offset = fix->line_length * var->yoffset + fbi->video_mem_phys;
1191 struct fb_var_screeninfo *var)
1204 LCCR1_DisWdth(var->xres) |
1209 fbi->reg_lccr2 = LCCR2_DisHght(var->yres);
1211 fbi->reg_lccr3 |= (var->sync & FB_SYNC_HOR_HIGH_ACT) ? LCCR3_HSP : 0;
1212 fbi->reg_lccr3 |= (var->sync & FB_SYNC_VERT_HIGH_ACT) ? LCCR3_VSP : 0;
1289 struct fb_var_screeninfo *var)
1291 unsigned int lines_per_panel, pcd = get_pcd(fbi, var->pixclock);
1294 LCCR1_DisWdth(var->xres) +
1295 LCCR1_HorSnchWdth(var->hsync_len) +
1296 LCCR1_BegLnDel(var->left_margin) +
1297 LCCR1_EndLnDel(var->right_margin);
1303 lines_per_panel = var->yres;
1309 LCCR2_VrtSnchWdth(var->vsync_len) +
1310 LCCR2_BegFrmDel(var->upper_margin) +
1311 LCCR2_EndFrmDel(var->lower_margin);
1314 (var->sync & FB_SYNC_HOR_HIGH_ACT ?
1316 (var->sync & FB_SYNC_VERT_HIGH_ACT ?
1327 * Configures LCD Controller based on entries in var parameter.
1330 static int pxafb_activate_var(struct fb_var_screeninfo *var,
1340 setup_smart_timing(fbi, var);
1343 setup_parallel_timing(fbi, var);
1345 setup_base_frame(fbi, var, 0);
1351 fbi->reg_lccr3 |= pxafb_var_to_lccr3(var);
1392 fbi->lcd_power(on, &fbi->fb.var);
1616 pcd = get_pcd(fbi, fbi->fb.var.pixclock);
1630 struct fb_var_screeninfo *var = &fbi->fb.var;
1637 "new clock %d kHz\n", pxafb_display_dma_period(var),
1738 pxafb_setmode(&fbi->fb.var, &inf->modes[0]);
1785 fbi->fb.var.nonstd = 0;
1786 fbi->fb.var.activate = FB_ACTIVATE_NOW;
1787 fbi->fb.var.height = -1;
1788 fbi->fb.var.width = -1;
1789 fbi->fb.var.accel_flags = FB_ACCELF_TEXT;
1790 fbi->fb.var.vmode = FB_VMODE_NONINTERLACED;
2163 ret = pxafb_check_var(&fbi->fb.var, &fbi->fb);