Lines Matching refs:par

375 static void FFBFifo(struct ffb_par *par, int n)  in FFBFifo()  argument
378 int cache = par->fifo_cache; in FFBFifo()
381 fbc = par->fbc; in FFBFifo()
387 par->fifo_cache = cache - n; in FFBFifo()
390 static void FFBWait(struct ffb_par *par) in FFBWait() argument
395 fbc = par->fbc; in FFBWait()
408 struct ffb_par *par = (struct ffb_par *)p->par; in ffb_sync() local
410 FFBWait(par); in ffb_sync()
414 static __inline__ void ffb_rop(struct ffb_par *par, u32 rop) in ffb_rop() argument
416 if (par->rop_cache != rop) { in ffb_rop()
417 FFBFifo(par, 1); in ffb_rop()
418 upa_writel(rop, &par->fbc->rop); in ffb_rop()
419 par->rop_cache = rop; in ffb_rop()
423 static void ffb_switch_from_graph(struct ffb_par *par) in ffb_switch_from_graph() argument
425 struct ffb_fbc __iomem *fbc = par->fbc; in ffb_switch_from_graph()
426 struct ffb_dac __iomem *dac = par->dac; in ffb_switch_from_graph()
429 spin_lock_irqsave(&par->lock, flags); in ffb_switch_from_graph()
430 FFBWait(par); in ffb_switch_from_graph()
431 par->fifo_cache = 0; in ffb_switch_from_graph()
432 FFBFifo(par, 7); in ffb_switch_from_graph()
437 upa_writel(par->rop_cache, &fbc->rop); in ffb_switch_from_graph()
440 upa_writel(par->fg_cache, &fbc->fg); in ffb_switch_from_graph()
441 upa_writel(par->bg_cache, &fbc->bg); in ffb_switch_from_graph()
442 FFBWait(par); in ffb_switch_from_graph()
446 if (par->flags & FFB_FLAG_INVCURSOR) in ffb_switch_from_graph()
452 spin_unlock_irqrestore(&par->lock, flags); in ffb_switch_from_graph()
457 struct ffb_par *par = (struct ffb_par *)info->par; in ffb_pan_display() local
462 ffb_switch_from_graph(par); in ffb_pan_display()
477 struct ffb_par *par = (struct ffb_par *)info->par; in ffb_fillrect() local
478 struct ffb_fbc __iomem *fbc = par->fbc; in ffb_fillrect()
486 spin_lock_irqsave(&par->lock, flags); in ffb_fillrect()
488 if (fg != par->fg_cache) { in ffb_fillrect()
489 FFBFifo(par, 1); in ffb_fillrect()
491 par->fg_cache = fg; in ffb_fillrect()
494 ffb_rop(par, rect->rop == ROP_COPY ? in ffb_fillrect()
498 FFBFifo(par, 5); in ffb_fillrect()
505 spin_unlock_irqrestore(&par->lock, flags); in ffb_fillrect()
517 struct ffb_par *par = (struct ffb_par *)info->par; in ffb_copyarea() local
518 struct ffb_fbc __iomem *fbc = par->fbc; in ffb_copyarea()
527 spin_lock_irqsave(&par->lock, flags); in ffb_copyarea()
529 ffb_rop(par, FFB_ROP_OLD); in ffb_copyarea()
531 FFBFifo(par, 7); in ffb_copyarea()
540 spin_unlock_irqrestore(&par->lock, flags); in ffb_copyarea()
551 struct ffb_par *par = (struct ffb_par *)info->par; in ffb_imageblit() local
552 struct ffb_fbc __iomem *fbc = par->fbc; in ffb_imageblit()
571 spin_lock_irqsave(&par->lock, flags); in ffb_imageblit()
573 if (fgbg != *(u64 *)&par->fg_cache) { in ffb_imageblit()
574 FFBFifo(par, 2); in ffb_imageblit()
576 *(u64 *)&par->fg_cache = fgbg; in ffb_imageblit()
580 FFBFifo(par, 1); in ffb_imageblit()
587 FFBFifo(par, 1); in ffb_imageblit()
596 FFBFifo(par, 1); in ffb_imageblit()
607 FFBFifo(par, 2); in ffb_imageblit()
616 FFBFifo(par, 1); in ffb_imageblit()
623 spin_unlock_irqrestore(&par->lock, flags); in ffb_imageblit()
674 struct ffb_par *par = (struct ffb_par *)info->par; in ffb_blank() local
675 struct ffb_dac __iomem *dac = par->dac; in ffb_blank()
680 spin_lock_irqsave(&par->lock, flags); in ffb_blank()
682 FFBWait(par); in ffb_blank()
689 par->flags &= ~FFB_FLAG_BLANKED; in ffb_blank()
697 par->flags |= FFB_FLAG_BLANKED; in ffb_blank()
707 spin_unlock_irqrestore(&par->lock, flags); in ffb_blank()
853 struct ffb_par *par = (struct ffb_par *)info->par; in ffb_mmap() local
856 par->physbase, par->fbsize, in ffb_mmap()
862 struct ffb_par *par = (struct ffb_par *)info->par; in ffb_ioctl() local
865 FBTYPE_CREATOR, 24, par->fbsize); in ffb_ioctl()
874 struct ffb_par *par = (struct ffb_par *)info->par; in ffb_init_fix() local
877 if (!(par->flags & FFB_FLAG_AFB)) { in ffb_init_fix()
878 if ((par->board_type & 0x7) == 0x3) in ffb_init_fix()
902 struct ffb_par *par; in ffb_probe() local
912 par = info->par; in ffb_probe()
914 spin_lock_init(&par->lock); in ffb_probe()
915 par->fbc = of_ioremap(&op->resource[2], 0, in ffb_probe()
917 if (!par->fbc) in ffb_probe()
920 par->dac = of_ioremap(&op->resource[1], 0, in ffb_probe()
922 if (!par->dac) in ffb_probe()
925 par->rop_cache = FFB_ROP_NEW; in ffb_probe()
926 par->physbase = op->resource[0].start; in ffb_probe()
938 info->screen_base = (char *) par->physbase + FFB_DFB24_POFF; in ffb_probe()
939 info->pseudo_palette = par->pseudo_palette; in ffb_probe()
942 par->fbsize = PAGE_ALIGN(info->var.xres * info->var.yres * 4); in ffb_probe()
948 par->flags |= FFB_FLAG_AFB; in ffb_probe()
950 par->board_type = of_getintprop_default(dp, "board_type", 0); in ffb_probe()
952 fbc = par->fbc; in ffb_probe()
956 dac = par->dac; in ffb_probe()
973 if ((par->flags & FFB_FLAG_AFB) || dac_pnum == 0x236e) { in ffb_probe()
974 par->flags &= ~FFB_FLAG_INVCURSOR; in ffb_probe()
977 par->flags |= FFB_FLAG_INVCURSOR; in ffb_probe()
980 ffb_switch_from_graph(par); in ffb_probe()
1003 ((par->flags & FFB_FLAG_AFB) ? "AFB" : "FFB"), in ffb_probe()
1004 par->physbase, par->board_type, in ffb_probe()
1013 of_iounmap(&op->resource[1], par->dac, sizeof(struct ffb_dac)); in ffb_probe()
1016 of_iounmap(&op->resource[2], par->fbc, sizeof(struct ffb_fbc)); in ffb_probe()
1028 struct ffb_par *par = info->par; in ffb_remove() local
1033 of_iounmap(&op->resource[2], par->fbc, sizeof(struct ffb_fbc)); in ffb_remove()
1034 of_iounmap(&op->resource[1], par->dac, sizeof(struct ffb_dac)); in ffb_remove()