Lines Matching refs:par

55 static void calc_hsync(struct w100fb_par *par);
56 static void w100_init_graphic_engine(struct w100fb_par *par);
86 struct w100fb_par *par=info->par; in flip_show() local
88 return sprintf(buf, "%d\n",par->flip); in flip_show()
95 struct w100fb_par *par=info->par; in flip_store() local
100 par->flip = 1; in flip_store()
102 par->flip = 0; in flip_store()
105 w100_set_dispregs(par); in flip_store()
108 calc_hsync(par); in flip_store()
145 struct w100fb_par *par=info->par; in fastpllclk_show() local
147 return sprintf(buf, "%d\n",par->fastpll_mode); in fastpllclk_show()
153 struct w100fb_par *par=info->par; in fastpllclk_store() local
156 par->fastpll_mode=1; in fastpllclk_store()
159 par->fastpll_mode=0; in fastpllclk_store()
163 w100_init_clocks(par); in fastpllclk_store()
164 calc_hsync(par); in fastpllclk_store()
178 struct w100fb_par *par=info->par; in w100fb_get_hsynclen() local
181 if (par->blanked) in w100fb_get_hsynclen()
184 return par->hsync_len; in w100fb_get_hsynclen()
188 static void w100fb_clear_screen(struct w100fb_par *par) in w100fb_clear_screen() argument
190 …memset_io(remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), 0, (par->xres * par->yres * BITS_PER_PIX… in w100fb_clear_screen()
230 struct w100fb_par *par = info->par; in w100fb_blank() local
231 struct w100_tg_info *tg = par->mach->tg; in w100fb_blank()
239 if (par->blanked == 0) { in w100fb_blank()
241 tg->suspend(par); in w100fb_blank()
242 par->blanked = 1; in w100fb_blank()
247 if (par->blanked != 0) { in w100fb_blank()
249 tg->resume(par); in w100fb_blank()
250 par->blanked = 0; in w100fb_blank()
289 static void w100_init_graphic_engine(struct w100fb_par *par) in w100_init_graphic_engine() argument
298 writel(par->xres, remapped_regs + mmDST_PITCH); in w100_init_graphic_engine()
300 writel(par->xres, remapped_regs + mmSRC_PITCH); in w100_init_graphic_engine()
304 writel((par->yres << 16) | par->xres, remapped_regs + mmSC_BOTTOM_RIGHT); in w100_init_graphic_engine()
407 static void w100fb_activate_var(struct w100fb_par *par) in w100fb_activate_var() argument
409 struct w100_tg_info *tg = par->mach->tg; in w100fb_activate_var()
411 w100_pwm_setup(par); in w100fb_activate_var()
412 w100_setup_memory(par); in w100fb_activate_var()
413 w100_init_clocks(par); in w100fb_activate_var()
414 w100fb_clear_screen(par); in w100fb_activate_var()
418 w100_init_lcd(par); in w100fb_activate_var()
419 w100_set_dispregs(par); in w100fb_activate_var()
421 w100_init_graphic_engine(par); in w100fb_activate_var()
423 calc_hsync(par); in w100fb_activate_var()
425 if (!par->blanked && tg && tg->change) in w100fb_activate_var()
426 tg->change(par); in w100fb_activate_var()
434 static struct w100_mode *w100fb_get_mode(struct w100fb_par *par, unsigned int *x, unsigned int *y, … in w100fb_get_mode() argument
437 struct w100_mode *modelist = par->mach->modelist; in w100fb_get_mode()
441 for (i = 0 ; i < par->mach->num_modes ; i++) { in w100fb_get_mode()
471 struct w100fb_par *par=info->par; in w100fb_check_var() local
473 if(!w100fb_get_mode(par, &var->xres, &var->yres, 1)) in w100fb_check_var()
476 if (par->mach->mem && ((var->xres*var->yres*BITS_PER_PIXEL/8) > (par->mach->mem->size+1))) in w100fb_check_var()
479 if (!par->mach->mem && ((var->xres*var->yres*BITS_PER_PIXEL/8) > (MEM_INT_SIZE+1))) in w100fb_check_var()
516 struct w100fb_par *par=info->par; in w100fb_set_par() local
518 if (par->xres != info->var.xres || par->yres != info->var.yres) { in w100fb_set_par()
519 par->xres = info->var.xres; in w100fb_set_par()
520 par->yres = info->var.yres; in w100fb_set_par()
521 par->mode = w100fb_get_mode(par, &par->xres, &par->yres, 0); in w100fb_set_par()
526 info->fix.line_length = par->xres * BITS_PER_PIXEL / 8; in w100fb_set_par()
529 if ((par->xres*par->yres*BITS_PER_PIXEL/8) > (MEM_INT_SIZE+1)) { in w100fb_set_par()
530 par->extmem_active = 1; in w100fb_set_par()
531 info->fix.smem_len = par->mach->mem->size+1; in w100fb_set_par()
533 par->extmem_active = 0; in w100fb_set_par()
538 w100fb_activate_var(par); in w100fb_set_par()
560 static void w100fb_save_vidmem(struct w100fb_par *par) in w100fb_save_vidmem() argument
564 if (par->extmem_active) { in w100fb_save_vidmem()
565 memsize=par->mach->mem->size; in w100fb_save_vidmem()
566 par->saved_extmem = vmalloc(memsize); in w100fb_save_vidmem()
567 if (par->saved_extmem) in w100fb_save_vidmem()
568 memcpy_fromio(par->saved_extmem, remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), memsize); in w100fb_save_vidmem()
571 par->saved_intmem = vmalloc(memsize); in w100fb_save_vidmem()
572 if (par->saved_intmem && par->extmem_active) in w100fb_save_vidmem()
573 memcpy_fromio(par->saved_intmem, remapped_fbuf + (W100_FB_BASE-MEM_INT_BASE_VALUE), memsize); in w100fb_save_vidmem()
574 else if (par->saved_intmem) in w100fb_save_vidmem()
575 memcpy_fromio(par->saved_intmem, remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), memsize); in w100fb_save_vidmem()
578 static void w100fb_restore_vidmem(struct w100fb_par *par) in w100fb_restore_vidmem() argument
582 if (par->extmem_active && par->saved_extmem) { in w100fb_restore_vidmem()
583 memsize=par->mach->mem->size; in w100fb_restore_vidmem()
584 memcpy_toio(remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), par->saved_extmem, memsize); in w100fb_restore_vidmem()
585 vfree(par->saved_extmem); in w100fb_restore_vidmem()
587 if (par->saved_intmem) { in w100fb_restore_vidmem()
589 if (par->extmem_active) in w100fb_restore_vidmem()
590 memcpy_toio(remapped_fbuf + (W100_FB_BASE-MEM_INT_BASE_VALUE), par->saved_intmem, memsize); in w100fb_restore_vidmem()
592 memcpy_toio(remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), par->saved_intmem, memsize); in w100fb_restore_vidmem()
593 vfree(par->saved_intmem); in w100fb_restore_vidmem()
600 struct w100fb_par *par=info->par; in w100fb_suspend() local
601 struct w100_tg_info *tg = par->mach->tg; in w100fb_suspend()
603 w100fb_save_vidmem(par); in w100fb_suspend()
605 tg->suspend(par); in w100fb_suspend()
607 par->blanked = 1; in w100fb_suspend()
615 struct w100fb_par *par=info->par; in w100fb_resume() local
616 struct w100_tg_info *tg = par->mach->tg; in w100fb_resume()
618 w100_hw_init(par); in w100fb_resume()
619 w100fb_activate_var(par); in w100fb_resume()
620 w100fb_restore_vidmem(par); in w100fb_resume()
622 tg->resume(par); in w100fb_resume()
623 par->blanked = 0; in w100fb_resume()
638 struct w100fb_par *par; in w100fb_probe() local
680 par = info->par; in w100fb_probe()
684 par->chip_id = chip_id; in w100fb_probe()
685 par->mach = inf; in w100fb_probe()
686 par->fastpll_mode = 0; in w100fb_probe()
687 par->blanked = 0; in w100fb_probe()
689 par->pll_table=w100_get_xtal_table(inf->xtal_freq); in w100fb_probe()
690 if (!par->pll_table) { in w100fb_probe()
722 par->mode = &inf->modelist[0]; in w100fb_probe()
724 info->var.xres = par->mode->yres; in w100fb_probe()
725 info->var.yres = par->mode->xres; in w100fb_probe()
728 info->var.xres = par->mode->xres; in w100fb_probe()
729 info->var.yres = par->mode->yres; in w100fb_probe()
733 par->flip = 1; in w100fb_probe()
735 par->flip = 0; in w100fb_probe()
746 w100_hw_init(par); in w100fb_probe()
788 struct w100fb_par *par=info->par; in w100fb_remove() local
797 vfree(par->saved_intmem); in w100fb_remove()
798 vfree(par->saved_extmem); in w100fb_remove()
871 static void w100_hw_init(struct w100fb_par *par) in w100_hw_init() argument
883 struct w100_gpio_regs *gpio = par->mach->gpio; in w100_hw_init()
1190 static int w100_set_pll_freq(struct w100fb_par *par, unsigned int freq) in w100_set_pll_freq() argument
1192 struct w100_pll_info *pll = par->pll_table; in w100_set_pll_freq()
1205 static void w100_pwm_setup(struct w100fb_par *par) in w100_pwm_setup() argument
1211 w100_pwr_state.clk_pin_cntl.f.xtalin_dbl_en = par->mach->xtal_dbl ? 1 : 0; in w100_pwm_setup()
1285 static void w100_init_clocks(struct w100fb_par *par) in w100_init_clocks() argument
1287 struct w100_mode *mode = par->mode; in w100_init_clocks()
1290 …w100_set_pll_freq(par, (par->fastpll_mode && mode->fast_pll_freq) ? mode->fast_pll_freq : mode->pl… in w100_init_clocks()
1298 static void w100_init_lcd(struct w100fb_par *par) in w100_init_lcd() argument
1301 struct w100_mode *mode = par->mode; in w100_init_lcd()
1302 struct w100_gen_regs *regs = par->mach->regs; in w100_init_lcd()
1365 static void w100_setup_memory(struct w100fb_par *par) in w100_setup_memory() argument
1369 struct w100_mem_info *mem = par->mach->mem; in w100_setup_memory()
1370 struct w100_bm_mem_info *bm_mem = par->mach->bm_mem; in w100_setup_memory()
1372 if (!par->extmem_active) { in w100_setup_memory()
1393 extmem_location.f.mc_ext_mem_top = (W100_FB_BASE+par->mach->mem->size) >> 8; in w100_setup_memory()
1418 static void w100_set_dispregs(struct w100fb_par *par) in w100_set_dispregs() argument
1424 if (par->xres == par->mode->xres) { in w100_set_dispregs()
1425 if (par->flip) { in w100_set_dispregs()
1427 offset=(par->xres * par->yres) - 1; in w100_set_dispregs()
1429 divider = par->mode->pixclk_divider; in w100_set_dispregs()
1431 if (par->flip) { in w100_set_dispregs()
1433 offset=par->xres - 1; in w100_set_dispregs()
1436 offset=par->xres * (par->yres - 1); in w100_set_dispregs()
1438 divider = par->mode->pixclk_divider_rotated; in w100_set_dispregs()
1442 switch (par->chip_id) { in w100_set_dispregs()
1455 switch(par->xres) { in w100_set_dispregs()
1490 graphic_ctrl.f_w32xx.total_req_graphic=par->mode->xres >> 1; /* panel xres, not mode */ in w100_set_dispregs()
1496 w100_pwr_state.pclk_cntl.f.pclk_src_sel = par->mode->pixclk_src; in w100_set_dispregs()
1502 writel((par->xres*BITS_PER_PIXEL/8), remapped_regs + mmGRAPHIC_PITCH); in w100_set_dispregs()
1510 static void calc_hsync(struct w100fb_par *par) in calc_hsync() argument
1513 struct w100_mode *mode = par->mode; in calc_hsync()
1517 hsync=par->mach->xtal_freq; in calc_hsync()
1519 hsync=((par->fastpll_mode && mode->fast_pll_freq) ? mode->fast_pll_freq : mode->pll_freq)*100000; in calc_hsync()
1525 par->hsync_len = hsync / (crtc_ss.f.ss_end-crtc_ss.f.ss_start); in calc_hsync()
1527 par->hsync_len = 0; in calc_hsync()