Lines Matching refs:info

96 static int rivafb_blank(int blank, struct fb_info *info);
274 struct fb_info *info = pci_get_drvdata(par->pdev);
279 nlevel = MIN_LEVEL + info->bl_curve[level] * LEVEL_STEP;
323 struct fb_info *info = pci_get_drvdata(par->pdev);
336 snprintf(name, sizeof(name), "rivabl%d", info->node);
341 bd = backlight_device_register(name, info->dev, par, &riva_bl_ops,
344 info->bl_dev = NULL;
349 info->bl_dev = bd;
350 fb_bl_default_curve(info, 0,
366 static void riva_bl_exit(struct fb_info *info)
368 struct backlight_device *bd = info->bl_dev;
375 static inline void riva_bl_exit(struct fb_info *info) {}
574 * @par: pointer to riva_par object containing info for current riva board
611 * @par: pointer to riva_par object containing info for current riva board
660 * @info: pointer to fb_info object containing info for current riva board
668 static int riva_load_video_mode(struct fb_info *info)
674 struct riva_par *par = info->par;
679 rivafb_blank(FB_BLANK_NORMAL, info);
681 bpp = info->var.bits_per_pixel;
682 if (bpp == 16 && info->var.green.length == 5)
684 width = info->var.xres_virtual;
685 hDisplaySize = info->var.xres;
687 hStart = (hDisplaySize + info->var.right_margin) / 8 - 1;
688 hEnd = (hDisplaySize + info->var.right_margin +
689 info->var.hsync_len) / 8 - 1;
690 hTotal = (hDisplaySize + info->var.right_margin +
691 info->var.hsync_len + info->var.left_margin) / 8 - 5;
695 height = info->var.yres_virtual;
696 vDisplay = info->var.yres - 1;
697 vStart = info->var.yres + info->var.lower_margin - 1;
698 vEnd = info->var.yres + info->var.lower_margin +
699 info->var.vsync_len - 1;
700 vTotal = info->var.yres + info->var.lower_margin +
701 info->var.vsync_len + info->var.upper_margin + 2;
704 dotClock = 1000000000 / info->var.pixclock;
708 if ((info->var.vmode & FB_VMODE_MASK) == FB_VMODE_INTERLACED)
760 if ((info->var.vmode & FB_VMODE_MASK) == FB_VMODE_INTERLACED) {
768 par->riva.CURSOR = (U032 __iomem *)(info->screen_base + par->riva.CursorStart);
770 if (info->var.sync & FB_SYNC_HOR_HIGH_ACT)
774 if (info->var.sync & FB_SYNC_VERT_HIGH_ACT)
816 rivafb_blank(FB_BLANK_UNBLANK, info);
845 * @info: pointer to fb_info object containing info for current riva board
860 static int rivafb_do_maximize(struct fb_info *info,
883 info->fix.smem_len)
899 var->xres_virtual = (info->fix.smem_len * den /
905 var->yres_virtual = info->fix.smem_len * den /
911 if (var->xres_virtual * nom / den * var->yres_virtual > info->fix.smem_len) {
974 static void riva_setup_accel(struct fb_info *info)
976 struct riva_par *par = info->par;
981 (info->var.xres_virtual & 0xffff) |
982 (info->var.yres_virtual << 16));
1027 static int rivafb_open(struct fb_info *info, int user)
1029 struct riva_par *par = info->par;
1054 static int rivafb_release(struct fb_info *info, int user)
1056 struct riva_par *par = info->par;
1079 static int rivafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
1082 struct riva_par *par = info->par;
1143 if (!info->monspecs.vfmax || !info->monspecs.hfmax ||
1144 !info->monspecs.dclkmax || !fb_validate_mode(var, info))
1149 if (!mode_valid && info->monspecs.gtf) {
1150 if (!fb_get_mode(FB_MAXTIMINGS, 0, var, info))
1155 mode = fb_find_best_mode(var, &info->modelist);
1162 if (!mode_valid && info->monspecs.modedb_len)
1169 if (rivafb_do_maximize(info, var, nom, den) < 0)
1187 static int rivafb_set_par(struct fb_info *info)
1189 struct riva_par *par = info->par;
1196 rc = riva_load_video_mode(info);
1199 if(!(info->flags & FBINFO_HWACCEL_DISABLED))
1200 riva_setup_accel(info);
1203 info->fix.line_length = (info->var.xres_virtual * (info->var.bits_per_pixel >> 3));
1204 info->fix.visual = (info->var.bits_per_pixel == 8) ?
1207 if (info->flags & FBINFO_HWACCEL_DISABLED)
1208 info->pixmap.scan_align = 1;
1210 info->pixmap.scan_align = 4;
1221 * @info: pointer to fb_info object containing info for current riva board
1231 struct fb_info *info)
1233 struct riva_par *par = info->par;
1237 base = var->yoffset * info->fix.line_length + var->xoffset;
1243 static int rivafb_blank(int blank, struct fb_info *info)
1245 struct riva_par *par= info->par;
1286 * @info: pointer to fb_info object containing info for current riva board
1300 struct fb_info *info)
1302 struct riva_par *par = info->par;
1306 if (regno >= riva_get_cmap_len(&info->var))
1309 if (info->var.grayscale) {
1315 if (regno < 16 && info->fix.visual == FB_VISUAL_DIRECTCOLOR) {
1316 ((u32 *) info->pseudo_palette)[regno] =
1317 (regno << info->var.red.offset) |
1318 (regno << info->var.green.offset) |
1319 (regno << info->var.blue.offset);
1325 switch (info->var.bits_per_pixel) {
1340 switch (info->var.bits_per_pixel) {
1346 if (info->var.green.length == 5) {
1379 * @info: pointer to fb_info structure
1389 static void rivafb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
1391 struct riva_par *par = info->par;
1394 if ((info->flags & FBINFO_HWACCEL_DISABLED)) {
1395 cfb_fillrect(info, rect);
1399 if (info->var.bits_per_pixel == 8)
1403 color = ((u32 *)info->pseudo_palette)[rect->color];
1436 * @info: pointer to fb_info structure
1445 static void rivafb_copyarea(struct fb_info *info, const struct fb_copyarea *region)
1447 struct riva_par *par = info->par;
1449 if ((info->flags & FBINFO_HWACCEL_DISABLED)) {
1450 cfb_copyarea(info, region);
1476 * @info: pointer to fb_info structure
1490 static void rivafb_imageblit(struct fb_info *info,
1493 struct riva_par *par = info->par;
1499 if ((info->flags & FBINFO_HWACCEL_DISABLED) || image->depth != 1) {
1500 cfb_imageblit(info, image);
1504 switch (info->var.bits_per_pixel) {
1512 fgx = ((u32 *)info->pseudo_palette)[image->fg_color];
1513 bgx = ((u32 *)info->pseudo_palette)[image->bg_color];
1518 if (info->var.green.length == 6)
1565 * @info: pointer to info structure
1576 static int rivafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
1578 struct riva_par *par = info->par;
1599 yy = cursor->image.dy - info->var.yoffset;
1600 xx = cursor->image.dx - info->var.xoffset;
1635 bg = ((info->cmap.red[bg_idx] & 0xf8) << 7) |
1636 ((info->cmap.green[bg_idx] & 0xf8) << 2) |
1637 ((info->cmap.blue[bg_idx] & 0xf8) >> 3) |
1640 fg = ((info->cmap.red[fg_idx] & 0xf8) << 7) |
1641 ((info->cmap.green[fg_idx] & 0xf8) << 2) |
1642 ((info->cmap.blue[fg_idx] & 0xf8) >> 3) |
1660 static int rivafb_sync(struct fb_info *info)
1662 struct riva_par *par = info->par;
1691 static int riva_set_fbinfo(struct fb_info *info)
1694 struct riva_par *par = info->par;
1697 info->flags = FBINFO_DEFAULT
1707 info->flags |= FBINFO_HWACCEL_DISABLED;
1710 info->var = rivafb_default_var;
1711 info->fix.visual = (info->var.bits_per_pixel == 8) ?
1714 info->pseudo_palette = par->pseudo_palette;
1716 cmap_len = riva_get_cmap_len(&info->var);
1717 fb_alloc_cmap(&info->cmap, cmap_len, 0);
1719 info->pixmap.size = 8 * 1024;
1720 info->pixmap.buf_align = 4;
1721 info->pixmap.access_align = 32;
1722 info->pixmap.flags = FB_PIXMAP_SYSTEM;
1723 info->var.yres_virtual = -1;
1725 return (rivafb_check_var(&info->var, info));
1728 static int riva_get_EDID_OF(struct fb_info *info, struct pci_dev *pd)
1730 struct riva_par *par = info->par;
1760 static int riva_get_EDID_i2c(struct fb_info *info)
1762 struct riva_par *par = info->par;
1785 struct fb_info *info)
1787 struct fb_monspecs *specs = &info->monspecs;
1793 fb_find_mode(var, info, mode_option,
1800 if (info->monspecs.misc & FB_MISC_1ST_DETAIL) {
1817 static void riva_get_EDID(struct fb_info *info, struct pci_dev *pdev)
1820 if (riva_get_EDID_OF(info, pdev)) {
1827 if (!riva_get_EDID_i2c(info))
1834 static void riva_get_edidinfo(struct fb_info *info)
1837 struct riva_par *par = info->par;
1839 fb_edid_to_monspecs(par->EDID, &info->monspecs);
1840 fb_videomode_to_modelist(info->monspecs.modedb, info->monspecs.modedb_len,
1841 &info->modelist);
1842 riva_update_default_var(var, info);
1845 if (info->monspecs.input & FB_DISP_DDI)
1896 struct fb_info *info;
1902 info = framebuffer_alloc(sizeof(struct riva_par), &pd->dev);
1903 if (!info) {
1907 default_par = info->par;
1910 info->pixmap.addr = kzalloc(8 * 1024, GFP_KERNEL);
1911 if (info->pixmap.addr == NULL) {
2007 info->screen_base = ioremap_wc(rivafb_fix.smem_start,
2009 if (!info->screen_base) {
2020 info->fbops = &riva_fb_ops;
2021 info->fix = rivafb_fix;
2022 riva_get_EDID(info, pd);
2023 riva_get_edidinfo(info);
2025 ret=riva_set_fbinfo(info);
2031 fb_destroy_modedb(info->monspecs.modedb);
2032 info->monspecs.modedb = NULL;
2034 pci_set_drvdata(pd, info);
2037 riva_bl_init(info->par);
2039 ret = register_framebuffer(info);
2048 info->fix.id,
2050 info->fix.smem_len / (1024 * 1024),
2051 info->fix.smem_start);
2058 riva_delete_i2c_busses(info->par);
2060 iounmap(info->screen_base);
2070 kfree(info->pixmap.addr);
2072 framebuffer_release(info);
2079 struct fb_info *info = pci_get_drvdata(pd);
2080 struct riva_par *par = info->par;
2089 unregister_framebuffer(info);
2091 riva_bl_exit(info);
2094 iounmap(info->screen_base);
2098 kfree(info->pixmap.addr);
2099 framebuffer_release(info);