Date: Mon, 29 Nov 2010 22:19:19 +0000 (UTC) From: Jung-uk Kim <jkim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r216067 - head/sys/dev/syscons Message-ID: <201011292219.oATMJJcH093629@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jkim Date: Mon Nov 29 22:19:19 2010 New Revision: 216067 URL: http://svn.freebsd.org/changeset/base/216067 Log: Honor font size for the video mode when default fonts are compiled in kernel and VESA mode is enabled from loader. Modified: head/sys/dev/syscons/syscons.c Modified: head/sys/dev/syscons/syscons.c ============================================================================== --- head/sys/dev/syscons/syscons.c Mon Nov 29 21:53:21 2010 (r216066) +++ head/sys/dev/syscons/syscons.c Mon Nov 29 22:19:19 2010 (r216067) @@ -348,7 +348,9 @@ static void sc_set_vesa_mode(scr_stat *scp, sc_softc_t *sc, int unit) { video_info_t info; + u_char *font; int depth; + int font_size; int i; int vmode; @@ -377,9 +379,37 @@ sc_set_vesa_mode(scr_stat *scp, sc_softc vidd_get_info(sc->adp, vmode, &info); } +#if !defined(SC_NO_FONT_LOADING) && defined(SC_DFLT_FONT) + font_size = info.vi_cheight; +#else + font_size = 16; +#endif + if (font_size < 14) + font_size = 8; + else if (font_size >= 16) + font_size = 16; + else + font_size = 14; #ifndef SC_NO_FONT_LOADING - if ((sc->fonts_loaded & FONT_16) == 0) - return; + switch (font_size) { + case 8: + if ((sc->fonts_loaded & FONT_8) == 0) + return; + font = sc->font_8; + break; + case 14: + if ((sc->fonts_loaded & FONT_14) == 0) + return; + font = sc->font_14; + break; + case 16: + if ((sc->fonts_loaded & FONT_16) == 0) + return; + font = sc->font_16; + break; + } +#else + font = NULL; #endif #ifdef DEV_SPLASH if ((sc->flags & SC_SPLASH_SCRN) != 0) @@ -398,16 +428,12 @@ sc_set_vesa_mode(scr_stat *scp, sc_softc scp->xpixel = info.vi_width; scp->ypixel = info.vi_height; scp->xsize = scp->xpixel / 8; - scp->ysize = scp->ypixel / 16; + scp->ysize = scp->ypixel / font_size; scp->xpos = 0; scp->ypos = scp->ysize - 1; scp->xoff = scp->yoff = 0; -#ifndef SC_NO_FONT_LOADING - scp->font = sc->font_16; -#else - scp->font = NULL; -#endif - scp->font_size = 16; + scp->font = font; + scp->font_size = font_size; scp->font_width = 8; scp->start = scp->xsize * scp->ysize - 1; scp->end = 0;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011292219.oATMJJcH093629>