• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/video/

Lines Matching refs:fbi

239 	struct fb_info		*fbi;
296 static void sdc_fb_init(struct mx3fb_info *fbi)
298 struct mx3fb_data *mx3fb = fbi->mx3fb;
307 static uint32_t sdc_fb_uninit(struct mx3fb_info *fbi)
309 struct mx3fb_data *mx3fb = fbi->mx3fb;
676 static int mx3fb_blank(int blank, struct fb_info *fbi);
677 static int mx3fb_map_video_memory(struct fb_info *fbi, unsigned int mem_len,
679 static int mx3fb_unmap_video_memory(struct fb_info *fbi);
686 static int mx3fb_set_fix(struct fb_info *fbi)
688 struct fb_fix_screeninfo *fix = &fbi->fix;
689 struct fb_var_screeninfo *var = &fbi->var;
710 struct mx3fb_info *mx3_fbi = mx3fb->fbi->par;
720 static int __set_par(struct fb_info *fbi, bool lock)
725 struct mx3fb_info *mx3_fbi = fbi->par;
735 mx3fb_set_fix(fbi);
737 mem_len = fbi->var.yres_virtual * fbi->fix.line_length;
738 if (mem_len > fbi->fix.smem_len) {
739 if (fbi->fix.smem_start)
740 mx3fb_unmap_video_memory(fbi);
742 if (mx3fb_map_video_memory(fbi, mem_len, lock) < 0)
749 sg_dma_address(&sg[0]) = fbi->fix.smem_start;
750 sg_set_page(&sg[0], virt_to_page(fbi->screen_base),
751 fbi->fix.smem_len,
752 offset_in_page(fbi->screen_base));
756 if (fbi->var.sync & FB_SYNC_HOR_HIGH_ACT)
758 if (fbi->var.sync & FB_SYNC_VERT_HIGH_ACT)
760 if (fbi->var.sync & FB_SYNC_CLK_INVERT)
762 if (fbi->var.sync & FB_SYNC_DATA_INVERT)
764 if (fbi->var.sync & FB_SYNC_OE_ACT_HIGH)
766 if (fbi->var.sync & FB_SYNC_CLK_IDLE_EN)
768 if (fbi->var.sync & FB_SYNC_CLK_SEL_EN)
770 if (fbi->var.sync & FB_SYNC_SHARP_MODE)
773 dev_dbg(fbi->device, "pixclock = %ul Hz\n",
774 (u32) (PICOS2KHZ(fbi->var.pixclock) * 1000UL));
777 (PICOS2KHZ(fbi->var.pixclock)) * 1000UL,
778 fbi->var.xres, fbi->var.yres,
779 (fbi->var.sync & FB_SYNC_SWAP_RGB) ?
781 fbi->var.left_margin,
782 fbi->var.hsync_len,
783 fbi->var.right_margin +
784 fbi->var.hsync_len,
785 fbi->var.upper_margin,
786 fbi->var.vsync_len,
787 fbi->var.lower_margin +
788 fbi->var.vsync_len, sig_cfg) != 0) {
789 dev_err(fbi->device,
799 video->out_pixel_fmt = bpp_to_pixfmt(fbi->var.bits_per_pixel);
800 video->out_width = fbi->var.xres;
801 video->out_height = fbi->var.yres;
802 video->out_stride = fbi->var.xres_virtual;
812 * @fbi: framebuffer information pointer.
815 static int mx3fb_set_par(struct fb_info *fbi)
817 struct mx3fb_info *mx3_fbi = fbi->par;
826 ret = __set_par(fbi, true);
836 * @fbi: framebuffer information pointer
838 static int mx3fb_check_var(struct fb_var_screeninfo *var, struct fb_info *fbi)
840 struct mx3fb_info *mx3_fbi = fbi->par;
844 dev_dbg(fbi->device, "%s\n", __func__);
916 dev_dbg(fbi->device, "pixclock set for 60Hz refresh = %u ps\n",
940 unsigned int trans, struct fb_info *fbi)
942 struct mx3fb_info *mx3_fbi = fbi->par;
946 dev_dbg(fbi->device, "%s, regno = %u\n", __func__, regno);
953 if (fbi->var.grayscale)
956 switch (fbi->fix.visual) {
963 u32 *pal = fbi->pseudo_palette;
965 val = chan_to_field(red, &fbi->var.red);
966 val |= chan_to_field(green, &fbi->var.green);
967 val |= chan_to_field(blue, &fbi->var.blue);
984 static void __blank(int blank, struct fb_info *fbi)
986 struct mx3fb_info *mx3_fbi = fbi->par;
997 memset((char *)fbi->screen_base, 0, fbi->fix.smem_len);
1012 static int mx3fb_blank(int blank, struct fb_info *fbi)
1014 struct mx3fb_info *mx3_fbi = fbi->par;
1016 dev_dbg(fbi->device, "%s, blank = %d, base %p, len %u\n", __func__,
1017 blank, fbi->screen_base, fbi->fix.smem_len);
1023 __blank(blank, fbi);
1037 struct fb_info *fbi)
1039 struct mx3fb_info *mx3_fbi = fbi->par;
1049 dev_dbg(fbi->device, "%s [%c]\n", __func__,
1053 dev_dbg(fbi->device, "x panning not supported\n");
1057 if (fbi->var.xoffset == var->xoffset &&
1058 fbi->var.yoffset == var->yoffset)
1066 if (y_bottom > fbi->var.yres_virtual)
1073 base = fbi->fix.smem_start + offset;
1075 dev_dbg(fbi->device, "Updating SDC BG buf %d address=0x%08lX\n",
1089 dev_info(fbi->device, "Panning failed due to %s\n", ret < 0 ?
1099 virt_to_page(fbi->screen_base + offset), fbi->fix.smem_len,
1100 offset_in_page(fbi->screen_base + offset));
1108 dev_err(fbi->device,
1122 dev_dbg(fbi->device, "%d: Submit %p #%d\n", __LINE__, txd, cookie);
1124 dev_err(fbi->device,
1133 fbi->var.xoffset = var->xoffset;
1134 fbi->var.yoffset = var->yoffset;
1137 fbi->var.vmode |= FB_VMODE_YWRAP;
1139 fbi->var.vmode &= ~FB_VMODE_YWRAP;
1143 dev_dbg(fbi->device, "Update complete\n");
1177 struct mx3fb_info *mx3_fbi = mx3fb->fbi->par;
1180 fb_set_suspend(mx3fb->fbi, 1);
1197 struct mx3fb_info *mx3_fbi = mx3fb->fbi->par;
1205 fb_set_suspend(mx3fb->fbi, 0);
1221 * @fbi: framebuffer information pointer
1231 static int mx3fb_map_video_memory(struct fb_info *fbi, unsigned int mem_len,
1237 fbi->screen_base = dma_alloc_writecombine(fbi->device,
1241 if (!fbi->screen_base) {
1242 dev_err(fbi->device, "Cannot allocate %u bytes framebuffer memory\n",
1249 mutex_lock(&fbi->mm_lock);
1250 fbi->fix.smem_start = addr;
1251 fbi->fix.smem_len = mem_len;
1253 mutex_unlock(&fbi->mm_lock);
1255 dev_dbg(fbi->device, "allocated fb @ p=0x%08x, v=0x%p, size=%d.\n",
1256 (uint32_t) fbi->fix.smem_start, fbi->screen_base, fbi->fix.smem_len);
1258 fbi->screen_size = fbi->fix.smem_len;
1261 memset((char *)fbi->screen_base, 0, fbi->fix.smem_len);
1266 fbi->fix.smem_len = 0;
1267 fbi->fix.smem_start = 0;
1268 fbi->screen_base = NULL;
1274 * @fbi: framebuffer information pointer
1277 static int mx3fb_unmap_video_memory(struct fb_info *fbi)
1279 dma_free_writecombine(fbi->device, fbi->fix.smem_len,
1280 fbi->screen_base, fbi->fix.smem_start);
1282 fbi->screen_base = 0;
1283 mutex_lock(&fbi->mm_lock);
1284 fbi->fix.smem_start = 0;
1285 fbi->fix.smem_len = 0;
1286 mutex_unlock(&fbi->mm_lock);
1296 struct fb_info *fbi;
1301 fbi = framebuffer_alloc(sizeof(struct mx3fb_info), dev);
1302 if (!fbi)
1305 mx3fbi = fbi->par;
1309 fbi->var.activate = FB_ACTIVATE_NOW;
1311 fbi->fbops = ops;
1312 fbi->flags = FBINFO_FLAG_DEFAULT;
1313 fbi->pseudo_palette = mx3fbi->pseudo_palette;
1318 ret = fb_alloc_cmap(&fbi->cmap, 16, 0);
1320 framebuffer_release(fbi);
1324 return fbi;
1333 struct fb_info *fbi;
1344 fbi = mx3fb_init_fbinfo(dev, &mx3fb_ops);
1345 if (!fbi)
1364 if (!fb_find_mode(&fbi->var, fbi, fb_mode, mode,
1370 fb_videomode_to_modelist(mode, num_modes, &fbi->modelist);
1373 fbi->var.yres_virtual = fbi->var.yres * 2;
1375 mx3fb->fbi = fbi;
1385 mx3fbi = fbi->par;
1394 ret = __set_par(fbi, false);
1398 __blank(FB_BLANK_UNBLANK, fbi);
1402 ret = register_framebuffer(fbi);
1411 fb_dealloc_cmap(&fbi->cmap);
1412 framebuffer_release(fbi);
1433 static void release_fbi(struct fb_info *fbi)
1435 mx3fb_unmap_video_memory(fbi);
1437 fb_dealloc_cmap(&fbi->cmap);
1439 unregister_framebuffer(fbi);
1440 framebuffer_release(fbi);
1516 struct fb_info *fbi = mx3fb->fbi;
1517 struct mx3fb_info *mx3_fbi = fbi->par;
1521 release_fbi(fbi);