Lines Matching full:par
81 struct mb862xxfb_par *par = info->par; in mb862xxfb_setcolreg() local
90 par->pseudo_palette[regno] = val; in mb862xxfb_setcolreg()
204 struct mb862xxfb_par *par = fbi->par; in mb862xxfb_set_par() local
207 dev_dbg(par->dev, "%s\n", __func__); in mb862xxfb_set_par()
208 if (par->type == BT_CORALP) in mb862xxfb_set_par()
211 if (par->pre_init) in mb862xxfb_set_par()
220 sc = par->refclk / (1000000 / fbi->var.pixclock) - 1; in mb862xxfb_set_par()
225 dev_dbg(par->dev, "SC 0x%lx\n", sc); in mb862xxfb_set_par()
274 struct mb862xxfb_par *par = info->par; in mb862xxfb_pan() local
287 struct mb862xxfb_par *par = fbi->par; in mb862xxfb_blank() local
315 struct mb862xxfb_par *par = fbi->par; in mb862xxfb_ioctl() local
316 struct mb862xx_l1_cfg *l1_cfg = &par->l1_cfg; in mb862xxfb_ioctl()
366 outreg(disp, GC_L1DA, par->cap_buf); in mb862xxfb_ioctl()
372 (par->l1_stride << 16)); in mb862xxfb_ioctl()
422 struct mb862xxfb_par *par = fbi->par; in mb862xxfb_init_fbinfo() local
423 struct mb862xx_gc_mode *mode = par->gc_mode; in mb862xxfb_init_fbinfo()
428 fbi->pseudo_palette = par->pseudo_palette; in mb862xxfb_init_fbinfo()
429 fbi->screen_base = par->fb_base; in mb862xxfb_init_fbinfo()
430 fbi->screen_size = par->mapped_vram; in mb862xxfb_init_fbinfo()
433 fbi->fix.smem_start = (unsigned long)par->fb_base_phys; in mb862xxfb_init_fbinfo()
434 fbi->fix.mmio_start = (unsigned long)par->mmio_base_phys; in mb862xxfb_init_fbinfo()
435 fbi->fix.mmio_len = par->mmio_len; in mb862xxfb_init_fbinfo()
449 dev_dbg(par->dev, "using bootloader's disp. mode\n"); in mb862xxfb_init_fbinfo()
450 fbi->var.pixclock = (sc * 1000000) / par->refclk; in mb862xxfb_init_fbinfo()
478 dev_dbg(par->dev, "using supplied mode\n"); in mb862xxfb_init_fbinfo()
487 dev_err(par->dev, in mb862xxfb_init_fbinfo()
511 dev_err(par->dev, "check_var() failed on initial setup?\n"); in mb862xxfb_init_fbinfo()
523 par->cap_buf = par->mapped_vram - 0x1bd800 - 0x10000; in mb862xxfb_init_fbinfo()
524 par->cap_len = 0x1bd800; in mb862xxfb_init_fbinfo()
525 par->l1_cfg.sx = 0; in mb862xxfb_init_fbinfo()
526 par->l1_cfg.sy = 0; in mb862xxfb_init_fbinfo()
527 par->l1_cfg.sw = 720; in mb862xxfb_init_fbinfo()
528 par->l1_cfg.sh = 576; in mb862xxfb_init_fbinfo()
529 par->l1_cfg.dx = 0; in mb862xxfb_init_fbinfo()
530 par->l1_cfg.dy = 0; in mb862xxfb_init_fbinfo()
531 par->l1_cfg.dw = 720; in mb862xxfb_init_fbinfo()
532 par->l1_cfg.dh = 576; in mb862xxfb_init_fbinfo()
533 stride = par->l1_cfg.sw * (fbi->var.bits_per_pixel / 8); in mb862xxfb_init_fbinfo()
534 par->l1_stride = stride / 64 + ((stride % 64) ? 1 : 0); in mb862xxfb_init_fbinfo()
536 (par->l1_stride << 16)); in mb862xxfb_init_fbinfo()
537 outreg(cap, GC_CAP_CBOA, par->cap_buf); in mb862xxfb_init_fbinfo()
538 outreg(cap, GC_CAP_CBLA, par->cap_buf + par->cap_len); in mb862xxfb_init_fbinfo()
549 struct mb862xxfb_par *par = fbi->par; in mb862xxfb_show_dispregs() local
584 struct mb862xxfb_par *par = (struct mb862xxfb_par *) dev_id; in mb862xx_intr() local
587 if (!par) in mb862xx_intr()
590 if (par->type == BT_CARMINE) { in mb862xx_intr()
622 static int mb862xx_gdc_init(struct mb862xxfb_par *par) in mb862xx_gdc_init() argument
627 if (!par) in mb862xx_gdc_init()
631 par->pre_init = 1; in mb862xx_gdc_init()
633 par->host = par->mmio_base; in mb862xx_gdc_init()
634 par->i2c = par->mmio_base + MB862XX_I2C_BASE; in mb862xx_gdc_init()
635 par->disp = par->mmio_base + MB862XX_DISP_BASE; in mb862xx_gdc_init()
636 par->cap = par->mmio_base + MB862XX_CAP_BASE; in mb862xx_gdc_init()
637 par->draw = par->mmio_base + MB862XX_DRAW_BASE; in mb862xx_gdc_init()
638 par->geo = par->mmio_base + MB862XX_GEO_BASE; in mb862xx_gdc_init()
639 par->pio = par->mmio_base + MB862XX_PIO_BASE; in mb862xx_gdc_init()
641 par->refclk = GC_DISP_REFCLK_400; in mb862xx_gdc_init()
646 dev_info(par->dev, "Fujitsu Lime v1.%d found\n", in mb862xx_gdc_init()
648 par->type = BT_LIME; in mb862xx_gdc_init()
649 ccf = par->gc_mode ? par->gc_mode->ccf : GC_CCF_COT_100; in mb862xx_gdc_init()
650 mmr = par->gc_mode ? par->gc_mode->mmr : 0x414fb7f2; in mb862xx_gdc_init()
652 dev_info(par->dev, "? GDC, CID/Rev.: 0x%lx/0x%lx \n", ver, rev); in mb862xx_gdc_init()
656 if (!par->pre_init) { in mb862xx_gdc_init()
673 struct mb862xxfb_par *par; in of_platform_mb862xx_probe() local
688 par = info->par; in of_platform_mb862xx_probe()
689 par->info = info; in of_platform_mb862xx_probe()
690 par->dev = dev; in of_platform_mb862xx_probe()
692 par->irq = irq_of_parse_and_map(np, 0); in of_platform_mb862xx_probe()
693 if (par->irq == NO_IRQ) { in of_platform_mb862xx_probe()
700 par->res = request_mem_region(res.start, res_size, DRV_NAME); in of_platform_mb862xx_probe()
701 if (par->res == NULL) { in of_platform_mb862xx_probe()
708 par->gc_mode = &socrates_gc_mode; in of_platform_mb862xx_probe()
711 par->fb_base_phys = res.start; in of_platform_mb862xx_probe()
712 par->mmio_base_phys = res.start + MB862XX_MMIO_BASE; in of_platform_mb862xx_probe()
713 par->mmio_len = MB862XX_MMIO_SIZE; in of_platform_mb862xx_probe()
714 if (par->gc_mode) in of_platform_mb862xx_probe()
715 par->mapped_vram = par->gc_mode->max_vram; in of_platform_mb862xx_probe()
717 par->mapped_vram = MB862XX_MEM_SIZE; in of_platform_mb862xx_probe()
719 par->fb_base = ioremap(par->fb_base_phys, par->mapped_vram); in of_platform_mb862xx_probe()
720 if (par->fb_base == NULL) { in of_platform_mb862xx_probe()
725 par->mmio_base = ioremap(par->mmio_base_phys, par->mmio_len); in of_platform_mb862xx_probe()
726 if (par->mmio_base == NULL) { in of_platform_mb862xx_probe()
732 (u64)par->fb_base_phys, (ulong)par->mapped_vram); in of_platform_mb862xx_probe()
734 (u64)par->mmio_base_phys, (ulong)par->mmio_len, par->irq); in of_platform_mb862xx_probe()
736 if (mb862xx_gdc_init(par)) in of_platform_mb862xx_probe()
739 if (request_irq(par->irq, mb862xx_intr, 0, in of_platform_mb862xx_probe()
740 DRV_NAME, (void *)par)) { in of_platform_mb862xx_probe()
770 free_irq(par->irq, (void *)par); in of_platform_mb862xx_probe()
772 iounmap(par->mmio_base); in of_platform_mb862xx_probe()
774 iounmap(par->fb_base); in of_platform_mb862xx_probe()
778 irq_dispose_mapping(par->irq); in of_platform_mb862xx_probe()
787 struct mb862xxfb_par *par = fbi->par; in of_platform_mb862xx_remove() local
788 resource_size_t res_size = resource_size(par->res); in of_platform_mb862xx_remove()
801 free_irq(par->irq, (void *)par); in of_platform_mb862xx_remove()
802 irq_dispose_mapping(par->irq); in of_platform_mb862xx_remove()
809 iounmap(par->mmio_base); in of_platform_mb862xx_remove()
810 iounmap(par->fb_base); in of_platform_mb862xx_remove()
812 release_mem_region(par->res->start, res_size); in of_platform_mb862xx_remove()
843 static int coralp_init(struct mb862xxfb_par *par) in coralp_init() argument
847 par->host = par->mmio_base; in coralp_init()
848 par->i2c = par->mmio_base + MB862XX_I2C_BASE; in coralp_init()
849 par->disp = par->mmio_base + MB862XX_DISP_BASE; in coralp_init()
850 par->cap = par->mmio_base + MB862XX_CAP_BASE; in coralp_init()
851 par->draw = par->mmio_base + MB862XX_DRAW_BASE; in coralp_init()
852 par->geo = par->mmio_base + MB862XX_GEO_BASE; in coralp_init()
853 par->pio = par->mmio_base + MB862XX_PIO_BASE; in coralp_init()
855 par->refclk = GC_DISP_REFCLK_400; in coralp_init()
857 if (par->mapped_vram >= 0x2000000) { in coralp_init()
859 writel(1, par->fb_base + MB862XX_MMIO_BASE + GC_RSW); in coralp_init()
869 dev_info(par->dev, "Fujitsu Coral-%s GDC Rev.%d found\n",\ in coralp_init()
871 par->pdev->revision); in coralp_init()
874 par->pre_init = 1; in coralp_init()
876 if (!par->pre_init) { in coralp_init()
888 mb862xx_i2c_init(par); in coralp_init()
892 static int init_dram_ctrl(struct mb862xxfb_par *par) in init_dram_ctrl() argument
915 dev_err(par->dev, "VRAM init failed.\n"); in init_dram_ctrl()
924 static int carmine_init(struct mb862xxfb_par *par) in carmine_init() argument
928 par->ctrl = par->mmio_base + MB86297_CTRL_BASE; in carmine_init()
929 par->i2c = par->mmio_base + MB86297_I2C_BASE; in carmine_init()
930 par->disp = par->mmio_base + MB86297_DISP0_BASE; in carmine_init()
931 par->disp1 = par->mmio_base + MB86297_DISP1_BASE; in carmine_init()
932 par->cap = par->mmio_base + MB86297_CAP0_BASE; in carmine_init()
933 par->cap1 = par->mmio_base + MB86297_CAP1_BASE; in carmine_init()
934 par->draw = par->mmio_base + MB86297_DRAW_BASE; in carmine_init()
935 par->dram_ctrl = par->mmio_base + MB86297_DRAMCTRL_BASE; in carmine_init()
936 par->wrback = par->mmio_base + MB86297_WRBACK_BASE; in carmine_init()
938 par->refclk = GC_DISP_REFCLK_533; in carmine_init()
946 dev_info(par->dev, "Fujitsu Carmine GDC Rev.%d found\n", in carmine_init()
947 par->pdev->revision); in carmine_init()
955 if (init_dram_ctrl(par) < 0) in carmine_init()
966 static inline int mb862xx_pci_gdc_init(struct mb862xxfb_par *par) in mb862xx_pci_gdc_init() argument
968 switch (par->type) { in mb862xx_pci_gdc_init()
970 return coralp_init(par); in mb862xx_pci_gdc_init()
972 return carmine_init(par); in mb862xx_pci_gdc_init()
995 struct mb862xxfb_par *par; in mb862xx_pci_probe() local
1012 par = info->par; in mb862xx_pci_probe()
1013 par->info = info; in mb862xx_pci_probe()
1014 par->dev = dev; in mb862xx_pci_probe()
1015 par->pdev = pdev; in mb862xx_pci_probe()
1016 par->irq = pdev->irq; in mb862xx_pci_probe()
1027 par->fb_base_phys = pci_resource_start(par->pdev, 0); in mb862xx_pci_probe()
1028 par->mapped_vram = CORALP_MEM_SIZE; in mb862xx_pci_probe()
1029 if (par->mapped_vram >= 0x2000000) { in mb862xx_pci_probe()
1030 par->mmio_base_phys = par->fb_base_phys + in mb862xx_pci_probe()
1033 par->mmio_base_phys = par->fb_base_phys + in mb862xx_pci_probe()
1036 par->mmio_len = MB862XX_MMIO_SIZE; in mb862xx_pci_probe()
1037 par->type = BT_CORALP; in mb862xx_pci_probe()
1040 par->fb_base_phys = pci_resource_start(par->pdev, 2); in mb862xx_pci_probe()
1041 par->mmio_base_phys = pci_resource_start(par->pdev, 3); in mb862xx_pci_probe()
1042 par->mmio_len = pci_resource_len(par->pdev, 3); in mb862xx_pci_probe()
1043 par->mapped_vram = CARMINE_MEM_SIZE; in mb862xx_pci_probe()
1044 par->type = BT_CARMINE; in mb862xx_pci_probe()
1052 par->fb_base = ioremap(par->fb_base_phys, par->mapped_vram); in mb862xx_pci_probe()
1053 if (par->fb_base == NULL) { in mb862xx_pci_probe()
1059 par->mmio_base = ioremap(par->mmio_base_phys, par->mmio_len); in mb862xx_pci_probe()
1060 if (par->mmio_base == NULL) { in mb862xx_pci_probe()
1067 (unsigned long long)par->fb_base_phys, (ulong)par->mapped_vram); in mb862xx_pci_probe()
1069 (unsigned long long)par->mmio_base_phys, (ulong)par->mmio_len); in mb862xx_pci_probe()
1071 ret = mb862xx_pci_gdc_init(par); in mb862xx_pci_probe()
1075 ret = request_irq(par->irq, mb862xx_intr, IRQF_SHARED, in mb862xx_pci_probe()
1076 DRV_NAME, (void *)par); in mb862xx_pci_probe()
1104 if (par->type == BT_CARMINE) in mb862xx_pci_probe()
1114 free_irq(par->irq, (void *)par); in mb862xx_pci_probe()
1116 iounmap(par->mmio_base); in mb862xx_pci_probe()
1118 iounmap(par->fb_base); in mb862xx_pci_probe()
1132 struct mb862xxfb_par *par = fbi->par; in mb862xx_pci_remove() local
1142 if (par->type == BT_CARMINE) { in mb862xx_pci_remove()
1149 mb862xx_i2c_exit(par); in mb862xx_pci_remove()
1156 free_irq(par->irq, (void *)par); in mb862xx_pci_remove()
1157 iounmap(par->mmio_base); in mb862xx_pci_remove()
1158 iounmap(par->fb_base); in mb862xx_pci_remove()