Lines Matching refs:fbi

172 	struct fb_info *fbi;
187 fbi = inf->fb[HEAD_CRT];
196 if (fbi && ptr < smem_len)
207 fbi = inf->fb[HEAD_PANEL];
208 if (fbi) {
209 par = fbi->par;
220 fbi = inf->fb[HEAD_CRT];
221 ptr = fbi ? smem_len : 0;
223 fbi = inf->fb[HEAD_PANEL];
224 if (fbi) {
225 par = fbi->par;
276 static void sm501fb_setup_gamma(struct sm501fb_info *fbi,
284 smc501_writel(value, fbi->regs + palette + offset);
438 struct sm501fb_info *fbi = par->info;
446 dev_dbg(fbi->dev, "%s: %dx%d, bpp = %d, virtual %dx%d\n",
487 dev_dbg(fbi->dev, "%s: line length = %u\n", __func__,
490 if (sm501_alloc_mem(fbi, &par->screen, mem_type, smem_len, smem_len)) {
491 dev_err(fbi->dev, "no memory available\n");
496 info->fix.smem_start = fbi->fbmem_res->start + par->screen.sm_addr;
500 info->screen_base = fbi->fbmem + par->screen.sm_addr;
506 fbi->regs + head_addr);
512 sm501pixclock = sm501_set_clock(fbi->dev->parent, clock_type,
518 dev_dbg(fbi->dev, "%s: pixclock(ps) = %u, pixclock(Hz) = %lu, "
535 struct sm501fb_info *fbi = par->info;
536 void __iomem *base = fbi->regs;
549 smc501_writel(reg, fbi->regs + (par->head == HEAD_CRT ?
589 struct sm501fb_info *fbi = par->info;
596 reg = smc501_readl(fbi->regs + SM501_DC_CRT_CONTROL);
600 smc501_writel(reg, fbi->regs + SM501_DC_CRT_CONTROL);
604 smc501_writel(reg | SM501_ADDR_FLIP, fbi->regs + SM501_DC_CRT_FB_ADDR);
606 sm501fb_sync_regs(fbi);
619 struct sm501fb_info *fbi = par->info;
623 smc501_writel(reg, fbi->regs + SM501_DC_PANEL_FB_WIDTH);
626 smc501_writel(reg, fbi->regs + SM501_DC_PANEL_FB_HEIGHT);
628 sm501fb_sync_regs(fbi);
640 struct sm501fb_info *fbi = par->info;
647 dev_dbg(fbi->dev, "%s(%p)\n", __func__, info);
650 sm501_misc_control(fbi->dev->parent, 0, SM501_MISC_DAC_POWER);
652 control = smc501_readl(fbi->regs + SM501_DC_CRT_CONTROL);
672 sm501_alloc_mem(fbi, &par->screen, SM501_MEMF_CRT, 0,
679 dev_err(fbi->dev, "failed to set common parameters\n");
695 sm501fb_setup_gamma(fbi, SM501_DC_CRT_PALETTE);
700 sm501fb_setup_gamma(fbi, SM501_DC_CRT_PALETTE);
712 dev_dbg(fbi->dev, "new control is %08lx\n", control);
714 smc501_writel(control, fbi->regs + SM501_DC_CRT_CONTROL);
715 sm501fb_sync_regs(fbi);
720 static void sm501fb_panel_power(struct sm501fb_info *fbi, int to)
723 void __iomem *ctrl_reg = fbi->regs + SM501_DC_PANEL_CONTROL;
724 struct sm501_platdata_fbsub *pd = fbi->pdata->fb_pnl;
733 sm501fb_sync_regs(fbi);
738 sm501fb_sync_regs(fbi);
750 sm501fb_sync_regs(fbi);
761 sm501fb_sync_regs(fbi);
773 sm501fb_sync_regs(fbi);
784 sm501fb_sync_regs(fbi);
790 sm501fb_sync_regs(fbi);
795 sm501fb_sync_regs(fbi);
799 sm501fb_sync_regs(fbi);
810 struct sm501fb_info *fbi = par->info;
816 dev_dbg(fbi->dev, "%s(%p)\n", __func__, info);
829 control = smc501_readl(fbi->regs + SM501_DC_PANEL_CONTROL);
851 sm501fb_setup_gamma(fbi, SM501_DC_PANEL_PALETTE);
856 sm501fb_setup_gamma(fbi, SM501_DC_PANEL_PALETTE);
863 smc501_writel(0x0, fbi->regs + SM501_DC_PANEL_PANNING_CONTROL);
867 smc501_writel(0x00, fbi->regs + SM501_DC_PANEL_TL_LOC);
872 smc501_writel(reg, fbi->regs + SM501_DC_PANEL_BR_LOC);
885 smc501_writel(control, fbi->regs + SM501_DC_PANEL_CONTROL);
886 sm501fb_sync_regs(fbi);
890 sm501_modify_reg(fbi->dev->parent, SM501_SYSTEM_CONTROL,
894 sm501fb_panel_power(fbi, 1);
924 struct sm501fb_info *fbi = par->info;
925 void __iomem *base = fbi->regs;
974 struct sm501fb_info *fbi = par->info;
976 dev_dbg(fbi->dev, "%s(mode=%d, %p)\n", __func__, blank_mode, info);
980 sm501fb_panel_power(fbi, 0);
984 sm501fb_panel_power(fbi, 1);
1005 struct sm501fb_info *fbi = par->info;
1008 dev_dbg(fbi->dev, "%s(mode=%d, %p)\n", __func__, blank_mode, info);
1010 ctrl = smc501_readl(fbi->regs + SM501_DC_CRT_CONTROL);
1015 sm501_misc_control(fbi->dev->parent, SM501_MISC_DAC_POWER, 0);
1025 sm501_misc_control(fbi->dev->parent, 0, SM501_MISC_DAC_POWER);
1035 smc501_writel(ctrl, fbi->regs + SM501_DC_CRT_CONTROL);
1036 sm501fb_sync_regs(fbi);
1049 struct sm501fb_info *fbi = par->info;
1050 void __iomem *base = fbi->regs;
1054 dev_dbg(fbi->dev, "%s(%p,%p)\n", __func__, info, cursor);
1089 dev_dbg(fbi->dev, "set position %d,%d\n", x, y);
1100 dev_dbg(fbi->dev, "%s: update cmap (%08x,%08x)\n",
1111 dev_dbg(fbi->dev, "fgcol %08lx, bgcol %08lx\n", fg, bg);
1131 dev_dbg(fbi->dev, "%s: setting shape (%d,%d)\n",
1159 sm501fb_sync_regs(fbi); /* ensure cursor data flushed */
1295 struct sm501fb_info *fbi = par->info;
1299 (smc501_readl(fbi->regs + SM501_SYSTEM_CONTROL) &
1313 struct sm501fb_info *fbi = par->info;
1354 smc501_writel(par->screen.sm_addr, fbi->regs2d + SM501_2D_SOURCE_BASE);
1356 fbi->regs2d + SM501_2D_DESTINATION_BASE);
1360 fbi->regs2d + SM501_2D_WINDOW_WIDTH);
1364 fbi->regs2d + SM501_2D_PITCH);
1369 smc501_writel(0, fbi->regs2d + SM501_2D_STRETCH);
1372 smc501_writel(0x00100000, fbi->regs2d + SM501_2D_STRETCH);
1375 smc501_writel(0x00200000, fbi->regs2d + SM501_2D_STRETCH);
1380 smc501_writel(0xffffffff, fbi->regs2d + SM501_2D_COLOR_COMPARE_MASK);
1383 smc501_writel(0xffffffff, fbi->regs2d + SM501_2D_MASK);
1386 smc501_writel((sx << 16) | sy, fbi->regs2d + SM501_2D_SOURCE);
1387 smc501_writel((dx << 16) | dy, fbi->regs2d + SM501_2D_DESTINATION);
1390 smc501_writel((width << 16) | height, fbi->regs2d + SM501_2D_DIMENSION);
1393 smc501_writel(0x800000cc | rtl, fbi->regs2d + SM501_2D_CONTROL);
1399 struct sm501fb_info *fbi = par->info;
1415 smc501_writel(par->screen.sm_addr, fbi->regs2d + SM501_2D_SOURCE_BASE);
1417 fbi->regs2d + SM501_2D_DESTINATION_BASE);
1421 fbi->regs2d + SM501_2D_WINDOW_WIDTH);
1425 fbi->regs2d + SM501_2D_PITCH);
1430 smc501_writel(0, fbi->regs2d + SM501_2D_STRETCH);
1433 smc501_writel(0x00100000, fbi->regs2d + SM501_2D_STRETCH);
1436 smc501_writel(0x00200000, fbi->regs2d + SM501_2D_STRETCH);
1441 smc501_writel(0xffffffff, fbi->regs2d + SM501_2D_COLOR_COMPARE_MASK);
1444 smc501_writel(0xffffffff, fbi->regs2d + SM501_2D_MASK);
1447 smc501_writel(rect->color, fbi->regs2d + SM501_2D_FOREGROUND);
1451 fbi->regs2d + SM501_2D_DESTINATION);
1454 smc501_writel((width << 16) | height, fbi->regs2d + SM501_2D_DIMENSION);
1457 smc501_writel(0x800100cc, fbi->regs2d + SM501_2D_CONTROL);
1498 static int sm501_init_cursor(struct fb_info *fbi, unsigned int reg_base)
1504 if (fbi == NULL)
1507 par = fbi->par;
1513 fbi->fix.smem_len);
1877 struct fb_info *fbi;
1887 fbi = framebuffer_alloc(sizeof(struct sm501fb_par), info->dev);
1888 if (!fbi)
1891 par = fbi->par;
1894 fbi->pseudo_palette = &par->pseudo_palette;
1896 info->fb[head] = fbi;
1906 struct fb_info *fbi = info->fb[head];
1908 if (!fbi)
1911 fb_dealloc_cmap(&fbi->cmap);
1917 struct fb_info *fbi = info->fb[head];
1920 if (!fbi)
1938 dev_info(info->dev, "fb%d: %s frame buffer\n", fbi->node, fbi->fix.id);
2086 struct fb_info *fbi = info->fb[head];
2089 if (!fbi)
2092 par = fbi->par;
2097 (par->ops.fb_blank)(FB_BLANK_POWERDOWN, fbi);
2102 fb_set_suspend(fbi, 1);
2137 struct fb_info *fbi = info->fb[head];
2140 if (!fbi)
2143 par = fbi->par;
2149 (par->ops.fb_set_par)(fbi);
2165 fb_set_suspend(fbi, 0);