Lines Matching refs:pinfo
90 static int read_platinum_sense(struct fb_info_platinum *pinfo);
91 static void set_platinum_clock(struct fb_info_platinum *pinfo);
92 static void platinum_set_hardware(struct fb_info_platinum *pinfo);
94 struct fb_info_platinum *pinfo,
125 struct fb_info_platinum *pinfo = info->par; in platinumfb_set_par() local
129 if((err = platinum_var_to_par(&info->var, pinfo, 0))) { in platinumfb_set_par()
135 platinum_set_hardware(pinfo); in platinumfb_set_par()
137 init = platinum_reg_init[pinfo->vmode-1]; in platinumfb_set_par()
139 if ((pinfo->vmode == VMODE_832_624_75) && (pinfo->cmode > CMODE_8)) in platinumfb_set_par()
142 info->screen_base = pinfo->frame_buffer + init->fb_offset + offset; in platinumfb_set_par()
144 info->fix.smem_start = (pinfo->frame_buffer_phys) + init->fb_offset + offset; in platinumfb_set_par()
146 info->fix.visual = (pinfo->cmode == CMODE_8) ? in platinumfb_set_par()
148 info->fix.line_length = vmode_attrs[pinfo->vmode-1].hres * (1<<pinfo->cmode) in platinumfb_set_par()
187 struct fb_info_platinum *pinfo = info->par; in platinumfb_setcolreg() local
188 volatile struct cmap_regs __iomem *cmap_regs = pinfo->cmap_regs; in platinumfb_setcolreg()
197 pinfo->palette[regno].red = red; in platinumfb_setcolreg()
198 pinfo->palette[regno].green = green; in platinumfb_setcolreg()
199 pinfo->palette[regno].blue = blue; in platinumfb_setcolreg()
209 switch (pinfo->cmode) { in platinumfb_setcolreg()
240 static void set_platinum_clock(struct fb_info_platinum *pinfo) in set_platinum_clock() argument
242 volatile struct cmap_regs __iomem *cmap_regs = pinfo->cmap_regs; in set_platinum_clock()
245 init = platinum_reg_init[pinfo->vmode-1]; in set_platinum_clock()
251 STORE_D2(7, init->clock_params[pinfo->clktype][0]); in set_platinum_clock()
252 STORE_D2(8, init->clock_params[pinfo->clktype][1]); in set_platinum_clock()
255 STORE_D2(4, init->clock_params[pinfo->clktype][0]); in set_platinum_clock()
256 STORE_D2(5, init->clock_params[pinfo->clktype][1]); in set_platinum_clock()
267 static void platinum_set_hardware(struct fb_info_platinum *pinfo) in platinum_set_hardware() argument
269 volatile struct platinum_regs __iomem *platinum_regs = pinfo->platinum_regs; in platinum_set_hardware()
270 volatile struct cmap_regs __iomem *cmap_regs = pinfo->cmap_regs; in platinum_set_hardware()
275 vmode = pinfo->vmode; in platinum_set_hardware()
276 cmode = pinfo->cmode; in platinum_set_hardware()
286 out_be32(&platinum_regs->reg[26+32].r, (pinfo->total_vram == 0x100000 ? in platinum_set_hardware()
289 out_be32(&platinum_regs->reg[16].r, (unsigned) pinfo->frame_buffer_phys+init->fb_offset+0x10); in platinum_set_hardware()
291 out_be32(&platinum_regs->reg[19].r, (pinfo->total_vram == 0x100000 ? in platinum_set_hardware()
294 out_be32(&platinum_regs->reg[20].r, (pinfo->total_vram == 0x100000 ? 0x11 : 0x1011)); in platinum_set_hardware()
302 STORE_D2(0, (pinfo->total_vram == 0x100000 ? in platinum_set_hardware()
308 set_platinum_clock(pinfo); in platinum_set_hardware()
317 struct fb_info_platinum *pinfo) in platinum_init_info() argument
321 info->pseudo_palette = pinfo->pseudo_palette; in platinum_init_info()
323 info->screen_base = pinfo->frame_buffer + 0x20; in platinum_init_info()
329 info->fix.mmio_start = pinfo->platinum_regs_phys; in platinum_init_info()
332 info->fix.smem_start = pinfo->frame_buffer_phys + 0x20; /* will be updated later */ in platinum_init_info()
333 info->fix.smem_len = pinfo->total_vram - 0x20; in platinum_init_info()
344 struct fb_info_platinum *pinfo = info->par; in platinum_init_fb() local
348 sense = read_platinum_sense(pinfo); in platinum_init_fb()
373 platinum_vram_reqd(default_vmode, default_cmode) > pinfo->total_vram) in platinum_init_fb()
392 platinum_init_info(info, pinfo); in platinum_init_fb()
447 struct fb_info_platinum *pinfo, in platinum_var_to_par() argument
469 if (platinum_vram_reqd(vmode, cmode) > pinfo->total_vram) { in platinum_var_to_par()
480 pinfo->vmode = vmode; in platinum_var_to_par()
481 pinfo->cmode = cmode; in platinum_var_to_par()
482 pinfo->xres = vmode_attrs[vmode-1].hres; in platinum_var_to_par()
483 pinfo->yres = vmode_attrs[vmode-1].vres; in platinum_var_to_par()
484 pinfo->xoffset = 0; in platinum_var_to_par()
485 pinfo->yoffset = 0; in platinum_var_to_par()
486 pinfo->vxres = pinfo->xres; in platinum_var_to_par()
487 pinfo->vyres = pinfo->yres; in platinum_var_to_par()
541 struct fb_info_platinum *pinfo; in platinumfb_probe() local
547 info = framebuffer_alloc(sizeof(*pinfo), &odev->dev); in platinumfb_probe()
552 pinfo = info->par; in platinumfb_probe()
554 if (of_address_to_resource(dp, 0, &pinfo->rsrc_reg) || in platinumfb_probe()
555 of_address_to_resource(dp, 1, &pinfo->rsrc_fb)) { in platinumfb_probe()
561 (unsigned long long)pinfo->rsrc_reg.start, in platinumfb_probe()
562 (unsigned long long)pinfo->rsrc_reg.end); in platinumfb_probe()
564 (unsigned long long)pinfo->rsrc_fb.start, in platinumfb_probe()
565 (unsigned long long)pinfo->rsrc_fb.end); in platinumfb_probe()
570 if (!request_mem_region(pinfo->rsrc_fb.start, in platinumfb_probe()
571 resource_size(&pinfo->rsrc_fb), in platinumfb_probe()
579 pinfo->frame_buffer_phys = pinfo->rsrc_fb.start; in platinumfb_probe()
580 pinfo->frame_buffer = __ioremap(pinfo->rsrc_fb.start, 0x400000, in platinumfb_probe()
582 pinfo->base_frame_buffer = pinfo->frame_buffer; in platinumfb_probe()
585 pinfo->platinum_regs_phys = pinfo->rsrc_reg.start; in platinumfb_probe()
586 pinfo->platinum_regs = ioremap(pinfo->rsrc_reg.start, 0x1000); in platinumfb_probe()
588 pinfo->cmap_regs_phys = 0xf301b000; /* XXX not in prom? */ in platinumfb_probe()
589 request_mem_region(pinfo->cmap_regs_phys, 0x1000, "platinumfb cmap"); in platinumfb_probe()
590 pinfo->cmap_regs = ioremap(pinfo->cmap_regs_phys, 0x1000); in platinumfb_probe()
593 out_be32(&pinfo->platinum_regs->reg[16].r, (unsigned)pinfo->frame_buffer_phys); in platinumfb_probe()
594 out_be32(&pinfo->platinum_regs->reg[20].r, 0x1011); /* select max vram */ in platinumfb_probe()
595 out_be32(&pinfo->platinum_regs->reg[24].r, 0); /* switch in vram */ in platinumfb_probe()
597 fbuffer = pinfo->base_frame_buffer; in platinumfb_probe()
611 pinfo->total_vram = (bank0 + bank1 + bank2 + bank3) * 0x100000; in platinumfb_probe()
613 (unsigned int) (pinfo->total_vram / 1024 / 1024), in platinumfb_probe()
619 out_8(&pinfo->cmap_regs->addr, 0x40); in platinumfb_probe()
620 pinfo->dactype = in_8(&pinfo->cmap_regs->d2); in platinumfb_probe()
621 switch (pinfo->dactype) { in platinumfb_probe()
623 pinfo->clktype = 1; in platinumfb_probe()
627 pinfo->clktype = 0; in platinumfb_probe()
631 pinfo->clktype = 0; in platinumfb_probe()
632 printk(KERN_INFO "platinumfb: Unknown DACula type: %x\n", pinfo->dactype); in platinumfb_probe()
639 iounmap(pinfo->frame_buffer); in platinumfb_probe()
640 iounmap(pinfo->platinum_regs); in platinumfb_probe()
641 iounmap(pinfo->cmap_regs); in platinumfb_probe()
651 struct fb_info_platinum *pinfo = info->par; in platinumfb_remove() local
656 iounmap(pinfo->frame_buffer); in platinumfb_remove()
657 iounmap(pinfo->platinum_regs); in platinumfb_remove()
658 iounmap(pinfo->cmap_regs); in platinumfb_remove()
660 release_mem_region(pinfo->rsrc_fb.start, in platinumfb_remove()
661 resource_size(&pinfo->rsrc_fb)); in platinumfb_remove()
663 release_mem_region(pinfo->cmap_regs_phys, 0x1000); in platinumfb_remove()