Lines Matching refs:timing

37 	struct gbe_timing_info timing;
412 static void gbefb_setup_flatpanel(struct gbe_timing_info *timing)
418 (timing->flags & FB_SYNC_HOR_HIGH_ACT) ? 0 : 1);
420 (timing->flags & FB_SYNC_VERT_HIGH_ACT) ? 0 : 1);
428 timing->pll_m = 4;
429 timing->pll_n = 1;
430 timing->pll_p = 0;
457 struct gbe_timing_info *timing)
468 /* Determine valid resolution and timing
504 /* set video timing information */
505 if (timing) {
506 timing->width = var->xres;
507 timing->height = var->yres;
508 timing->pll_m = best_m;
509 timing->pll_n = best_n;
510 timing->pll_p = best_p;
511 timing->cfreq = gbe_pll->clock_rate * 1000 * timing->pll_m /
512 (timing->pll_n << timing->pll_p);
513 timing->htotal = var->left_margin + var->xres +
515 timing->vtotal = var->upper_margin + var->yres +
517 timing->fields_sec = 1000 * timing->cfreq / timing->htotal *
518 1000 / timing->vtotal;
519 timing->hblank_start = var->xres;
520 timing->vblank_start = var->yres;
521 timing->hblank_end = timing->htotal;
522 timing->hsync_start = var->xres + var->right_margin + 1;
523 timing->hsync_end = timing->hsync_start + var->hsync_len;
524 timing->vblank_end = timing->vtotal;
525 timing->vsync_start = var->yres + var->lower_margin + 1;
526 timing->vsync_end = timing->vsync_start + var->vsync_len;
532 static void gbe_set_timing_info(struct gbe_timing_info *timing)
539 SET_GBE_FIELD(DOTCLK, M, val, timing->pll_m - 1);
540 SET_GBE_FIELD(DOTCLK, N, val, timing->pll_n - 1);
541 SET_GBE_FIELD(DOTCLK, P, val, timing->pll_p);
548 SET_GBE_FIELD(VT_XYMAX, MAXX, val, timing->htotal);
549 SET_GBE_FIELD(VT_XYMAX, MAXY, val, timing->vtotal);
552 /* setup video timing signals */
554 SET_GBE_FIELD(VT_VSYNC, VSYNC_ON, val, timing->vsync_start);
555 SET_GBE_FIELD(VT_VSYNC, VSYNC_OFF, val, timing->vsync_end);
558 SET_GBE_FIELD(VT_HSYNC, HSYNC_ON, val, timing->hsync_start);
559 SET_GBE_FIELD(VT_HSYNC, HSYNC_OFF, val, timing->hsync_end);
562 SET_GBE_FIELD(VT_VBLANK, VBLANK_ON, val, timing->vblank_start);
563 SET_GBE_FIELD(VT_VBLANK, VBLANK_OFF, val, timing->vblank_end);
567 timing->hblank_start - 5);
569 timing->hblank_end - 3);
572 /* setup internal timing signals */
574 SET_GBE_FIELD(VT_VCMAP, VCMAP_ON, val, timing->vblank_start);
575 SET_GBE_FIELD(VT_VCMAP, VCMAP_OFF, val, timing->vblank_end);
578 SET_GBE_FIELD(VT_HCMAP, HCMAP_ON, val, timing->hblank_start);
579 SET_GBE_FIELD(VT_HCMAP, HCMAP_OFF, val, timing->hblank_end);
583 temp = timing->vblank_start - timing->vblank_end - 1;
588 gbefb_setup_flatpanel(timing);
591 if (timing->hblank_end >= 20)
593 timing->hblank_end - 20);
596 timing->htotal - (20 - timing->hblank_end));
601 if (timing->hblank_end >= GBE_CRS_MAGIC)
603 timing->hblank_end - GBE_CRS_MAGIC);
606 timing->htotal - (GBE_CRS_MAGIC -
607 timing->hblank_end));
612 SET_GBE_FIELD(VC_START_XY, VC_STARTX, val, timing->hblank_end - 4);
616 temp = timing->hblank_end - GBE_PIXEN_MAGIC_ON;
618 temp += timing->htotal; /* allow blank to wrap around */
622 ((temp + timing->width -
623 GBE_PIXEN_MAGIC_OFF) % timing->htotal));
627 SET_GBE_FIELD(VT_VPIXEN, VPIXEN_ON, val, timing->vblank_end);
628 SET_GBE_FIELD(VT_VPIXEN, VPIXEN_OFF, val, timing->vblank_start);
651 compute_gbe_timing(&info->var, &par->timing);
655 xpmax = par->timing.width;
656 ypmax = par->timing.height;
661 /* set timing info */
662 gbe_set_timing_info(&par->timing);
904 struct gbe_timing_info timing;
924 ret = compute_gbe_timing(var, &timing);
986 var->left_margin = timing.htotal - timing.hsync_end;
987 var->right_margin = timing.hsync_start - timing.width;
988 var->upper_margin = timing.vtotal - timing.vsync_end;
989 var->lower_margin = timing.vsync_start - timing.height;
990 var->hsync_len = timing.hsync_end - timing.hsync_start;
991 var->vsync_len = timing.vsync_end - timing.vsync_start;