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()
713 info->fbcon_par = ops; in con2fb_acquire_newinfo()
716 set_blitting_type(vc, info); in con2fb_acquire_newinfo()
721 module_put(info->fbops->owner); in con2fb_acquire_newinfo()
773 static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, in con2fb_init_display() argument
776 struct fbcon_ops *ops = info->fbcon_par; in con2fb_init_display()
781 if (info->fbops->fb_set_par && !(ops->flags & FBCON_FLAGS_INIT)) { in con2fb_init_display()
782 ret = info->fbops->fb_set_par(info); in con2fb_init_display()
792 fbcon_set_disp(info, &info->var, unit); in con2fb_init_display()
822 struct fb_info *info = registered_fb[newidx]; in set_con2fb_map() local
829 if (!info) in set_con2fb_map()
844 err = con2fb_acquire_newinfo(vc, info, unit, oldidx); in set_con2fb_map()
852 err = con2fb_release_oldinfo(vc, oldinfo, info, unit, oldidx, in set_con2fb_map()
860 fbcon_add_cursor_timer(info); in set_con2fb_map()
862 con2fb_init_display(vc, info, unit, show_logo); in set_con2fb_map()
877 struct fb_info *info) in var_to_display() argument
892 disp->mode = fb_match_mode(var, &info->modelist); in var_to_display()
925 struct fb_info *info = NULL; in fbcon_startup() local
939 info = registered_fb[info_idx]; in fbcon_startup()
940 if (!info) in fbcon_startup()
943 owner = info->fbops->owner; in fbcon_startup()
946 if (info->fbops->fb_open && info->fbops->fb_open(info, 0)) { in fbcon_startup()
961 info->fbcon_par = ops; in fbcon_startup()
963 set_blitting_type(vc, info); in fbcon_startup()
965 if (info->fix.type != FB_TYPE_TEXT) { in fbcon_startup()
993 font = get_default_font(info->var.xres, in fbcon_startup()
994 info->var.yres, in fbcon_startup()
995 info->pixmap.blit_x, in fbcon_startup()
996 info->pixmap.blit_y); in fbcon_startup()
1005 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_startup()
1006 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_startup()
1011 DPRINTK("mode: %s\n", info->fix.id); in fbcon_startup()
1012 DPRINTK("visual: %d\n", info->fix.visual); in fbcon_startup()
1013 DPRINTK("res: %dx%d-%d\n", info->var.xres, in fbcon_startup()
1014 info->var.yres, in fbcon_startup()
1015 info->var.bits_per_pixel); in fbcon_startup()
1017 fbcon_add_cursor_timer(info); in fbcon_startup()
1024 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_init() local
1032 if (info_idx == -1 || info == NULL) in fbcon_init()
1035 cap = info->flags; in fbcon_init()
1038 (info->fix.type == FB_TYPE_TEXT)) in fbcon_init()
1041 if (var_to_display(p, &info->var, info)) in fbcon_init()
1044 if (!info->fbcon_par) in fbcon_init()
1045 con2fb_acquire_newinfo(vc, info, vc->vc_num, -1); in fbcon_init()
1066 font = get_default_font(info->var.xres, in fbcon_init()
1067 info->var.yres, in fbcon_init()
1068 info->pixmap.blit_x, in fbcon_init()
1069 info->pixmap.blit_y); in fbcon_init()
1081 vc->vc_panic_force_write = !!(info->flags & FBINFO_CAN_FORCE_OUTPUT); in fbcon_init()
1082 vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); in fbcon_init()
1097 ops = info->fbcon_par; in fbcon_init()
1100 set_blitting_type(vc, info); in fbcon_init()
1104 new_cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_init()
1105 new_rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_init()
1117 if (info->fbops->fb_set_par && in fbcon_init()
1119 ret = info->fbops->fb_set_par(info); in fbcon_init()
1150 fbcon_prepare_logo(vc, info, cols, rows, new_cols, new_rows); in fbcon_init()
1155 if (ops->rotate_font && ops->rotate_font(info, vc)) { in fbcon_init()
1157 set_blitting_type(vc, info); in fbcon_init()
1174 struct fb_info *info; in fbcon_deinit() local
1184 info = registered_fb[idx]; in fbcon_deinit()
1186 if (!info) in fbcon_deinit()
1189 if (info->flags & FBINFO_MISC_FIRMWARE) in fbcon_deinit()
1191 ops = info->fbcon_par; in fbcon_deinit()
1197 fbcon_del_cursor_timer(info); in fbcon_deinit()
1240 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_clear() local
1241 struct fbcon_ops *ops = info->fbcon_par; in fbcon_clear()
1246 if (fbcon_is_inactive(vc, info)) in fbcon_clear()
1268 ops->clear(vc, info, real_y(p, sy), sx, b, width); in fbcon_clear()
1269 ops->clear(vc, info, real_y(p, sy + b), sx, height - b, in fbcon_clear()
1272 ops->clear(vc, info, real_y(p, sy), sx, height, width); in fbcon_clear()
1278 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_putcs() local
1280 struct fbcon_ops *ops = info->fbcon_par; in fbcon_putcs()
1282 if (!fbcon_is_inactive(vc, info)) in fbcon_putcs()
1283 ops->putcs(vc, info, s, count, real_y(p, ypos), xpos, in fbcon_putcs()
1284 get_color(vc, info, scr_readw(s), 1), in fbcon_putcs()
1285 get_color(vc, info, scr_readw(s), 0)); in fbcon_putcs()
1298 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_clear_margins() local
1299 struct fbcon_ops *ops = info->fbcon_par; in fbcon_clear_margins()
1301 if (!fbcon_is_inactive(vc, info)) in fbcon_clear_margins()
1302 ops->clear_margins(vc, info, bottom_only); in fbcon_clear_margins()
1307 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_cursor() local
1308 struct fbcon_ops *ops = info->fbcon_par; in fbcon_cursor()
1314 if (fbcon_is_inactive(vc, info) || vc->vc_deccm != 1) in fbcon_cursor()
1318 fbcon_del_cursor_timer(info); in fbcon_cursor()
1320 fbcon_add_cursor_timer(info); in fbcon_cursor()
1332 ops->cursor(vc, info, mode, y, get_color(vc, info, c, 1), in fbcon_cursor()
1333 get_color(vc, info, c, 0)); in fbcon_cursor()
1340 static void fbcon_set_disp(struct fb_info *info, struct fb_var_screeninfo *var, in fbcon_set_disp() argument
1346 struct fbcon_ops *ops = info->fbcon_par; in fbcon_set_disp()
1351 if (var_to_display(p, var, info)) in fbcon_set_disp()
1375 info->var.activate = var->activate; in fbcon_set_disp()
1376 var->yoffset = info->var.yoffset; in fbcon_set_disp()
1377 var->xoffset = info->var.xoffset; in fbcon_set_disp()
1378 fb_set_var(info, var); in fbcon_set_disp()
1379 ops->var = info->var; in fbcon_set_disp()
1380 vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); in fbcon_set_disp()
1395 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_set_disp()
1396 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_set_disp()
1410 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ywrap_up() local
1411 struct fbcon_ops *ops = info->fbcon_par; in ywrap_up()
1420 ops->update_start(info); in ywrap_up()
1429 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ywrap_down() local
1430 struct fbcon_ops *ops = info->fbcon_par; in ywrap_down()
1439 ops->update_start(info); in ywrap_down()
1448 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ypan_up() local
1450 struct fbcon_ops *ops = info->fbcon_par; in ypan_up()
1454 ops->bmove(vc, info, p->vrows - vc->vc_rows, in ypan_up()
1462 ops->update_start(info); in ypan_up()
1472 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ypan_up_redraw() local
1473 struct fbcon_ops *ops = info->fbcon_par; in ypan_up_redraw()
1486 ops->update_start(info); in ypan_up_redraw()
1496 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ypan_down() local
1498 struct fbcon_ops *ops = info->fbcon_par; in ypan_down()
1502 ops->bmove(vc, info, 0, 0, p->vrows - vc->vc_rows, in ypan_down()
1510 ops->update_start(info); in ypan_down()
1520 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in ypan_down_redraw() local
1521 struct fbcon_ops *ops = info->fbcon_par; in ypan_down_redraw()
1534 ops->update_start(info); in ypan_down_redraw()
1669 static void fbcon_redraw_blit(struct vc_data *vc, struct fb_info *info, in fbcon_redraw_blit() argument
1676 struct fbcon_ops *ops = info->fbcon_par; in fbcon_redraw_blit()
1689 ops->bmove(vc, info, line + ycount, x, in fbcon_redraw_blit()
1705 ops->bmove(vc, info, line + ycount, x, line, x, 1, in fbcon_redraw_blit()
1802 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_scroll() local
1804 int scroll_partial = info->flags & FBINFO_PARTIAL_PAN_OK; in fbcon_scroll()
1806 if (fbcon_is_inactive(vc, info)) in fbcon_scroll()
1827 fbcon_redraw_blit(vc, info, p, t, b - t - count, in fbcon_scroll()
1848 } else if (info->flags & FBINFO_READS_FAST) in fbcon_scroll()
1889 } else if (info->flags & FBINFO_READS_FAST) in fbcon_scroll()
1918 fbcon_redraw_blit(vc, info, p, b - 1, b - t - count, in fbcon_scroll()
1939 } else if (info->flags & FBINFO_READS_FAST) in fbcon_scroll()
1961 } else if (info->flags & FBINFO_READS_FAST) in fbcon_scroll()
2006 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_bmove() local
2009 if (fbcon_is_inactive(vc, info)) in fbcon_bmove()
2029 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_bmove_rec() local
2030 struct fbcon_ops *ops = info->fbcon_par; in fbcon_bmove_rec()
2064 ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx, in fbcon_bmove_rec()
2069 struct fb_info *info, in updatescrollmode() argument
2072 struct fbcon_ops *ops = info->fbcon_par; in updatescrollmode()
2074 int cap = info->flags; in updatescrollmode()
2076 int ypan = FBCON_SWAP(ops->rotate, info->fix.ypanstep, in updatescrollmode()
2077 info->fix.xpanstep); in updatescrollmode()
2078 int ywrap = FBCON_SWAP(ops->rotate, info->fix.ywrapstep, t); in updatescrollmode()
2079 int yres = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in updatescrollmode()
2080 int vyres = FBCON_SWAP(ops->rotate, info->var.yres_virtual, in updatescrollmode()
2081 info->var.xres_virtual); in updatescrollmode()
2118 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_resize() local
2119 struct fbcon_ops *ops = info->fbcon_par; in fbcon_resize()
2121 struct fb_var_screeninfo var = info->var; in fbcon_resize()
2132 x_diff = info->var.xres - var.xres; in fbcon_resize()
2133 y_diff = info->var.yres - var.yres; in fbcon_resize()
2139 mode = fb_find_best_mode(&var, &info->modelist); in fbcon_resize()
2152 fb_set_var(info, &var); in fbcon_resize()
2154 var_to_display(p, &info->var, info); in fbcon_resize()
2155 ops->var = info->var; in fbcon_resize()
2157 updatescrollmode(p, info, vc); in fbcon_resize()
2163 struct fb_info *info, *old_info = NULL; in fbcon_switch() local
2169 info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_switch()
2170 ops = info->fbcon_par; in fbcon_switch()
2215 info->var.activate = var.activate; in fbcon_switch()
2216 var.vmode |= info->var.vmode & ~FB_VMODE_MASK; in fbcon_switch()
2217 fb_set_var(info, &var); in fbcon_switch()
2218 ops->var = info->var; in fbcon_switch()
2220 if (old_info != NULL && (old_info != info || in fbcon_switch()
2221 info->flags & FBINFO_MISC_ALWAYS_SETPAR)) { in fbcon_switch()
2222 if (info->fbops->fb_set_par) { in fbcon_switch()
2223 ret = info->fbops->fb_set_par(info); in fbcon_switch()
2231 if (old_info != info) in fbcon_switch()
2235 if (fbcon_is_inactive(vc, info) || in fbcon_switch()
2237 fbcon_del_cursor_timer(info); in fbcon_switch()
2239 fbcon_add_cursor_timer(info); in fbcon_switch()
2241 set_blitting_type(vc, info); in fbcon_switch()
2244 if (ops->rotate_font && ops->rotate_font(info, vc)) { in fbcon_switch()
2246 set_blitting_type(vc, info); in fbcon_switch()
2249 vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); in fbcon_switch()
2258 updatescrollmode(p, info, vc); in fbcon_switch()
2278 if (!fbcon_is_inactive(vc, info)) { in fbcon_switch()
2280 ops->update_start(info); in fbcon_switch()
2290 fb_show_logo(info, ops->rotate); in fbcon_switch()
2300 static void fbcon_generic_blank(struct vc_data *vc, struct fb_info *info, in fbcon_generic_blank() argument
2317 if (!lock_fb_info(info)) in fbcon_generic_blank()
2319 event.info = info; in fbcon_generic_blank()
2322 unlock_fb_info(info); in fbcon_generic_blank()
2327 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_blank() local
2328 struct fbcon_ops *ops = info->fbcon_par; in fbcon_blank()
2331 struct fb_var_screeninfo var = info->var; in fbcon_blank()
2337 fb_set_var(info, &var); in fbcon_blank()
2339 ops->var = info->var; in fbcon_blank()
2343 if (!fbcon_is_inactive(vc, info)) { in fbcon_blank()
2349 if (!(info->flags & FBINFO_MISC_USEREVENT)) in fbcon_blank()
2350 if (fb_blank(info, blank)) in fbcon_blank()
2351 fbcon_generic_blank(vc, info, blank); in fbcon_blank()
2358 if (mode_switch || fbcon_is_inactive(vc, info) || in fbcon_blank()
2360 fbcon_del_cursor_timer(info); in fbcon_blank()
2362 fbcon_add_cursor_timer(info); in fbcon_blank()
2369 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_debug_enter() local
2370 struct fbcon_ops *ops = info->fbcon_par; in fbcon_debug_enter()
2374 if (info->fbops->fb_debug_enter) in fbcon_debug_enter()
2375 info->fbops->fb_debug_enter(info); in fbcon_debug_enter()
2382 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_debug_leave() local
2383 struct fbcon_ops *ops = info->fbcon_par; in fbcon_debug_leave()
2386 if (info->fbops->fb_debug_leave) in fbcon_debug_leave()
2387 info->fbops->fb_debug_leave(info); in fbcon_debug_leave()
2445 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_do_set_font() local
2446 struct fbcon_ops *ops = info->fbcon_par; in fbcon_do_set_font()
2528 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_do_set_font()
2529 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_do_set_font()
2570 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_set_font() local
2585 if (!(info->pixmap.blit_x & (1 << (font->width - 1))) || in fbcon_set_font()
2586 !(info->pixmap.blit_y & (1 << (font->height - 1)))) in fbcon_set_font()
2590 if (fbcon_invalid_charcount(info, charcount)) in fbcon_set_font()
2633 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_set_def_font() local
2637 f = get_default_font(info->var.xres, info->var.yres, in fbcon_set_def_font()
2638 info->pixmap.blit_x, info->pixmap.blit_y); in fbcon_set_def_font()
2657 struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; in fbcon_set_palette() local
2661 if (fbcon_is_inactive(vc, info)) in fbcon_set_palette()
2667 depth = fb_get_color_depth(&info->var, &info->fix); in fbcon_set_palette()
2687 return fb_set_cmap(&palette_cmap, info); in fbcon_set_palette()
2770 struct fb_info *info = registered_fb[con2fb_map[fg_console]]; in fbcon_scrolldelta() local
2771 struct fbcon_ops *ops = info->fbcon_par; in fbcon_scrolldelta()
2827 if (fbcon_is_inactive(vc, info)) in fbcon_scrolldelta()
2836 info->var.vmode |= FB_VMODE_YWRAP; in fbcon_scrolldelta()
2841 info->var.vmode &= ~FB_VMODE_YWRAP; in fbcon_scrolldelta()
2851 ops->update_start(info); in fbcon_scrolldelta()
2865 static void fbcon_suspended(struct fb_info *info) in fbcon_suspended() argument
2868 struct fbcon_ops *ops = info->fbcon_par; in fbcon_suspended()
2878 static void fbcon_resumed(struct fb_info *info) in fbcon_resumed() argument
2881 struct fbcon_ops *ops = info->fbcon_par; in fbcon_resumed()
2890 static void fbcon_modechanged(struct fb_info *info) in fbcon_modechanged() argument
2892 struct fbcon_ops *ops = info->fbcon_par; in fbcon_modechanged()
2901 registered_fb[con2fb_map[ops->currcon]] != info) in fbcon_modechanged()
2905 set_blitting_type(vc, info); in fbcon_modechanged()
2908 var_to_display(p, &info->var, info); in fbcon_modechanged()
2909 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_modechanged()
2910 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_modechanged()
2914 updatescrollmode(p, info, vc); in fbcon_modechanged()
2918 if (!fbcon_is_inactive(vc, info)) { in fbcon_modechanged()
2920 ops->update_start(info); in fbcon_modechanged()
2930 static void fbcon_set_all_vcs(struct fb_info *info) in fbcon_set_all_vcs() argument
2932 struct fbcon_ops *ops = info->fbcon_par; in fbcon_set_all_vcs()
2943 registered_fb[con2fb_map[i]] != info) in fbcon_set_all_vcs()
2952 set_blitting_type(vc, info); in fbcon_set_all_vcs()
2953 var_to_display(p, &info->var, info); in fbcon_set_all_vcs()
2954 cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); in fbcon_set_all_vcs()
2955 rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); in fbcon_set_all_vcs()
2962 fbcon_modechanged(info); in fbcon_set_all_vcs()
2965 static int fbcon_mode_deleted(struct fb_info *info, in fbcon_mode_deleted() argument
2978 if (fb_info != info) in fbcon_mode_deleted()
3033 struct fb_info *info = registered_fb[idx]; in fbcon_fb_unbind() local
3046 info, NULL, i, in fbcon_fb_unbind()
3062 static int fbcon_fb_unregistered(struct fb_info *info) in fbcon_fb_unregistered() argument
3066 idx = info->node; in fbcon_fb_unregistered()
3115 static void fbcon_select_primary(struct fb_info *info) in fbcon_select_primary() argument
3118 fb_is_primary_device(info)) { in fbcon_select_primary()
3122 info->fix.id, info->node); in fbcon_select_primary()
3123 primary_device = info->node; in fbcon_select_primary()
3130 "fb%i, to tty %i-%i\n", info->node, in fbcon_select_primary()
3138 static inline void fbcon_select_primary(struct fb_info *info) in fbcon_select_primary() argument
3145 static int fbcon_fb_registered(struct fb_info *info) in fbcon_fb_registered() argument
3149 idx = info->node; in fbcon_fb_registered()
3150 fbcon_select_primary(info); in fbcon_fb_registered()
3172 static void fbcon_fb_blanked(struct fb_info *info, int blank) in fbcon_fb_blanked() argument
3174 struct fbcon_ops *ops = info->fbcon_par; in fbcon_fb_blanked()
3182 registered_fb[con2fb_map[ops->currcon]] != info) in fbcon_fb_blanked()
3194 static void fbcon_new_modelist(struct fb_info *info) in fbcon_new_modelist() argument
3202 if (registered_fb[con2fb_map[i]] != info) in fbcon_new_modelist()
3209 &info->modelist); in fbcon_new_modelist()
3211 fbcon_set_disp(info, &var, vc->vc_num); in fbcon_new_modelist()
3215 static void fbcon_get_requirement(struct fb_info *info, in fbcon_get_requirement() argument
3227 info->node == con2fb_map[i]) { in fbcon_get_requirement()
3241 info->node == con2fb_map[fg_console]) { in fbcon_get_requirement()
3255 struct fb_info *info = event->info; in fbcon_event_notify() local
3271 fbcon_suspended(info); in fbcon_event_notify()
3274 fbcon_resumed(info); in fbcon_event_notify()
3277 fbcon_modechanged(info); in fbcon_event_notify()
3280 fbcon_set_all_vcs(info); in fbcon_event_notify()
3284 ret = fbcon_mode_deleted(info, mode); in fbcon_event_notify()
3287 idx = info->node; in fbcon_event_notify()
3291 ret = fbcon_fb_registered(info); in fbcon_event_notify()
3294 ret = fbcon_fb_unregistered(info); in fbcon_event_notify()
3307 fbcon_fb_blanked(info, *(int *)event->data); in fbcon_event_notify()
3310 fbcon_new_modelist(info); in fbcon_event_notify()
3314 fbcon_get_requirement(info, caps); in fbcon_event_notify()
3317 idx = info->node; in fbcon_event_notify()
3365 struct fb_info *info; in store_rotate() local
3378 info = registered_fb[idx]; in store_rotate()
3380 fbcon_rotate(info, rotate); in store_rotate()
3390 struct fb_info *info; in store_rotate_all() local
3403 info = registered_fb[idx]; in store_rotate_all()
3405 fbcon_rotate_all(info, rotate); in store_rotate_all()
3414 struct fb_info *info; in show_rotate() local
3426 info = registered_fb[idx]; in show_rotate()
3427 rotate = fbcon_get_rotate(info); in show_rotate()
3436 struct fb_info *info; in show_cursor_blink() local
3449 info = registered_fb[idx]; in show_cursor_blink()
3450 ops = info->fbcon_par; in show_cursor_blink()
3465 struct fb_info *info; in store_cursor_blink() local
3478 info = registered_fb[idx]; in store_cursor_blink()
3480 if (!info->fbcon_par) in store_cursor_blink()
3487 fbcon_add_cursor_timer(info); in store_cursor_blink()
3490 fbcon_del_cursor_timer(info); in store_cursor_blink()
3550 struct fb_info *info; in fbcon_exit() local
3563 info = registered_fb[i]; in fbcon_exit()
3565 if (info == NULL) in fbcon_exit()
3568 if (info->queue.func) in fbcon_exit()
3569 pending = cancel_work_sync(&info->queue); in fbcon_exit()
3581 if (info->fbops->fb_release) in fbcon_exit()
3582 info->fbops->fb_release(info, 0); in fbcon_exit()
3583 module_put(info->fbops->owner); in fbcon_exit()
3585 if (info->fbcon_par) { in fbcon_exit()
3586 struct fbcon_ops *ops = info->fbcon_par; in fbcon_exit()
3588 fbcon_del_cursor_timer(info); in fbcon_exit()
3591 kfree(info->fbcon_par); in fbcon_exit()
3592 info->fbcon_par = NULL; in fbcon_exit()
3595 if (info->queue.func == fb_flashcursor) in fbcon_exit()
3596 info->queue.func = NULL; in fbcon_exit()