• Home
  • Raw
  • Download

Lines Matching refs:par

182 	struct lxfb_par *par = info->par;  in lx_graphics_disable()  local
187 write_vp(par, VP_A1T, 0); in lx_graphics_disable()
188 write_vp(par, VP_A2T, 0); in lx_graphics_disable()
189 write_vp(par, VP_A3T, 0); in lx_graphics_disable()
192 val = read_dc(par, DC_GENERAL_CFG) & ~(DC_GENERAL_CFG_VGAE | in lx_graphics_disable()
195 write_dc(par, DC_GENERAL_CFG, val); in lx_graphics_disable()
197 val = read_vp(par, VP_VCFG) & ~VP_VCFG_VID_EN; in lx_graphics_disable()
198 write_vp(par, VP_VCFG, val); in lx_graphics_disable()
200 write_dc(par, DC_IRQ, DC_IRQ_MASK | DC_IRQ_VIP_VSYNC_LOSS_IRQ_MASK | in lx_graphics_disable()
203 val = read_dc(par, DC_GENLK_CTL) & ~DC_GENLK_CTL_GENLK_EN; in lx_graphics_disable()
204 write_dc(par, DC_GENLK_CTL, val); in lx_graphics_disable()
206 val = read_dc(par, DC_CLR_KEY); in lx_graphics_disable()
207 write_dc(par, DC_CLR_KEY, val & ~DC_CLR_KEY_CLR_KEY_EN); in lx_graphics_disable()
210 write_fp(par, FP_PM, read_fp(par, FP_PM) & ~FP_PM_P); in lx_graphics_disable()
212 val = read_vp(par, VP_MISC) | VP_MISC_DACPWRDN; in lx_graphics_disable()
213 write_vp(par, VP_MISC, val); in lx_graphics_disable()
217 val = read_vp(par, VP_DCFG); in lx_graphics_disable()
218 write_vp(par, VP_DCFG, val & ~(VP_DCFG_CRT_EN | VP_DCFG_HSYNC_EN | in lx_graphics_disable()
221 gcfg = read_dc(par, DC_GENERAL_CFG); in lx_graphics_disable()
223 write_dc(par, DC_GENERAL_CFG, gcfg); in lx_graphics_disable()
226 val = read_dc(par, DC_DISPLAY_CFG); in lx_graphics_disable()
228 write_dc(par, DC_DISPLAY_CFG, val); in lx_graphics_disable()
236 write_dc(par, DC_GENERAL_CFG, gcfg); in lx_graphics_disable()
241 val = read_gp(par, GP_BLT_STATUS); in lx_graphics_disable()
247 struct lxfb_par *par = info->par; in lx_graphics_enable() local
251 write_vp(par, VP_VRR, 0); in lx_graphics_enable()
255 config = read_vp(par, VP_DCFG); in lx_graphics_enable()
269 if (par->output & OUTPUT_PANEL) { in lx_graphics_enable()
272 write_fp(par, FP_PT1, 0); in lx_graphics_enable()
281 write_fp(par, FP_PT2, temp); in lx_graphics_enable()
282 write_fp(par, FP_DFC, FP_DFC_BC); in lx_graphics_enable()
290 if (par->output & OUTPUT_CRT) { in lx_graphics_enable()
295 write_vp(par, VP_DCFG, config); in lx_graphics_enable()
299 if (par->output & OUTPUT_CRT) { in lx_graphics_enable()
300 temp = read_vp(par, VP_MISC); in lx_graphics_enable()
302 write_vp(par, VP_MISC, temp); in lx_graphics_enable()
306 if (par->output & OUTPUT_PANEL) in lx_graphics_enable()
307 write_fp(par, FP_PM, read_fp(par, FP_PM) | FP_PM_P); in lx_graphics_enable()
343 struct lxfb_par *par = info->par; in lx_set_mode() local
353 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK); in lx_set_mode()
364 if (par->output & OUTPUT_PANEL) { in lx_set_mode()
367 if (par->output & OUTPUT_CRT) in lx_set_mode()
379 write_dc(par, DC_FB_ST_OFFSET, 0); in lx_set_mode()
380 write_dc(par, DC_CB_ST_OFFSET, 0); in lx_set_mode()
381 write_dc(par, DC_CURS_ST_OFFSET, 0); in lx_set_mode()
386 val = read_dc(par, DC_GENLK_CTL); in lx_set_mode()
392 write_dc(par, DC_GFX_SCALE, (0x4000 << 16) | 0x4000); in lx_set_mode()
393 write_dc(par, DC_IRQ_FILT_CTL, 0); in lx_set_mode()
394 write_dc(par, DC_GENLK_CTL, val); in lx_set_mode()
410 write_dc(par, DC_DV_TOP, max | DC_DV_TOP_DV_TOP_EN); in lx_set_mode()
412 val = read_dc(par, DC_DV_CTL) & ~DC_DV_CTL_DV_LINE_SIZE; in lx_set_mode()
413 write_dc(par, DC_DV_CTL, val | dv); in lx_set_mode()
417 write_dc(par, DC_GFX_PITCH, info->fix.line_length >> 3); in lx_set_mode()
418 write_dc(par, DC_LINE_SIZE, (size + 7) >> 3); in lx_set_mode()
478 write_dc(par, DC_H_ACTIVE_TIMING, (hactive - 1) | ((htotal - 1) << 16)); in lx_set_mode()
479 write_dc(par, DC_H_BLANK_TIMING, in lx_set_mode()
481 write_dc(par, DC_H_SYNC_TIMING, in lx_set_mode()
484 write_dc(par, DC_V_ACTIVE_TIMING, (vactive - 1) | ((vtotal - 1) << 16)); in lx_set_mode()
485 write_dc(par, DC_V_BLANK_TIMING, in lx_set_mode()
487 write_dc(par, DC_V_SYNC_TIMING, in lx_set_mode()
490 write_dc(par, DC_FB_ACTIVE, in lx_set_mode()
497 write_dc(par, DC_DISPLAY_CFG, dcfg); in lx_set_mode()
498 write_dc(par, DC_ARB_CFG, 0); in lx_set_mode()
499 write_dc(par, DC_GENERAL_CFG, gcfg); in lx_set_mode()
502 write_dc(par, DC_UNLOCK, DC_UNLOCK_LOCK); in lx_set_mode()
508 struct lxfb_par *par = info->par; in lx_set_palette_reg() local
517 write_dc(par, DC_PAL_ADDRESS, regno); in lx_set_palette_reg()
518 write_dc(par, DC_PAL_DATA, val); in lx_set_palette_reg()
523 struct lxfb_par *par = info->par; in lx_blank_display() local
548 dcfg = read_vp(par, VP_DCFG); in lx_blank_display()
558 write_vp(par, VP_DCFG, dcfg); in lx_blank_display()
560 misc = read_vp(par, VP_MISC); in lx_blank_display()
567 write_vp(par, VP_MISC, misc); in lx_blank_display()
571 if (par->output & OUTPUT_PANEL) { in lx_blank_display()
572 fp_pm = read_fp(par, FP_PM); in lx_blank_display()
577 write_fp(par, FP_PM, fp_pm); in lx_blank_display()
585 static void lx_save_regs(struct lxfb_par *par) in lx_save_regs() argument
592 i = read_gp(par, GP_BLT_STATUS); in lx_save_regs()
596 rdmsrl(MSR_LX_MSR_PADSEL, par->msr.padsel); in lx_save_regs()
597 rdmsrl(MSR_GLCP_DOTPLL, par->msr.dotpll); in lx_save_regs()
598 rdmsrl(MSR_LX_GLD_MSR_CONFIG, par->msr.dfglcfg); in lx_save_regs()
599 rdmsrl(MSR_LX_SPARE_MSR, par->msr.dcspare); in lx_save_regs()
601 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK); in lx_save_regs()
604 memcpy(par->gp, par->gp_regs, sizeof(par->gp)); in lx_save_regs()
605 memcpy(par->dc, par->dc_regs, sizeof(par->dc)); in lx_save_regs()
606 memcpy(par->vp, par->vp_regs, sizeof(par->vp)); in lx_save_regs()
607 memcpy(par->fp, par->vp_regs + VP_FP_START, sizeof(par->fp)); in lx_save_regs()
610 write_dc(par, DC_PAL_ADDRESS, 0); in lx_save_regs()
611 for (i = 0; i < ARRAY_SIZE(par->dc_pal); i++) in lx_save_regs()
612 par->dc_pal[i] = read_dc(par, DC_PAL_DATA); in lx_save_regs()
615 write_vp(par, VP_PAR, 0); in lx_save_regs()
616 for (i = 0; i < ARRAY_SIZE(par->vp_pal); i++) in lx_save_regs()
617 par->vp_pal[i] = read_vp(par, VP_PDR); in lx_save_regs()
620 filt = par->dc[DC_IRQ_FILT_CTL] | DC_IRQ_FILT_CTL_H_FILT_SEL; in lx_save_regs()
621 for (i = 0; i < ARRAY_SIZE(par->hcoeff); i += 2) { in lx_save_regs()
622 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i); in lx_save_regs()
623 par->hcoeff[i] = read_dc(par, DC_FILT_COEFF1); in lx_save_regs()
624 par->hcoeff[i + 1] = read_dc(par, DC_FILT_COEFF2); in lx_save_regs()
629 for (i = 0; i < ARRAY_SIZE(par->vcoeff); i++) { in lx_save_regs()
630 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i); in lx_save_regs()
631 par->vcoeff[i] = read_dc(par, DC_FILT_COEFF1); in lx_save_regs()
635 memcpy(par->vp_coeff, par->vp_regs + VP_VCR, sizeof(par->vp_coeff)); in lx_save_regs()
638 static void lx_restore_gfx_proc(struct lxfb_par *par) in lx_restore_gfx_proc() argument
643 write_gp(par, GP_RASTER_MODE, par->gp[GP_RASTER_MODE]); in lx_restore_gfx_proc()
645 for (i = 0; i < ARRAY_SIZE(par->gp); i++) { in lx_restore_gfx_proc()
659 write_gp(par, i, par->gp[i]); in lx_restore_gfx_proc()
664 static void lx_restore_display_ctlr(struct lxfb_par *par) in lx_restore_display_ctlr() argument
669 wrmsrl(MSR_LX_SPARE_MSR, par->msr.dcspare); in lx_restore_display_ctlr()
671 for (i = 0; i < ARRAY_SIZE(par->dc); i++) { in lx_restore_display_ctlr()
675 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK); in lx_restore_display_ctlr()
681 write_dc(par, i, 0); in lx_restore_display_ctlr()
686 write_dc(par, i, par->dc[i] | DC_DV_CTL_CLEAR_DV_RAM); in lx_restore_display_ctlr()
704 write_dc(par, i, par->dc[i]); in lx_restore_display_ctlr()
709 write_dc(par, DC_PAL_ADDRESS, 0); in lx_restore_display_ctlr()
710 for (i = 0; i < ARRAY_SIZE(par->dc_pal); i++) in lx_restore_display_ctlr()
711 write_dc(par, DC_PAL_DATA, par->dc_pal[i]); in lx_restore_display_ctlr()
714 filt = par->dc[DC_IRQ_FILT_CTL] | DC_IRQ_FILT_CTL_H_FILT_SEL; in lx_restore_display_ctlr()
715 for (i = 0; i < ARRAY_SIZE(par->hcoeff); i += 2) { in lx_restore_display_ctlr()
716 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i); in lx_restore_display_ctlr()
717 write_dc(par, DC_FILT_COEFF1, par->hcoeff[i]); in lx_restore_display_ctlr()
718 write_dc(par, DC_FILT_COEFF2, par->hcoeff[i + 1]); in lx_restore_display_ctlr()
723 for (i = 0; i < ARRAY_SIZE(par->vcoeff); i++) { in lx_restore_display_ctlr()
724 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i); in lx_restore_display_ctlr()
725 write_dc(par, DC_FILT_COEFF1, par->vcoeff[i]); in lx_restore_display_ctlr()
729 static void lx_restore_video_proc(struct lxfb_par *par) in lx_restore_video_proc() argument
733 wrmsrl(MSR_LX_GLD_MSR_CONFIG, par->msr.dfglcfg); in lx_restore_video_proc()
734 wrmsrl(MSR_LX_MSR_PADSEL, par->msr.padsel); in lx_restore_video_proc()
736 for (i = 0; i < ARRAY_SIZE(par->vp); i++) { in lx_restore_video_proc()
751 write_vp(par, i, par->vp[i]); in lx_restore_video_proc()
756 write_vp(par, VP_PAR, 0); in lx_restore_video_proc()
757 for (i = 0; i < ARRAY_SIZE(par->vp_pal); i++) in lx_restore_video_proc()
758 write_vp(par, VP_PDR, par->vp_pal[i]); in lx_restore_video_proc()
761 memcpy(par->vp_regs + VP_VCR, par->vp_coeff, sizeof(par->vp_coeff)); in lx_restore_video_proc()
764 static void lx_restore_regs(struct lxfb_par *par) in lx_restore_regs() argument
768 lx_set_dotpll((u32) (par->msr.dotpll >> 32)); in lx_restore_regs()
769 lx_restore_gfx_proc(par); in lx_restore_regs()
770 lx_restore_display_ctlr(par); in lx_restore_regs()
771 lx_restore_video_proc(par); in lx_restore_regs()
774 for (i = 0; i < ARRAY_SIZE(par->fp); i++) { in lx_restore_regs()
786 write_fp(par, i, par->fp[i]); in lx_restore_regs()
791 if (par->fp[FP_PM] & FP_PM_P) { in lx_restore_regs()
793 if (!(read_fp(par, FP_PM) & in lx_restore_regs()
795 write_fp(par, FP_PM, par->fp[FP_PM]); in lx_restore_regs()
798 if (!(read_fp(par, FP_PM) & in lx_restore_regs()
800 write_fp(par, FP_PM, par->fp[FP_PM]); in lx_restore_regs()
804 write_vp(par, VP_VCFG, par->vp[VP_VCFG]); in lx_restore_regs()
805 write_vp(par, VP_DCFG, par->vp[VP_DCFG]); in lx_restore_regs()
806 write_dc(par, DC_DISPLAY_CFG, par->dc[DC_DISPLAY_CFG]); in lx_restore_regs()
808 write_dc(par, DC_GENERAL_CFG, par->dc[DC_GENERAL_CFG]); in lx_restore_regs()
811 write_dc(par, DC_UNLOCK, DC_UNLOCK_LOCK); in lx_restore_regs()
816 struct lxfb_par *par = info->par; in lx_powerdown() local
818 if (par->powered_down) in lx_powerdown()
821 lx_save_regs(par); in lx_powerdown()
824 par->powered_down = 1; in lx_powerdown()
830 struct lxfb_par *par = info->par; in lx_powerup() local
832 if (!par->powered_down) in lx_powerup()
835 lx_restore_regs(par); in lx_powerup()
837 par->powered_down = 0; in lx_powerup()