Lines Matching refs:par
14 static void gx_save_regs(struct gxfb_par *par)
20 i = read_gp(par, GP_BLT_STATUS);
24 rdmsrl(MSR_GX_MSR_PADSEL, par->msr.padsel);
25 rdmsrl(MSR_GLCP_DOTPLL, par->msr.dotpll);
27 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK);
30 memcpy(par->gp, par->gp_regs, sizeof(par->gp));
31 memcpy(par->dc, par->dc_regs, sizeof(par->dc));
32 memcpy(par->vp, par->vid_regs, sizeof(par->vp));
33 memcpy(par->fp, par->vid_regs + VP_FP_START, sizeof(par->fp));
36 write_dc(par, DC_PAL_ADDRESS, 0);
37 for (i = 0; i < ARRAY_SIZE(par->pal); i++)
38 par->pal[i] = read_dc(par, DC_PAL_DATA);
64 static void gx_restore_gfx_proc(struct gxfb_par *par)
68 for (i = 0; i < ARRAY_SIZE(par->gp); i++) {
77 write_gp(par, i, par->gp[i]);
82 static void gx_restore_display_ctlr(struct gxfb_par *par)
86 for (i = 0; i < ARRAY_SIZE(par->dc); i++) {
90 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK);
95 write_dc(par, i, par->dc[i] & ~(DC_GENERAL_CFG_VIDE |
103 write_dc(par, i, par->dc[i] & ~(DC_DISPLAY_CFG_VDEN |
122 write_dc(par, i, par->dc[i]);
127 write_dc(par, DC_PAL_ADDRESS, 0);
128 for (i = 0; i < ARRAY_SIZE(par->pal); i++)
129 write_dc(par, DC_PAL_DATA, par->pal[i]);
132 static void gx_restore_video_proc(struct gxfb_par *par)
136 wrmsrl(MSR_GX_MSR_PADSEL, par->msr.padsel);
138 for (i = 0; i < ARRAY_SIZE(par->vp); i++) {
142 write_vp(par, i, par->vp[i] & ~VP_VCFG_VID_EN);
147 write_vp(par, i, par->vp[i] &
164 write_vp(par, i, par->vp[i]);
169 static void gx_restore_regs(struct gxfb_par *par)
173 gx_set_dotpll((uint32_t) (par->msr.dotpll >> 32));
174 gx_restore_gfx_proc(par);
175 gx_restore_display_ctlr(par);
176 gx_restore_video_proc(par);
179 for (i = 0; i < ARRAY_SIZE(par->fp); i++) {
181 write_fp(par, i, par->fp[i]);
185 static void gx_disable_graphics(struct gxfb_par *par)
188 write_vp(par, VP_VCFG, par->vp[VP_VCFG] & ~VP_VCFG_VID_EN);
189 write_vp(par, VP_DCFG, par->vp[VP_DCFG] & ~(VP_DCFG_DAC_BL_EN |
193 write_fp(par, FP_PM, par->fp[FP_PM] & ~FP_PM_P);
197 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK);
198 write_dc(par, DC_GENERAL_CFG, par->dc[DC_GENERAL_CFG] &
201 write_dc(par, DC_DISPLAY_CFG, par->dc[DC_DISPLAY_CFG] &
204 write_dc(par, DC_UNLOCK, DC_UNLOCK_LOCK);
207 static void gx_enable_graphics(struct gxfb_par *par)
211 fp = read_fp(par, FP_PM);
212 if (par->fp[FP_PM] & FP_PM_P) {
215 write_fp(par, FP_PM, par->fp[FP_PM]);
219 write_fp(par, FP_PM, par->fp[FP_PM]);
223 write_vp(par, VP_VCFG, par->vp[VP_VCFG]);
224 write_vp(par, VP_DCFG, par->vp[VP_DCFG]);
225 write_dc(par, DC_DISPLAY_CFG, par->dc[DC_DISPLAY_CFG]);
227 write_dc(par, DC_GENERAL_CFG, par->dc[DC_GENERAL_CFG]);
230 write_dc(par, DC_UNLOCK, DC_UNLOCK_LOCK);
235 struct gxfb_par *par = info->par;
237 if (par->powered_down)
240 gx_save_regs(par);
241 gx_disable_graphics(par);
243 par->powered_down = 1;
249 struct gxfb_par *par = info->par;
251 if (!par->powered_down)
254 gx_restore_regs(par);
255 gx_enable_graphics(par);
257 par->powered_down = 0;