Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 358093
b: refs/heads/master
c: ae12878
h: refs/heads/master
i:
  358091: d374a6d
v: v3
  • Loading branch information
Dave Airlie committed Feb 7, 2013
1 parent 7dd8932 commit 6ea3ed0
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2a2483072393b27f4336ab068a1f48ca19ff1c1e
refs/heads/master: ae1287865f5361fa138d4d3b1b6277908b54eac9
14 changes: 10 additions & 4 deletions trunk/drivers/video/console/fbcon.c
Original file line number Diff line number Diff line change
Expand Up @@ -990,7 +990,7 @@ static const char *fbcon_startup(void)
}

/* Setup default font */
if (!p->fontdata) {
if (!p->fontdata && !vc->vc_font.data) {
if (!fontname[0] || !(font = find_font(fontname)))
font = get_default_font(info->var.xres,
info->var.yres,
Expand All @@ -1000,6 +1000,8 @@ static const char *fbcon_startup(void)
vc->vc_font.height = font->height;
vc->vc_font.data = (void *)(p->fontdata = font->data);
vc->vc_font.charcount = 256; /* FIXME Need to support more fonts */
} else {
p->fontdata = vc->vc_font.data;
}

cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres);
Expand Down Expand Up @@ -1159,9 +1161,9 @@ static void fbcon_init(struct vc_data *vc, int init)
ops->p = &fb_display[fg_console];
}

static void fbcon_free_font(struct display *p)
static void fbcon_free_font(struct display *p, bool freefont)
{
if (p->userfont && p->fontdata && (--REFCOUNT(p->fontdata) == 0))
if (freefont && p->userfont && p->fontdata && (--REFCOUNT(p->fontdata) == 0))
kfree(p->fontdata - FONT_EXTRA_WORDS * sizeof(int));
p->fontdata = NULL;
p->userfont = 0;
Expand All @@ -1173,8 +1175,8 @@ static void fbcon_deinit(struct vc_data *vc)
struct fb_info *info;
struct fbcon_ops *ops;
int idx;
bool free_font = true;

fbcon_free_font(p);
idx = con2fb_map[vc->vc_num];

if (idx == -1)
Expand All @@ -1185,6 +1187,8 @@ static void fbcon_deinit(struct vc_data *vc)
if (!info)
goto finished;

if (info->flags & FBINFO_MISC_FIRMWARE)
free_font = false;
ops = info->fbcon_par;

if (!ops)
Expand All @@ -1196,6 +1200,8 @@ static void fbcon_deinit(struct vc_data *vc)
ops->flags &= ~FBCON_FLAGS_INIT;
finished:

fbcon_free_font(p, free_font);

if (!con_is_bound(&fb_con))
fbcon_exit();

Expand Down

0 comments on commit 6ea3ed0

Please sign in to comment.