Lines Matching defs:par

51 static void calc_hsync(struct w100fb_par *par);
52 static void w100_init_graphic_engine(struct w100fb_par *par);
82 struct w100fb_par *par=info->par;
84 return sprintf(buf, "%d\n",par->flip);
91 struct w100fb_par *par=info->par;
96 par->flip = 1;
98 par->flip = 0;
101 w100_set_dispregs(par);
104 calc_hsync(par);
141 struct w100fb_par *par=info->par;
143 return sprintf(buf, "%d\n",par->fastpll_mode);
149 struct w100fb_par *par=info->par;
152 par->fastpll_mode=1;
155 par->fastpll_mode=0;
159 w100_init_clocks(par);
160 calc_hsync(par);
183 struct w100fb_par *par=info->par;
186 if (par->blanked)
189 return par->hsync_len;
193 static void w100fb_clear_screen(struct w100fb_par *par)
195 memset_io(remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), 0, (par->xres * par->yres * BITS_PER_PIXEL/8));
235 struct w100fb_par *par = info->par;
236 struct w100_tg_info *tg = par->mach->tg;
244 if (par->blanked == 0) {
246 tg->suspend(par);
247 par->blanked = 1;
252 if (par->blanked != 0) {
254 tg->resume(par);
255 par->blanked = 0;
294 static void w100_init_graphic_engine(struct w100fb_par *par)
303 writel(par->xres, remapped_regs + mmDST_PITCH);
305 writel(par->xres, remapped_regs + mmSRC_PITCH);
309 writel((par->yres << 16) | par->xres, remapped_regs + mmSC_BOTTOM_RIGHT);
412 static void w100fb_activate_var(struct w100fb_par *par)
414 struct w100_tg_info *tg = par->mach->tg;
416 w100_pwm_setup(par);
417 w100_setup_memory(par);
418 w100_init_clocks(par);
419 w100fb_clear_screen(par);
423 w100_init_lcd(par);
424 w100_set_dispregs(par);
426 w100_init_graphic_engine(par);
428 calc_hsync(par);
430 if (!par->blanked && tg && tg->change)
431 tg->change(par);
439 static struct w100_mode *w100fb_get_mode(struct w100fb_par *par, unsigned int *x, unsigned int *y, int saveval)
442 struct w100_mode *modelist = par->mach->modelist;
446 for (i = 0 ; i < par->mach->num_modes ; i++) {
476 struct w100fb_par *par=info->par;
478 if(!w100fb_get_mode(par, &var->xres, &var->yres, 1))
481 if (par->mach->mem && ((var->xres*var->yres*BITS_PER_PIXEL/8) > (par->mach->mem->size+1)))
484 if (!par->mach->mem && ((var->xres*var->yres*BITS_PER_PIXEL/8) > (MEM_INT_SIZE+1)))
521 struct w100fb_par *par=info->par;
523 if (par->xres != info->var.xres || par->yres != info->var.yres) {
524 par->xres = info->var.xres;
525 par->yres = info->var.yres;
526 par->mode = w100fb_get_mode(par, &par->xres, &par->yres, 0);
531 info->fix.line_length = par->xres * BITS_PER_PIXEL / 8;
534 if ((par->xres*par->yres*BITS_PER_PIXEL/8) > (MEM_INT_SIZE+1)) {
535 par->extmem_active = 1;
536 info->fix.smem_len = par->mach->mem->size+1;
538 par->extmem_active = 0;
543 w100fb_activate_var(par);
565 static void w100fb_save_vidmem(struct w100fb_par *par)
569 if (par->extmem_active) {
570 memsize=par->mach->mem->size;
571 par->saved_extmem = vmalloc(memsize);
572 if (par->saved_extmem)
573 memcpy_fromio(par->saved_extmem, remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), memsize);
576 par->saved_intmem = vmalloc(memsize);
577 if (par->saved_intmem && par->extmem_active)
578 memcpy_fromio(par->saved_intmem, remapped_fbuf + (W100_FB_BASE-MEM_INT_BASE_VALUE), memsize);
579 else if (par->saved_intmem)
580 memcpy_fromio(par->saved_intmem, remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), memsize);
583 static void w100fb_restore_vidmem(struct w100fb_par *par)
587 if (par->extmem_active && par->saved_extmem) {
588 memsize=par->mach->mem->size;
589 memcpy_toio(remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), par->saved_extmem, memsize);
590 vfree(par->saved_extmem);
591 par->saved_extmem = NULL;
593 if (par->saved_intmem) {
595 if (par->extmem_active)
596 memcpy_toio(remapped_fbuf + (W100_FB_BASE-MEM_INT_BASE_VALUE), par->saved_intmem, memsize);
598 memcpy_toio(remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), par->saved_intmem, memsize);
599 vfree(par->saved_intmem);
600 par->saved_intmem = NULL;
607 struct w100fb_par *par=info->par;
608 struct w100_tg_info *tg = par->mach->tg;
610 w100fb_save_vidmem(par);
612 tg->suspend(par);
614 par->blanked = 1;
622 struct w100fb_par *par=info->par;
623 struct w100_tg_info *tg = par->mach->tg;
625 w100_hw_init(par);
626 w100fb_activate_var(par);
627 w100fb_restore_vidmem(par);
629 tg->resume(par);
630 par->blanked = 0;
645 struct w100fb_par *par;
687 par = info->par;
691 par->chip_id = chip_id;
692 par->mach = inf;
693 par->fastpll_mode = 0;
694 par->blanked = 0;
696 par->pll_table=w100_get_xtal_table(inf->xtal_freq);
697 if (!par->pll_table) {
730 par->mode = &inf->modelist[0];
732 info->var.xres = par->mode->yres;
733 info->var.yres = par->mode->xres;
736 info->var.xres = par->mode->xres;
737 info->var.yres = par->mode->yres;
741 par->flip = 1;
743 par->flip = 0;
754 w100_hw_init(par);
794 struct w100fb_par *par=info->par;
798 vfree(par->saved_intmem);
799 vfree(par->saved_extmem);
876 static void w100_hw_init(struct w100fb_par *par)
888 struct w100_gpio_regs *gpio = par->mach->gpio;
1196 static int w100_set_pll_freq(struct w100fb_par *par, unsigned int freq)
1198 struct w100_pll_info *pll = par->pll_table;
1211 static void w100_pwm_setup(struct w100fb_par *par)
1217 w100_pwr_state.clk_pin_cntl.f.xtalin_dbl_en = par->mach->xtal_dbl ? 1 : 0;
1291 static void w100_init_clocks(struct w100fb_par *par)
1293 struct w100_mode *mode = par->mode;
1296 w100_set_pll_freq(par, (par->fastpll_mode && mode->fast_pll_freq) ? mode->fast_pll_freq : mode->pll_freq);
1304 static void w100_init_lcd(struct w100fb_par *par)
1307 struct w100_mode *mode = par->mode;
1308 struct w100_gen_regs *regs = par->mach->regs;
1371 static void w100_setup_memory(struct w100fb_par *par)
1375 struct w100_mem_info *mem = par->mach->mem;
1376 struct w100_bm_mem_info *bm_mem = par->mach->bm_mem;
1378 if (!par->extmem_active) {
1399 extmem_location.f.mc_ext_mem_top = (W100_FB_BASE+par->mach->mem->size) >> 8;
1424 static void w100_set_dispregs(struct w100fb_par *par)
1430 if (par->xres == par->mode->xres) {
1431 if (par->flip) {
1433 offset=(par->xres * par->yres) - 1;
1435 divider = par->mode->pixclk_divider;
1437 if (par->flip) {
1439 offset=par->xres - 1;
1442 offset=par->xres * (par->yres - 1);
1444 divider = par->mode->pixclk_divider_rotated;
1448 switch (par->chip_id) {
1461 switch(par->xres) {
1496 graphic_ctrl.f_w32xx.total_req_graphic=par->mode->xres >> 1; /* panel xres, not mode */
1502 w100_pwr_state.pclk_cntl.f.pclk_src_sel = par->mode->pixclk_src;
1508 writel((par->xres*BITS_PER_PIXEL/8), remapped_regs + mmGRAPHIC_PITCH);
1516 static void calc_hsync(struct w100fb_par *par)
1519 struct w100_mode *mode = par->mode;
1523 hsync=par->mach->xtal_freq;
1525 hsync=((par->fastpll_mode && mode->fast_pll_freq) ? mode->fast_pll_freq : mode->pll_freq)*100000;
1531 par->hsync_len = hsync / (crtc_ss.f.ss_end-crtc_ss.f.ss_start);
1533 par->hsync_len = 0;