Lines Matching defs:par
377 static void FFBFifo(struct ffb_par *par, int n)
380 int cache = par->fifo_cache;
383 fbc = par->fbc;
389 par->fifo_cache = cache - n;
392 static void FFBWait(struct ffb_par *par)
397 fbc = par->fbc;
410 struct ffb_par *par = (struct ffb_par *)p->par;
412 FFBWait(par);
416 static __inline__ void ffb_rop(struct ffb_par *par, u32 rop)
418 if (par->rop_cache != rop) {
419 FFBFifo(par, 1);
420 upa_writel(rop, &par->fbc->rop);
421 par->rop_cache = rop;
425 static void ffb_switch_from_graph(struct ffb_par *par)
427 struct ffb_fbc __iomem *fbc = par->fbc;
428 struct ffb_dac __iomem *dac = par->dac;
431 spin_lock_irqsave(&par->lock, flags);
432 FFBWait(par);
433 par->fifo_cache = 0;
434 FFBFifo(par, 7);
439 upa_writel(par->rop_cache, &fbc->rop);
442 upa_writel(par->fg_cache, &fbc->fg);
443 upa_writel(par->bg_cache, &fbc->bg);
444 FFBWait(par);
448 if (par->flags & FFB_FLAG_INVCURSOR)
454 spin_unlock_irqrestore(&par->lock, flags);
459 struct ffb_par *par = (struct ffb_par *)info->par;
464 ffb_switch_from_graph(par);
479 struct ffb_par *par = (struct ffb_par *)info->par;
480 struct ffb_fbc __iomem *fbc = par->fbc;
488 spin_lock_irqsave(&par->lock, flags);
490 if (fg != par->fg_cache) {
491 FFBFifo(par, 1);
493 par->fg_cache = fg;
496 ffb_rop(par, rect->rop == ROP_COPY ?
500 FFBFifo(par, 5);
507 spin_unlock_irqrestore(&par->lock, flags);
519 struct ffb_par *par = (struct ffb_par *)info->par;
520 struct ffb_fbc __iomem *fbc = par->fbc;
529 spin_lock_irqsave(&par->lock, flags);
531 ffb_rop(par, FFB_ROP_OLD);
533 FFBFifo(par, 7);
542 spin_unlock_irqrestore(&par->lock, flags);
553 struct ffb_par *par = (struct ffb_par *)info->par;
554 struct ffb_fbc __iomem *fbc = par->fbc;
573 spin_lock_irqsave(&par->lock, flags);
575 if (fgbg != *(u64 *)&par->fg_cache) {
576 FFBFifo(par, 2);
578 *(u64 *)&par->fg_cache = fgbg;
582 FFBFifo(par, 1);
589 FFBFifo(par, 1);
598 FFBFifo(par, 1);
609 FFBFifo(par, 2);
618 FFBFifo(par, 1);
625 spin_unlock_irqrestore(&par->lock, flags);
676 struct ffb_par *par = (struct ffb_par *)info->par;
677 struct ffb_dac __iomem *dac = par->dac;
682 spin_lock_irqsave(&par->lock, flags);
684 FFBWait(par);
691 par->flags &= ~FFB_FLAG_BLANKED;
699 par->flags |= FFB_FLAG_BLANKED;
709 spin_unlock_irqrestore(&par->lock, flags);
855 struct ffb_par *par = (struct ffb_par *)info->par;
858 par->physbase, par->fbsize,
864 struct ffb_par *par = (struct ffb_par *)info->par;
867 FBTYPE_CREATOR, 24, par->fbsize);
876 struct ffb_par *par = (struct ffb_par *)info->par;
879 if (!(par->flags & FFB_FLAG_AFB)) {
880 if ((par->board_type & 0x7) == 0x3)
904 struct ffb_par *par;
914 par = info->par;
916 spin_lock_init(&par->lock);
917 par->fbc = of_ioremap(&op->resource[2], 0,
919 if (!par->fbc)
922 par->dac = of_ioremap(&op->resource[1], 0,
924 if (!par->dac)
927 par->rop_cache = FFB_ROP_NEW;
928 par->physbase = op->resource[0].start;
939 info->screen_base = (char *) par->physbase + FFB_DFB24_POFF;
940 info->pseudo_palette = par->pseudo_palette;
943 par->fbsize = PAGE_ALIGN(info->var.xres * info->var.yres * 4);
949 par->flags |= FFB_FLAG_AFB;
951 par->board_type = of_getintprop_default(dp, "board_type", 0);
953 fbc = par->fbc;
957 dac = par->dac;
974 if ((par->flags & FFB_FLAG_AFB) || dac_pnum == 0x236e) {
975 par->flags &= ~FFB_FLAG_INVCURSOR;
978 par->flags |= FFB_FLAG_INVCURSOR;
981 ffb_switch_from_graph(par);
1004 ((par->flags & FFB_FLAG_AFB) ? "AFB" : "FFB"),
1005 par->physbase, par->board_type,
1014 of_iounmap(&op->resource[1], par->dac, sizeof(struct ffb_dac));
1017 of_iounmap(&op->resource[2], par->fbc, sizeof(struct ffb_fbc));
1029 struct ffb_par *par = info->par;
1034 of_iounmap(&op->resource[2], par->fbc, sizeof(struct ffb_fbc));
1035 of_iounmap(&op->resource[1], par->dac, sizeof(struct ffb_dac));