Lines Matching refs:par

69 static inline void sfb_write(struct pmagbbfb_par *par, unsigned int reg, u32 v)  in sfb_write()  argument
71 writel(v, par->sfb + reg / 4); in sfb_write()
74 static inline u32 sfb_read(struct pmagbbfb_par *par, unsigned int reg) in sfb_read() argument
76 return readl(par->sfb + reg / 4); in sfb_read()
79 static inline void dac_write(struct pmagbbfb_par *par, unsigned int reg, u8 v) in dac_write() argument
81 writeb(v, par->dac + reg / 4); in dac_write()
84 static inline u8 dac_read(struct pmagbbfb_par *par, unsigned int reg) in dac_read() argument
86 return readb(par->dac + reg / 4); in dac_read()
89 static inline void gp0_write(struct pmagbbfb_par *par, u32 v) in gp0_write() argument
91 writel(v, par->mmio + PMAGB_B_GP0); in gp0_write()
102 struct pmagbbfb_par *par = info->par; in pmagbbfb_setcolreg() local
112 dac_write(par, BT459_ADDR_LO, regno); in pmagbbfb_setcolreg()
113 dac_write(par, BT459_ADDR_HI, 0x00); in pmagbbfb_setcolreg()
115 dac_write(par, BT459_CMAP, red); in pmagbbfb_setcolreg()
117 dac_write(par, BT459_CMAP, green); in pmagbbfb_setcolreg()
119 dac_write(par, BT459_CMAP, blue); in pmagbbfb_setcolreg()
138 struct pmagbbfb_par *par = info->par; in pmagbbfb_erase_cursor() local
141 dac_write(par, BT459_ADDR_LO, 0x00); in pmagbbfb_erase_cursor()
142 dac_write(par, BT459_ADDR_HI, 0x03); in pmagbbfb_erase_cursor()
144 dac_write(par, BT459_DATA, 0x00); in pmagbbfb_erase_cursor()
152 struct pmagbbfb_par *par = info->par; in pmagbbfb_screen_setup() local
154 info->var.xres = ((sfb_read(par, SFB_REG_VID_HOR) >> in pmagbbfb_screen_setup()
157 info->var.yres = (sfb_read(par, SFB_REG_VID_VER) >> in pmagbbfb_screen_setup()
160 info->var.left_margin = ((sfb_read(par, SFB_REG_VID_HOR) >> in pmagbbfb_screen_setup()
163 info->var.right_margin = ((sfb_read(par, SFB_REG_VID_HOR) >> in pmagbbfb_screen_setup()
166 info->var.upper_margin = (sfb_read(par, SFB_REG_VID_VER) >> in pmagbbfb_screen_setup()
168 info->var.lower_margin = (sfb_read(par, SFB_REG_VID_VER) >> in pmagbbfb_screen_setup()
170 info->var.hsync_len = ((sfb_read(par, SFB_REG_VID_HOR) >> in pmagbbfb_screen_setup()
173 info->var.vsync_len = (sfb_read(par, SFB_REG_VID_VER) >> in pmagbbfb_screen_setup()
188 struct pmagbbfb_par *par = info->par; in pmagbbfb_osc_setup() local
194 gp0_write(par, 0); /* select Osc0 */ in pmagbbfb_osc_setup()
197 sfb_write(par, SFB_REG_TCCLK_COUNT, 0); in pmagbbfb_osc_setup()
200 if (sfb_read(par, SFB_REG_TCCLK_COUNT) == 0) in pmagbbfb_osc_setup()
204 count0 += sfb_read(par, SFB_REG_VIDCLK_COUNT); in pmagbbfb_osc_setup()
207 gp0_write(par, 1); /* select Osc1 */ in pmagbbfb_osc_setup()
210 sfb_write(par, SFB_REG_TCCLK_COUNT, 0); in pmagbbfb_osc_setup()
213 if (sfb_read(par, SFB_REG_TCCLK_COUNT) == 0) in pmagbbfb_osc_setup()
217 count1 += sfb_read(par, SFB_REG_VIDCLK_COUNT); in pmagbbfb_osc_setup()
221 par->osc0 = freq0; in pmagbbfb_osc_setup()
224 par->osc0 = pmagbbfb_freqs[0]; in pmagbbfb_osc_setup()
226 freq1 = (par->osc0 * count1 + count0 / 2) / count0; in pmagbbfb_osc_setup()
227 par->osc1 = freq1; in pmagbbfb_osc_setup()
233 par->osc1 = pmagbbfb_freqs[i]; in pmagbbfb_osc_setup()
237 if (par->osc0 - par->osc1 <= (par->osc0 + par->osc1 + 256) / 512 || in pmagbbfb_osc_setup()
238 par->osc1 - par->osc0 <= (par->osc0 + par->osc1 + 256) / 512) in pmagbbfb_osc_setup()
239 par->osc1 = 0; in pmagbbfb_osc_setup()
241 gp0_write(par, par->osc1 != 0); /* reselect OscX */ in pmagbbfb_osc_setup()
243 info->var.pixclock = par->osc1 ? in pmagbbfb_osc_setup()
244 (1000000000 + par->osc1 / 2) / par->osc1 : in pmagbbfb_osc_setup()
245 (1000000000 + par->osc0 / 2) / par->osc0; in pmagbbfb_osc_setup()
254 struct pmagbbfb_par *par; in pmagbbfb_probe() local
265 par = info->par; in pmagbbfb_probe()
292 par->mmio = ioremap_nocache(info->fix.mmio_start, info->fix.mmio_len); in pmagbbfb_probe()
293 if (!par->mmio) { in pmagbbfb_probe()
298 par->sfb = par->mmio + PMAGB_B_SFB; in pmagbbfb_probe()
299 par->dac = par->mmio + PMAGB_B_BT459; in pmagbbfb_probe()
303 par->smem = ioremap_nocache(info->fix.smem_start, info->fix.smem_len); in pmagbbfb_probe()
304 if (!par->smem) { in pmagbbfb_probe()
309 vid_base = sfb_read(par, SFB_REG_VID_BASE); in pmagbbfb_probe()
310 info->screen_base = (void __iomem *)par->smem + vid_base * 0x1000; in pmagbbfb_probe()
327 par->osc0 / 1000, par->osc0 % 1000); in pmagbbfb_probe()
329 par->osc1 / 1000, par->osc1 % 1000); in pmagbbfb_probe()
334 freq0, par->osc1 ? freq1 : "disabled", par->osc1 != 0); in pmagbbfb_probe()
340 iounmap(par->smem); in pmagbbfb_probe()
343 iounmap(par->mmio); in pmagbbfb_probe()
360 struct pmagbbfb_par *par = info->par; in pmagbbfb_remove() local
365 iounmap(par->smem); in pmagbbfb_remove()
366 iounmap(par->mmio); in pmagbbfb_remove()