Lines Matching refs:info
97 static int rivafb_blank(int blank, struct fb_info *info);
275 struct fb_info *info = pci_get_drvdata(par->pdev);
280 nlevel = MIN_LEVEL + info->bl_curve[level] * LEVEL_STEP;
318 struct fb_info *info = pci_get_drvdata(par->pdev);
331 snprintf(name, sizeof(name), "rivabl%d", info->node);
336 bd = backlight_device_register(name, info->device, par, &riva_bl_ops,
339 info->bl_dev = NULL;
344 info->bl_dev = bd;
345 fb_bl_default_curve(info, 0,
361 static void riva_bl_exit(struct fb_info *info)
363 struct backlight_device *bd = info->bl_dev;
370 static inline void riva_bl_exit(struct fb_info *info) {}
569 * @par: pointer to riva_par object containing info for current riva board
606 * @par: pointer to riva_par object containing info for current riva board
655 * @info: pointer to fb_info object containing info for current riva board
663 static int riva_load_video_mode(struct fb_info *info)
669 struct riva_par *par = info->par;
674 rivafb_blank(FB_BLANK_NORMAL, info);
676 bpp = info->var.bits_per_pixel;
677 if (bpp == 16 && info->var.green.length == 5)
679 width = info->var.xres_virtual;
680 hDisplaySize = info->var.xres;
682 hStart = (hDisplaySize + info->var.right_margin) / 8 - 1;
683 hEnd = (hDisplaySize + info->var.right_margin +
684 info->var.hsync_len) / 8 - 1;
685 hTotal = (hDisplaySize + info->var.right_margin +
686 info->var.hsync_len + info->var.left_margin) / 8 - 5;
690 height = info->var.yres_virtual;
691 vDisplay = info->var.yres - 1;
692 vStart = info->var.yres + info->var.lower_margin - 1;
693 vEnd = info->var.yres + info->var.lower_margin +
694 info->var.vsync_len - 1;
695 vTotal = info->var.yres + info->var.lower_margin +
696 info->var.vsync_len + info->var.upper_margin + 2;
699 dotClock = 1000000000 / info->var.pixclock;
703 if ((info->var.vmode & FB_VMODE_MASK) == FB_VMODE_INTERLACED)
755 if ((info->var.vmode & FB_VMODE_MASK) == FB_VMODE_INTERLACED) {
763 par->riva.CURSOR = (U032 __iomem *)(info->screen_base + par->riva.CursorStart);
765 if (info->var.sync & FB_SYNC_HOR_HIGH_ACT)
769 if (info->var.sync & FB_SYNC_VERT_HIGH_ACT)
811 rivafb_blank(FB_BLANK_UNBLANK, info);
840 * @info: pointer to fb_info object containing info for current riva board
855 static int rivafb_do_maximize(struct fb_info *info,
878 info->fix.smem_len)
894 var->xres_virtual = (info->fix.smem_len * den /
900 var->yres_virtual = info->fix.smem_len * den /
906 if (var->xres_virtual * nom / den * var->yres_virtual > info->fix.smem_len) {
969 static void riva_setup_accel(struct fb_info *info)
971 struct riva_par *par = info->par;
976 (info->var.xres_virtual & 0xffff) |
977 (info->var.yres_virtual << 16));
1022 static int rivafb_open(struct fb_info *info, int user)
1024 struct riva_par *par = info->par;
1049 static int rivafb_release(struct fb_info *info, int user)
1051 struct riva_par *par = info->par;
1074 static int rivafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
1077 struct riva_par *par = info->par;
1138 if (!info->monspecs.vfmax || !info->monspecs.hfmax ||
1139 !info->monspecs.dclkmax || !fb_validate_mode(var, info))
1144 if (!mode_valid && info->monspecs.gtf) {
1145 if (!fb_get_mode(FB_MAXTIMINGS, 0, var, info))
1150 mode = fb_find_best_mode(var, &info->modelist);
1157 if (!mode_valid && info->monspecs.modedb_len)
1164 if (rivafb_do_maximize(info, var, nom, den) < 0)
1182 static int rivafb_set_par(struct fb_info *info)
1184 struct riva_par *par = info->par;
1191 rc = riva_load_video_mode(info);
1194 if(!(info->flags & FBINFO_HWACCEL_DISABLED))
1195 riva_setup_accel(info);
1198 info->fix.line_length = (info->var.xres_virtual * (info->var.bits_per_pixel >> 3));
1199 info->fix.visual = (info->var.bits_per_pixel == 8) ?
1202 if (info->flags & FBINFO_HWACCEL_DISABLED)
1203 info->pixmap.scan_align = 1;
1205 info->pixmap.scan_align = 4;
1215 * @info: pointer to fb_info object containing info for current riva board
1225 struct fb_info *info)
1227 struct riva_par *par = info->par;
1231 base = var->yoffset * info->fix.line_length + var->xoffset;
1237 static int rivafb_blank(int blank, struct fb_info *info)
1239 struct riva_par *par= info->par;
1280 * @info: pointer to fb_info object containing info for current riva board
1294 struct fb_info *info)
1296 struct riva_par *par = info->par;
1300 if (regno >= riva_get_cmap_len(&info->var))
1303 if (info->var.grayscale) {
1309 if (regno < 16 && info->fix.visual == FB_VISUAL_DIRECTCOLOR) {
1310 ((u32 *) info->pseudo_palette)[regno] =
1311 (regno << info->var.red.offset) |
1312 (regno << info->var.green.offset) |
1313 (regno << info->var.blue.offset);
1319 switch (info->var.bits_per_pixel) {
1334 switch (info->var.bits_per_pixel) {
1340 if (info->var.green.length == 5) {
1373 * @info: pointer to fb_info structure
1383 static void rivafb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
1385 struct riva_par *par = info->par;
1388 if ((info->flags & FBINFO_HWACCEL_DISABLED)) {
1389 cfb_fillrect(info, rect);
1393 if (info->var.bits_per_pixel == 8)
1397 color = ((u32 *)info->pseudo_palette)[rect->color];
1430 * @info: pointer to fb_info structure
1439 static void rivafb_copyarea(struct fb_info *info, const struct fb_copyarea *region)
1441 struct riva_par *par = info->par;
1443 if ((info->flags & FBINFO_HWACCEL_DISABLED)) {
1444 cfb_copyarea(info, region);
1470 * @info: pointer to fb_info structure
1484 static void rivafb_imageblit(struct fb_info *info,
1487 struct riva_par *par = info->par;
1493 if ((info->flags & FBINFO_HWACCEL_DISABLED) || image->depth != 1) {
1494 cfb_imageblit(info, image);
1498 switch (info->var.bits_per_pixel) {
1506 fgx = ((u32 *)info->pseudo_palette)[image->fg_color];
1507 bgx = ((u32 *)info->pseudo_palette)[image->bg_color];
1512 if (info->var.green.length == 6)
1559 * @info: pointer to info structure
1570 static int rivafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
1572 struct riva_par *par = info->par;
1593 yy = cursor->image.dy - info->var.yoffset;
1594 xx = cursor->image.dx - info->var.xoffset;
1629 bg = ((info->cmap.red[bg_idx] & 0xf8) << 7) |
1630 ((info->cmap.green[bg_idx] & 0xf8) << 2) |
1631 ((info->cmap.blue[bg_idx] & 0xf8) >> 3) |
1634 fg = ((info->cmap.red[fg_idx] & 0xf8) << 7) |
1635 ((info->cmap.green[fg_idx] & 0xf8) << 2) |
1636 ((info->cmap.blue[fg_idx] & 0xf8) >> 3) |
1654 static int rivafb_sync(struct fb_info *info)
1656 struct riva_par *par = info->par;
1685 static int riva_set_fbinfo(struct fb_info *info)
1688 struct riva_par *par = info->par;
1691 info->flags = FBINFO_HWACCEL_XPAN
1700 info->flags |= FBINFO_HWACCEL_DISABLED;
1703 info->var = rivafb_default_var;
1704 info->fix.visual = (info->var.bits_per_pixel == 8) ?
1707 info->pseudo_palette = par->pseudo_palette;
1709 cmap_len = riva_get_cmap_len(&info->var);
1710 fb_alloc_cmap(&info->cmap, cmap_len, 0);
1712 info->pixmap.size = 8 * 1024;
1713 info->pixmap.buf_align = 4;
1714 info->pixmap.access_align = 32;
1715 info->pixmap.flags = FB_PIXMAP_SYSTEM;
1716 info->var.yres_virtual = -1;
1718 return (rivafb_check_var(&info->var, info));
1721 static int riva_get_EDID_OF(struct fb_info *info, struct pci_dev *pd)
1723 struct riva_par *par = info->par;
1753 static int riva_get_EDID_i2c(struct fb_info *info)
1755 struct riva_par *par = info->par;
1778 struct fb_info *info)
1780 struct fb_monspecs *specs = &info->monspecs;
1786 fb_find_mode(var, info, mode_option,
1793 if (info->monspecs.misc & FB_MISC_1ST_DETAIL) {
1810 static void riva_get_EDID(struct fb_info *info, struct pci_dev *pdev)
1813 if (riva_get_EDID_OF(info, pdev)) {
1820 if (!riva_get_EDID_i2c(info))
1827 static void riva_get_edidinfo(struct fb_info *info)
1830 struct riva_par *par = info->par;
1832 fb_edid_to_monspecs(par->EDID, &info->monspecs);
1833 fb_videomode_to_modelist(info->monspecs.modedb, info->monspecs.modedb_len,
1834 &info->modelist);
1835 riva_update_default_var(var, info);
1838 if (info->monspecs.input & FB_DISP_DDI)
1889 struct fb_info *info;
1899 info = framebuffer_alloc(sizeof(struct riva_par), &pd->dev);
1900 if (!info) {
1904 default_par = info->par;
1907 info->pixmap.addr = kzalloc(8 * 1024, GFP_KERNEL);
1908 if (info->pixmap.addr == NULL) {
2004 info->screen_base = ioremap_wc(rivafb_fix.smem_start,
2006 if (!info->screen_base) {
2017 info->fbops = &riva_fb_ops;
2018 info->fix = rivafb_fix;
2019 riva_get_EDID(info, pd);
2020 riva_get_edidinfo(info);
2022 ret=riva_set_fbinfo(info);
2028 fb_destroy_modedb(info->monspecs.modedb);
2029 info->monspecs.modedb = NULL;
2031 pci_set_drvdata(pd, info);
2033 ret = register_framebuffer(info);
2041 riva_bl_init(info->par);
2045 info->fix.id,
2047 info->fix.smem_len / (1024 * 1024),
2048 info->fix.smem_start);
2055 riva_delete_i2c_busses(info->par);
2057 iounmap(info->screen_base);
2067 kfree(info->pixmap.addr);
2069 framebuffer_release(info);
2076 struct fb_info *info = pci_get_drvdata(pd);
2077 struct riva_par *par = info->par;
2086 riva_bl_exit(info);
2087 unregister_framebuffer(info);
2091 iounmap(info->screen_base);
2095 kfree(info->pixmap.addr);
2096 framebuffer_release(info);