Hi Daniel, Hi Greg, Hi all,
We are planning to use `font_desc` instead of `console_font` in `vc_data`, and this is just some prep work for it. It doesn't do much, but at least it removes two "FIXME"s in fbcon.c :)
Peilin Ye (5): [1/5] fbdev/atafb: Remove unused extern variables
Searching for `fontdata` gave me this in fbdev/atafb.c:
extern unsigned char fontdata_8x8[]; extern unsigned char fontdata_8x16[];
...which freaked me out, since in 6735b4632def ("Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts") I changed them from char arrays to structures, in lib/fonts/. Fortunately it turns out these extern variables have nothing to do with lib/fonts/, and are not being used anywhere, so remove them for less confusion.
m68k cross-compiled.
[2/5] Fonts: Make font size unsigned in font_desc
Our goal is to use `font_desc` "everywhere" in the kernel, and signed `width` and `height` is inappropriate.
Also, change some printk() format identifiers in console/sticore.c from `%d` to `%u`. parisc cross-compiled.
[3/5] Fonts: Add charcount field to font_desc
Add `unsigned int charcount` to `font_desc`, and update each of our 13 built-in fonts.
[4/5] fbcon: Avoid hard-coding built-in font charcount [5/5] parisc/sticore: Avoid hard-coding built-in font charcount
Everyone (tty, fbcon, sticore, etc.) is assuming that all built-in fonts have 256 characters, and is using hard-coded 256 or 255 everywhere. These two patches removes some of them. [5/5] is parisc cross-compiled.
Now is a good time to review all find_font() and get_default_font() callers:
drivers/media/pci/solo6x10/solo6x10-enc.c 133 const struct font_desc *vga = find_font("VGA8x16"); drivers/media/test-drivers/vimc/vimc-core.c 268 const struct font_desc *font = find_font("VGA8x16"); drivers/media/test-drivers/vivid/vivid-core.c 1928 const struct font_desc *font = find_font("VGA8x16"); drivers/usb/misc/sisusbvga/sisusb.c 2285 myfont = find_font("VGA8x16"); * These 4 only care about font VGA8x16, so let them be for now;
drivers/video/console/sticore.c 499 fbfont = find_font(fbfont_name); drivers/video/console/sticore.c 501 fbfont = get_default_font(1024,768, ~(u32)0, ~(u32)0); * Uses 255 and 256, (hopefully) cleaned up by [5/5];
drivers/video/fbdev/core/fbcon.c 999 if (!fontname[0] || !(font = find_font(fontname))) drivers/video/fbdev/core/fbcon.c 1000 font = get_default_font(info->var.xres, drivers/video/fbdev/core/fbcon.c 1078 if (!fontname[0] || !(font = find_font(fontname))) drivers/video/fbdev/core/fbcon.c 1079 font = get_default_font(info->var.xres, * Use 256, cleaned up by [4/5];
drivers/video/fbdev/core/fbcon.c 2548 else if (!(f = find_font(name))) drivers/video/fbdev/core/fbcon.c 2546 f = get_default_font(info->var.xres, info->var.yres, * Uses 256 but no easy fix. I'll clean this up after making fbcon_do_set_font() pass a `font_desc` as parameter;
drivers/firmware/efi/earlycon.c 234 font = get_default_font(xres, yres, -1, -1); * Does not care about charcount.
Thank you! Peilin Ye
drivers/video/console/sticore.c | 10 +++++----- drivers/video/fbdev/atafb.c | 8 -------- drivers/video/fbdev/core/fbcon.c | 5 ++--- include/linux/font.h | 3 ++- lib/fonts/font_10x18.c | 1 + lib/fonts/font_6x10.c | 1 + lib/fonts/font_6x11.c | 1 + lib/fonts/font_6x8.c | 1 + lib/fonts/font_7x14.c | 1 + lib/fonts/font_8x16.c | 1 + lib/fonts/font_8x8.c | 1 + lib/fonts/font_acorn_8x8.c | 1 + lib/fonts/font_mini_4x6.c | 1 + lib/fonts/font_pearl_8x8.c | 1 + lib/fonts/font_sun12x22.c | 1 + lib/fonts/font_sun8x16.c | 1 + lib/fonts/font_ter16x32.c | 1 + 17 files changed, 22 insertions(+), 17 deletions(-)