Lines Matching refs:info
185 static void fbcon_set_disp(struct fb_info *info, struct fb_var_screeninfo *var,
189 static void fbcon_modechanged(struct fb_info *info);
190 static void fbcon_set_all_vcs(struct fb_info *info);
196 static inline void fbcon_set_rotation(struct fb_info *info) in fbcon_set_rotation() argument
198 struct fbcon_ops *ops = info->fbcon_par; in fbcon_set_rotation()
200 if (!(info->flags & FBINFO_MISC_TILEBLITTING) && in fbcon_set_rotation()
207 static void fbcon_rotate(struct fb_info *info, u32 rotate) in fbcon_rotate() argument
209 struct fbcon_ops *ops= info->fbcon_par; in fbcon_rotate()
217 if (info == fb_info) { in fbcon_rotate()
225 fbcon_modechanged(info); in fbcon_rotate()
229 static void fbcon_rotate_all(struct fb_info *info, u32 rotate) in fbcon_rotate_all() argument
231 struct fbcon_ops *ops = info->fbcon_par; in fbcon_rotate_all()
242 registered_fb[con2fb_map[i]] != info) in fbcon_rotate_all()
249 fbcon_set_all_vcs(info); in fbcon_rotate_all()
252 static inline void fbcon_set_rotation(struct fb_info *info) in fbcon_set_rotation() argument
254 struct fbcon_ops *ops = info->fbcon_par; in fbcon_set_rotation()
259 static void fbcon_rotate(struct fb_info *info, u32 rotate) in fbcon_rotate() argument
264 static void fbcon_rotate_all(struct fb_info *info, u32 rotate) in fbcon_rotate_all() argument
270 static int fbcon_get_rotate(struct fb_info *info) in fbcon_get_rotate() argument
272 struct fbcon_ops *ops = info->fbcon_par; in fbcon_get_rotate()
277 static inline int fbcon_is_inactive(struct vc_data *vc, struct fb_info *info) in fbcon_is_inactive() argument
279 struct fbcon_ops *ops = info->fbcon_par; in fbcon_is_inactive()
281 return (info->state != FBINFO_STATE_RUNNING || in fbcon_is_inactive()
286 static int get_color(struct vc_data *vc, struct fb_info *info, in get_color() argument
289 int depth = fb_get_color_depth(&info->var, &info->fix); in get_color()
305 int col = mono_col(info); in get_color()
307 int fg = (info->fix.visual != FB_VISUAL_MONO01) ? col : 0; in get_color()
308 int bg = (info->fix.visual != FB_VISUAL_MONO01) ? 0 : col; in get_color()
367 struct fb_info *info = container_of(work, struct fb_info, queue); in fb_flashcursor() local
368 struct fbcon_ops *ops = info->fbcon_par; in fb_flashcursor()
385 registered_fb[con2fb_map[vc->vc_num]] != info || in fb_flashcursor()
394 ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1), in fb_flashcursor()
395 get_color(vc, info, c, 0)); in fb_flashcursor()
401 struct fb_info *info = (struct fb_info *) dev_addr; in cursor_timer_handler() local
402 struct fbcon_ops *ops = info->fbcon_par; in cursor_timer_handler()
404 queue_work(system_power_efficient_wq, &info->queue); in cursor_timer_handler()
408 static void fbcon_add_cursor_timer(struct fb_info *info) in fbcon_add_cursor_timer() argument
410 struct fbcon_ops *ops = info->fbcon_par; in fbcon_add_cursor_timer()
412 if ((!info->queue.func || info->queue.func == fb_flashcursor) && in fbcon_add_cursor_timer()
415 if (!info->queue.func) in fbcon_add_cursor_timer()
416 INIT_WORK(&info->queue, fb_flashcursor); in fbcon_add_cursor_timer()
421 ops->cursor_timer.data = (unsigned long ) info; in fbcon_add_cursor_timer()
427 static void fbcon_del_cursor_timer(struct fb_info *info) in fbcon_del_cursor_timer() argument
429 struct fbcon_ops *ops = info->fbcon_par; in fbcon_del_cursor_timer()
431 if (info->queue.func == fb_flashcursor && in fbcon_del_cursor_timer()
556 static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info, in fbcon_prepare_logo() argument
562 static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info, in fbcon_prepare_logo() argument
566 struct fbcon_ops *ops = info->fbcon_par; in fbcon_prepare_logo()
571 if (info->flags & FBINFO_MODULE) { in fbcon_prepare_logo()
580 if (fb_get_color_depth(&info->var, &info->fix) == 1) in fbcon_prepare_logo()
582 logo_height = fb_prepare_logo(info, ops->rotate); in fbcon_prepare_logo()
649 static void set_blitting_type(struct vc_data *vc, struct fb_info *info) in set_blitting_type() argument
651 struct fbcon_ops *ops = info->fbcon_par; in set_blitting_type()
655 if ((info->flags & FBINFO_MISC_TILEBLITTING)) in set_blitting_type()
656 fbcon_set_tileops(vc, info); in set_blitting_type()
658 fbcon_set_rotation(info); in set_blitting_type()
663 static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) in fbcon_invalid_charcount() argument
667 if (info->flags & FBINFO_MISC_TILEBLITTING && in fbcon_invalid_charcount()
668 info->tileops->fb_get_tilemax(info) < charcount) in fbcon_invalid_charcount()
674 static void set_blitting_type(struct vc_data *vc, struct fb_info *info) in set_blitting_type() argument
676 struct fbcon_ops *ops = info->fbcon_par; in set_blitting_type()
678 info->flags &= ~FBINFO_MISC_TILEBLITTING; in set_blitting_type()
680 fbcon_set_rotation(info); in set_blitting_type()
684 static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) in fbcon_invalid_charcount() argument
692 static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, in con2fb_acquire_newinfo() argument
698 if (!try_module_get(info->fbops->owner)) in con2fb_acquire_newinfo()
701 if (!err && info->fbops->fb_open && in con2fb_acquire_newinfo()
702 info->fbops->fb_open(info, 0)) in con2fb_acquire_newinfo()
712 info->fbcon_par = ops; in con2fb_acquire_newinfo()
715 set_blitting_type(vc, info); in con2fb_acquire_newinfo()
720 module_put(info->fbops->owner); in con2fb_acquire_newinfo()
772 static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, in con2fb_init_display() argument
775 struct fbcon_ops *ops = info->fbcon_par; in con2fb_init_display()
780 if (info->fbops->fb_set_par && !(ops->flags & FBCON_FLAGS_INIT)) { in con2fb_init_display()
781 ret = info->fbops->fb_set_par(info); in con2fb_init_display()
791 fbcon_set_disp(info, &info->var, unit); in con2fb_init_display()
821 struct fb_info *info = registered_fb[newidx]; in set_con2fb_map() local
828 if (!info) in set_con2fb_map()
843 err = con2fb_acquire_newinfo(vc, info, unit, oldidx); in set_con2fb_map()
851 err = con2fb_release_oldinfo(vc, oldinfo, info, unit, oldidx, in set_con2fb_map()
859 fbcon_add_cursor_timer(info); in set_con2fb_map()
861 con2fb_init_display(vc, info, unit, show_logo); in set_con2fb_map()
876 struct fb_info *info) in var_to_display() argument
891 disp->mode = fb_match_mode(var, &info->modelist); in var_to_display()
924 struct fb_info *info = NULL; in fbcon_startup() local
938 info = registered_fb[info_idx]; in fbcon_startup()
939 if (!info) in fbcon_startup()
942 owner = info->fbops->owner; in fbcon_startup()
945 if (info->fbops->fb_open && info->fbops->fb_open(info, 0)) { in fbcon_startup()
959 info->fbcon_par = ops; in fbcon_startup()
961 set_blitting_type(vc, info); in fbcon_startup()
963 if (info->fix.type != FB_TYPE_TEXT) { in fbcon_startup()
991 font = get_default_font(info->var.xres, in fbcon_startup()
992 info->var.yres, in fbcon_startup()
993 info->pixmap.blit_x, in fbcon_startup()
994 info->pixmap.blit_y); in fbcon_startup()
1003 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_startup()
1004 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_startup()
1009 DPRINTK("mode: %s\n", info->fix.id); in fbcon_startup()
1010 DPRINTK("visual: %d\n", info->fix.visual); in fbcon_startup()
1011 DPRINTK("res: %dx%d-%d\n", info->var.xres, in fbcon_startup()
1012 info->var.yres, in fbcon_startup()
1013 info->var.bits_per_pixel); in fbcon_startup()
1015 fbcon_add_cursor_timer(info); in fbcon_startup()
1022 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_init() local
1030 if (info_idx == -1 || info == NULL) in fbcon_init()
1033 cap = info->flags; in fbcon_init()
1036 (info->fix.type == FB_TYPE_TEXT)) in fbcon_init()
1039 if (var_to_display(p, &info->var, info)) in fbcon_init()
1042 if (!info->fbcon_par) in fbcon_init()
1043 con2fb_acquire_newinfo(vc, info, vc->vc_num, -1); in fbcon_init()
1064 font = get_default_font(info->var.xres, in fbcon_init()
1065 info->var.yres, in fbcon_init()
1066 info->pixmap.blit_x, in fbcon_init()
1067 info->pixmap.blit_y); in fbcon_init()
1079 vc->vc_panic_force_write = !!(info->flags & FBINFO_CAN_FORCE_OUTPUT); in fbcon_init()
1080 vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); in fbcon_init()
1095 ops = info->fbcon_par; in fbcon_init()
1097 set_blitting_type(vc, info); in fbcon_init()
1101 new_cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_init()
1102 new_rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_init()
1114 if (info->fbops->fb_set_par && in fbcon_init()
1116 ret = info->fbops->fb_set_par(info); in fbcon_init()
1147 fbcon_prepare_logo(vc, info, cols, rows, new_cols, new_rows); in fbcon_init()
1152 if (ops->rotate_font && ops->rotate_font(info, vc)) { in fbcon_init()
1154 set_blitting_type(vc, info); in fbcon_init()
1171 struct fb_info *info; in fbcon_deinit() local
1181 info = registered_fb[idx]; in fbcon_deinit()
1183 if (!info) in fbcon_deinit()
1186 if (info->flags & FBINFO_MISC_FIRMWARE) in fbcon_deinit()
1188 ops = info->fbcon_par; in fbcon_deinit()
1194 fbcon_del_cursor_timer(info); in fbcon_deinit()
1237 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_clear() local
1238 struct fbcon_ops *ops = info->fbcon_par; in fbcon_clear()
1243 if (fbcon_is_inactive(vc, info)) in fbcon_clear()
1265 ops->clear(vc, info, real_y(p, sy), sx, b, width); in fbcon_clear()
1266 ops->clear(vc, info, real_y(p, sy + b), sx, height - b, in fbcon_clear()
1269 ops->clear(vc, info, real_y(p, sy), sx, height, width); in fbcon_clear()
1275 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_putcs() local
1277 struct fbcon_ops *ops = info->fbcon_par; in fbcon_putcs()
1279 if (!fbcon_is_inactive(vc, info)) in fbcon_putcs()
1280 ops->putcs(vc, info, s, count, real_y(p, ypos), xpos, in fbcon_putcs()
1281 get_color(vc, info, scr_readw(s), 1), in fbcon_putcs()
1282 get_color(vc, info, scr_readw(s), 0)); in fbcon_putcs()
1295 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_clear_margins() local
1296 struct fbcon_ops *ops = info->fbcon_par; in fbcon_clear_margins()
1298 if (!fbcon_is_inactive(vc, info)) in fbcon_clear_margins()
1299 ops->clear_margins(vc, info, bottom_only); in fbcon_clear_margins()
1304 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_cursor() local
1305 struct fbcon_ops *ops = info->fbcon_par; in fbcon_cursor()
1309 if (fbcon_is_inactive(vc, info) || vc->vc_deccm != 1) in fbcon_cursor()
1313 fbcon_del_cursor_timer(info); in fbcon_cursor()
1315 fbcon_add_cursor_timer(info); in fbcon_cursor()
1327 ops->cursor(vc, info, mode, y, get_color(vc, info, c, 1), in fbcon_cursor()
1328 get_color(vc, info, c, 0)); in fbcon_cursor()
1335 static void fbcon_set_disp(struct fb_info *info, struct fb_var_screeninfo *var, in fbcon_set_disp() argument
1341 struct fbcon_ops *ops = info->fbcon_par; in fbcon_set_disp()
1346 if (var_to_display(p, var, info)) in fbcon_set_disp()
1370 info->var.activate = var->activate; in fbcon_set_disp()
1371 var->yoffset = info->var.yoffset; in fbcon_set_disp()
1372 var->xoffset = info->var.xoffset; in fbcon_set_disp()
1373 fb_set_var(info, var); in fbcon_set_disp()
1374 ops->var = info->var; in fbcon_set_disp()
1375 vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); in fbcon_set_disp()
1390 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_set_disp()
1391 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_set_disp()
1405 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ywrap_up() local
1406 struct fbcon_ops *ops = info->fbcon_par; in ywrap_up()
1415 ops->update_start(info); in ywrap_up()
1424 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ywrap_down() local
1425 struct fbcon_ops *ops = info->fbcon_par; in ywrap_down()
1434 ops->update_start(info); in ywrap_down()
1443 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ypan_up() local
1445 struct fbcon_ops *ops = info->fbcon_par; in ypan_up()
1449 ops->bmove(vc, info, p->vrows - vc->vc_rows, in ypan_up()
1457 ops->update_start(info); in ypan_up()
1467 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ypan_up_redraw() local
1468 struct fbcon_ops *ops = info->fbcon_par; in ypan_up_redraw()
1481 ops->update_start(info); in ypan_up_redraw()
1491 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ypan_down() local
1493 struct fbcon_ops *ops = info->fbcon_par; in ypan_down()
1497 ops->bmove(vc, info, 0, 0, p->vrows - vc->vc_rows, in ypan_down()
1505 ops->update_start(info); in ypan_down()
1515 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ypan_down_redraw() local
1516 struct fbcon_ops *ops = info->fbcon_par; in ypan_down_redraw()
1529 ops->update_start(info); in ypan_down_redraw()
1664 static void fbcon_redraw_blit(struct vc_data *vc, struct fb_info *info, in fbcon_redraw_blit() argument
1671 struct fbcon_ops *ops = info->fbcon_par; in fbcon_redraw_blit()
1684 ops->bmove(vc, info, line + ycount, x, in fbcon_redraw_blit()
1700 ops->bmove(vc, info, line + ycount, x, line, x, 1, in fbcon_redraw_blit()
1797 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_scroll() local
1799 int scroll_partial = info->flags & FBINFO_PARTIAL_PAN_OK; in fbcon_scroll()
1801 if (fbcon_is_inactive(vc, info)) in fbcon_scroll()
1822 fbcon_redraw_blit(vc, info, p, t, b - t - count, in fbcon_scroll()
1843 } else if (info->flags & FBINFO_READS_FAST) in fbcon_scroll()
1884 } else if (info->flags & FBINFO_READS_FAST) in fbcon_scroll()
1913 fbcon_redraw_blit(vc, info, p, b - 1, b - t - count, in fbcon_scroll()
1934 } else if (info->flags & FBINFO_READS_FAST) in fbcon_scroll()
1956 } else if (info->flags & FBINFO_READS_FAST) in fbcon_scroll()
2001 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_bmove() local
2004 if (fbcon_is_inactive(vc, info)) in fbcon_bmove()
2024 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_bmove_rec() local
2025 struct fbcon_ops *ops = info->fbcon_par; in fbcon_bmove_rec()
2059 ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx, in fbcon_bmove_rec()
2064 struct fb_info *info, in updatescrollmode() argument
2067 struct fbcon_ops *ops = info->fbcon_par; in updatescrollmode()
2069 int cap = info->flags; in updatescrollmode()
2071 int ypan = FBCON_SWAP(ops->rotate, info->fix.ypanstep, in updatescrollmode()
2072 info->fix.xpanstep); in updatescrollmode()
2073 int ywrap = FBCON_SWAP(ops->rotate, info->fix.ywrapstep, t); in updatescrollmode()
2074 int yres = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in updatescrollmode()
2075 int vyres = FBCON_SWAP(ops->rotate, info->var.yres_virtual, in updatescrollmode()
2076 info->var.xres_virtual); in updatescrollmode()
2113 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_resize() local
2114 struct fbcon_ops *ops = info->fbcon_par; in fbcon_resize()
2116 struct fb_var_screeninfo var = info->var; in fbcon_resize()
2127 x_diff = info->var.xres - var.xres; in fbcon_resize()
2128 y_diff = info->var.yres - var.yres; in fbcon_resize()
2134 mode = fb_find_best_mode(&var, &info->modelist); in fbcon_resize()
2147 fb_set_var(info, &var); in fbcon_resize()
2149 var_to_display(p, &info->var, info); in fbcon_resize()
2150 ops->var = info->var; in fbcon_resize()
2152 updatescrollmode(p, info, vc); in fbcon_resize()
2158 struct fb_info *info, *old_info = NULL; in fbcon_switch() local
2164 info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_switch()
2165 ops = info->fbcon_par; in fbcon_switch()
2210 info->var.activate = var.activate; in fbcon_switch()
2211 var.vmode |= info->var.vmode & ~FB_VMODE_MASK; in fbcon_switch()
2212 fb_set_var(info, &var); in fbcon_switch()
2213 ops->var = info->var; in fbcon_switch()
2215 if (old_info != NULL && (old_info != info || in fbcon_switch()
2216 info->flags & FBINFO_MISC_ALWAYS_SETPAR)) { in fbcon_switch()
2217 if (info->fbops->fb_set_par) { in fbcon_switch()
2218 ret = info->fbops->fb_set_par(info); in fbcon_switch()
2226 if (old_info != info) in fbcon_switch()
2230 if (fbcon_is_inactive(vc, info) || in fbcon_switch()
2232 fbcon_del_cursor_timer(info); in fbcon_switch()
2234 fbcon_add_cursor_timer(info); in fbcon_switch()
2236 set_blitting_type(vc, info); in fbcon_switch()
2239 if (ops->rotate_font && ops->rotate_font(info, vc)) { in fbcon_switch()
2241 set_blitting_type(vc, info); in fbcon_switch()
2244 vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); in fbcon_switch()
2253 updatescrollmode(p, info, vc); in fbcon_switch()
2273 if (!fbcon_is_inactive(vc, info)) { in fbcon_switch()
2275 ops->update_start(info); in fbcon_switch()
2285 fb_show_logo(info, ops->rotate); in fbcon_switch()
2295 static void fbcon_generic_blank(struct vc_data *vc, struct fb_info *info, in fbcon_generic_blank() argument
2312 if (!lock_fb_info(info)) in fbcon_generic_blank()
2314 event.info = info; in fbcon_generic_blank()
2317 unlock_fb_info(info); in fbcon_generic_blank()
2322 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_blank() local
2323 struct fbcon_ops *ops = info->fbcon_par; in fbcon_blank()
2326 struct fb_var_screeninfo var = info->var; in fbcon_blank()
2332 fb_set_var(info, &var); in fbcon_blank()
2334 ops->var = info->var; in fbcon_blank()
2338 if (!fbcon_is_inactive(vc, info)) { in fbcon_blank()
2344 if (!(info->flags & FBINFO_MISC_USEREVENT)) in fbcon_blank()
2345 if (fb_blank(info, blank)) in fbcon_blank()
2346 fbcon_generic_blank(vc, info, blank); in fbcon_blank()
2353 if (mode_switch || fbcon_is_inactive(vc, info) || in fbcon_blank()
2355 fbcon_del_cursor_timer(info); in fbcon_blank()
2357 fbcon_add_cursor_timer(info); in fbcon_blank()
2364 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_debug_enter() local
2365 struct fbcon_ops *ops = info->fbcon_par; in fbcon_debug_enter()
2369 if (info->fbops->fb_debug_enter) in fbcon_debug_enter()
2370 info->fbops->fb_debug_enter(info); in fbcon_debug_enter()
2377 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_debug_leave() local
2378 struct fbcon_ops *ops = info->fbcon_par; in fbcon_debug_leave()
2381 if (info->fbops->fb_debug_leave) in fbcon_debug_leave()
2382 info->fbops->fb_debug_leave(info); in fbcon_debug_leave()
2440 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_do_set_font() local
2441 struct fbcon_ops *ops = info->fbcon_par; in fbcon_do_set_font()
2523 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_do_set_font()
2524 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_do_set_font()
2565 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_set_font() local
2580 if (!(info->pixmap.blit_x & (1 << (font->width - 1))) || in fbcon_set_font()
2581 !(info->pixmap.blit_y & (1 << (font->height - 1)))) in fbcon_set_font()
2585 if (fbcon_invalid_charcount(info, charcount)) in fbcon_set_font()
2628 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_set_def_font() local
2632 f = get_default_font(info->var.xres, info->var.yres, in fbcon_set_def_font()
2633 info->pixmap.blit_x, info->pixmap.blit_y); in fbcon_set_def_font()
2652 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_set_palette() local
2656 if (fbcon_is_inactive(vc, info)) in fbcon_set_palette()
2662 depth = fb_get_color_depth(&info->var, &info->fix); in fbcon_set_palette()
2682 return fb_set_cmap(&palette_cmap, info); in fbcon_set_palette()
2765 struct fb_info *info = registered_fb[con2fb_map[fg_console]]; in fbcon_scrolldelta() local
2766 struct fbcon_ops *ops = info->fbcon_par; in fbcon_scrolldelta()
2822 if (fbcon_is_inactive(vc, info)) in fbcon_scrolldelta()
2831 info->var.vmode |= FB_VMODE_YWRAP; in fbcon_scrolldelta()
2836 info->var.vmode &= ~FB_VMODE_YWRAP; in fbcon_scrolldelta()
2846 ops->update_start(info); in fbcon_scrolldelta()
2860 static void fbcon_suspended(struct fb_info *info) in fbcon_suspended() argument
2863 struct fbcon_ops *ops = info->fbcon_par; in fbcon_suspended()
2873 static void fbcon_resumed(struct fb_info *info) in fbcon_resumed() argument
2876 struct fbcon_ops *ops = info->fbcon_par; in fbcon_resumed()
2885 static void fbcon_modechanged(struct fb_info *info) in fbcon_modechanged() argument
2887 struct fbcon_ops *ops = info->fbcon_par; in fbcon_modechanged()
2896 registered_fb[con2fb_map[ops->currcon]] != info) in fbcon_modechanged()
2900 set_blitting_type(vc, info); in fbcon_modechanged()
2903 var_to_display(p, &info->var, info); in fbcon_modechanged()
2904 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_modechanged()
2905 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_modechanged()
2909 updatescrollmode(p, info, vc); in fbcon_modechanged()
2913 if (!fbcon_is_inactive(vc, info)) { in fbcon_modechanged()
2915 ops->update_start(info); in fbcon_modechanged()
2925 static void fbcon_set_all_vcs(struct fb_info *info) in fbcon_set_all_vcs() argument
2927 struct fbcon_ops *ops = info->fbcon_par; in fbcon_set_all_vcs()
2938 registered_fb[con2fb_map[i]] != info) in fbcon_set_all_vcs()
2947 set_blitting_type(vc, info); in fbcon_set_all_vcs()
2948 var_to_display(p, &info->var, info); in fbcon_set_all_vcs()
2949 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_set_all_vcs()
2950 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_set_all_vcs()
2957 fbcon_modechanged(info); in fbcon_set_all_vcs()
2960 static int fbcon_mode_deleted(struct fb_info *info, in fbcon_mode_deleted() argument
2973 if (fb_info != info) in fbcon_mode_deleted()
3028 struct fb_info *info = registered_fb[idx]; in fbcon_fb_unbind() local
3041 info, NULL, i, in fbcon_fb_unbind()
3057 static int fbcon_fb_unregistered(struct fb_info *info) in fbcon_fb_unregistered() argument
3061 idx = info->node; in fbcon_fb_unregistered()
3110 static void fbcon_select_primary(struct fb_info *info) in fbcon_select_primary() argument
3113 fb_is_primary_device(info)) { in fbcon_select_primary()
3117 info->fix.id, info->node); in fbcon_select_primary()
3118 primary_device = info->node; in fbcon_select_primary()
3125 "fb%i, to tty %i-%i\n", info->node, in fbcon_select_primary()
3133 static inline void fbcon_select_primary(struct fb_info *info) in fbcon_select_primary() argument
3140 static int fbcon_fb_registered(struct fb_info *info) in fbcon_fb_registered() argument
3144 idx = info->node; in fbcon_fb_registered()
3145 fbcon_select_primary(info); in fbcon_fb_registered()
3167 static void fbcon_fb_blanked(struct fb_info *info, int blank) in fbcon_fb_blanked() argument
3169 struct fbcon_ops *ops = info->fbcon_par; in fbcon_fb_blanked()
3177 registered_fb[con2fb_map[ops->currcon]] != info) in fbcon_fb_blanked()
3189 static void fbcon_new_modelist(struct fb_info *info) in fbcon_new_modelist() argument
3197 if (registered_fb[con2fb_map[i]] != info) in fbcon_new_modelist()
3204 &info->modelist); in fbcon_new_modelist()
3206 fbcon_set_disp(info, &var, vc->vc_num); in fbcon_new_modelist()
3210 static void fbcon_get_requirement(struct fb_info *info, in fbcon_get_requirement() argument
3222 info->node == con2fb_map[i]) { in fbcon_get_requirement()
3236 info->node == con2fb_map[fg_console]) { in fbcon_get_requirement()
3250 struct fb_info *info = event->info; in fbcon_event_notify() local
3266 fbcon_suspended(info); in fbcon_event_notify()
3269 fbcon_resumed(info); in fbcon_event_notify()
3272 fbcon_modechanged(info); in fbcon_event_notify()
3275 fbcon_set_all_vcs(info); in fbcon_event_notify()
3279 ret = fbcon_mode_deleted(info, mode); in fbcon_event_notify()
3282 idx = info->node; in fbcon_event_notify()
3286 ret = fbcon_fb_registered(info); in fbcon_event_notify()
3289 ret = fbcon_fb_unregistered(info); in fbcon_event_notify()
3302 fbcon_fb_blanked(info, *(int *)event->data); in fbcon_event_notify()
3305 fbcon_new_modelist(info); in fbcon_event_notify()
3309 fbcon_get_requirement(info, caps); in fbcon_event_notify()
3312 idx = info->node; in fbcon_event_notify()
3360 struct fb_info *info; in store_rotate() local
3373 info = registered_fb[idx]; in store_rotate()
3375 fbcon_rotate(info, rotate); in store_rotate()
3385 struct fb_info *info; in store_rotate_all() local
3398 info = registered_fb[idx]; in store_rotate_all()
3400 fbcon_rotate_all(info, rotate); in store_rotate_all()
3409 struct fb_info *info; in show_rotate() local
3421 info = registered_fb[idx]; in show_rotate()
3422 rotate = fbcon_get_rotate(info); in show_rotate()
3431 struct fb_info *info; in show_cursor_blink() local
3444 info = registered_fb[idx]; in show_cursor_blink()
3445 ops = info->fbcon_par; in show_cursor_blink()
3460 struct fb_info *info; in store_cursor_blink() local
3473 info = registered_fb[idx]; in store_cursor_blink()
3475 if (!info->fbcon_par) in store_cursor_blink()
3482 fbcon_add_cursor_timer(info); in store_cursor_blink()
3485 fbcon_del_cursor_timer(info); in store_cursor_blink()
3545 struct fb_info *info; in fbcon_exit() local
3558 info = registered_fb[i]; in fbcon_exit()
3560 if (info == NULL) in fbcon_exit()
3563 if (info->queue.func) in fbcon_exit()
3564 pending = cancel_work_sync(&info->queue); in fbcon_exit()
3576 if (info->fbops->fb_release) in fbcon_exit()
3577 info->fbops->fb_release(info, 0); in fbcon_exit()
3578 module_put(info->fbops->owner); in fbcon_exit()
3580 if (info->fbcon_par) { in fbcon_exit()
3581 struct fbcon_ops *ops = info->fbcon_par; in fbcon_exit()
3583 fbcon_del_cursor_timer(info); in fbcon_exit()
3586 kfree(info->fbcon_par); in fbcon_exit()
3587 info->fbcon_par = NULL; in fbcon_exit()
3590 if (info->queue.func == fb_flashcursor) in fbcon_exit()
3591 info->queue.func = NULL; in fbcon_exit()