Lines Matching defs:par

69 static inline void sfb_write(struct pmagbbfb_par *par, unsigned int reg, u32 v)
71 writel(v, par->sfb + reg / 4);
74 static inline u32 sfb_read(struct pmagbbfb_par *par, unsigned int reg)
76 return readl(par->sfb + reg / 4);
79 static inline void dac_write(struct pmagbbfb_par *par, unsigned int reg, u8 v)
81 writeb(v, par->dac + reg / 4);
84 static inline u8 dac_read(struct pmagbbfb_par *par, unsigned int reg)
86 return readb(par->dac + reg / 4);
89 static inline void gp0_write(struct pmagbbfb_par *par, u32 v)
91 writel(v, par->mmio + PMAGB_B_GP0);
102 struct pmagbbfb_par *par = info->par;
112 dac_write(par, BT459_ADDR_LO, regno);
113 dac_write(par, BT459_ADDR_HI, 0x00);
115 dac_write(par, BT459_CMAP, red);
117 dac_write(par, BT459_CMAP, green);
119 dac_write(par, BT459_CMAP, blue);
136 struct pmagbbfb_par *par = info->par;
139 dac_write(par, BT459_ADDR_LO, 0x00);
140 dac_write(par, BT459_ADDR_HI, 0x03);
142 dac_write(par, BT459_DATA, 0x00);
150 struct pmagbbfb_par *par = info->par;
152 info->var.xres = ((sfb_read(par, SFB_REG_VID_HOR) >>
155 info->var.yres = (sfb_read(par, SFB_REG_VID_VER) >>
158 info->var.left_margin = ((sfb_read(par, SFB_REG_VID_HOR) >>
161 info->var.right_margin = ((sfb_read(par, SFB_REG_VID_HOR) >>
164 info->var.upper_margin = (sfb_read(par, SFB_REG_VID_VER) >>
166 info->var.lower_margin = (sfb_read(par, SFB_REG_VID_VER) >>
168 info->var.hsync_len = ((sfb_read(par, SFB_REG_VID_HOR) >>
171 info->var.vsync_len = (sfb_read(par, SFB_REG_VID_VER) >>
186 struct pmagbbfb_par *par = info->par;
192 gp0_write(par, 0); /* select Osc0 */
195 sfb_write(par, SFB_REG_TCCLK_COUNT, 0);
198 if (sfb_read(par, SFB_REG_TCCLK_COUNT) == 0)
202 count0 += sfb_read(par, SFB_REG_VIDCLK_COUNT);
205 gp0_write(par, 1); /* select Osc1 */
208 sfb_write(par, SFB_REG_TCCLK_COUNT, 0);
211 if (sfb_read(par, SFB_REG_TCCLK_COUNT) == 0)
215 count1 += sfb_read(par, SFB_REG_VIDCLK_COUNT);
219 par->osc0 = freq0;
222 par->osc0 = pmagbbfb_freqs[0];
224 freq1 = (par->osc0 * count1 + count0 / 2) / count0;
225 par->osc1 = freq1;
231 par->osc1 = pmagbbfb_freqs[i];
235 if (par->osc0 - par->osc1 <= (par->osc0 + par->osc1 + 256) / 512 ||
236 par->osc1 - par->osc0 <= (par->osc0 + par->osc1 + 256) / 512)
237 par->osc1 = 0;
239 gp0_write(par, par->osc1 != 0); /* reselect OscX */
241 info->var.pixclock = par->osc1 ?
242 (1000000000 + par->osc1 / 2) / par->osc1 :
243 (1000000000 + par->osc0 / 2) / par->osc0;
252 struct pmagbbfb_par *par;
261 par = info->par;
287 par->mmio = ioremap(info->fix.mmio_start, info->fix.mmio_len);
288 if (!par->mmio) {
293 par->sfb = par->mmio + PMAGB_B_SFB;
294 par->dac = par->mmio + PMAGB_B_BT459;
298 par->smem = ioremap(info->fix.smem_start, info->fix.smem_len);
299 if (!par->smem) {
304 vid_base = sfb_read(par, SFB_REG_VID_BASE);
305 info->screen_base = (void __iomem *)par->smem + vid_base * 0x1000;
322 par->osc0 / 1000, par->osc0 % 1000);
324 par->osc1 / 1000, par->osc1 % 1000);
329 freq0, par->osc1 ? freq1 : "disabled", par->osc1 != 0);
335 iounmap(par->smem);
338 iounmap(par->mmio);
355 struct pmagbbfb_par *par = info->par;
360 iounmap(par->smem);
361 iounmap(par->mmio);