summaryrefslogtreecommitdiff
path: root/payloads/libpayload/drivers/video/font.c
diff options
context:
space:
mode:
authorPaul Kocialkowski <contact@paulk.fr>2017-07-23 16:05:47 +0300
committerMartin Roth <martinroth@google.com>2017-08-03 20:37:07 +0000
commitd85e485c5892f2d96e8c5d10828c13af154a5481 (patch)
tree38a90e1b5efaae53430068ba823ee95044262459 /payloads/libpayload/drivers/video/font.c
parent1c0b603673a3132a1554905dbcfe95c8fadb501e (diff)
downloadcoreboot-d85e485c5892f2d96e8c5d10828c13af154a5481.tar.xz
libpayload: video: Add support for font scaling with a factor
This introduces support for font scaling with a factor provided via Kconfig. In practice, the font itself is not scaled at any point in memory and only the logic to determine whether a pixel should be filled or not is changed. Thus, it should not significantly impact either the access time or memory use. Change-Id: Idff210617c9ec08c6034aef107cfdb34c7cdf029 Signed-off-by: Paul Kocialkowski <contact@paulk.fr> Reviewed-on: https://review.coreboot.org/20709 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'payloads/libpayload/drivers/video/font.c')
-rw-r--r--payloads/libpayload/drivers/video/font.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/payloads/libpayload/drivers/video/font.c b/payloads/libpayload/drivers/video/font.c
index 59d476dacf..8758a9646e 100644
--- a/payloads/libpayload/drivers/video/font.c
+++ b/payloads/libpayload/drivers/video/font.c
@@ -27,14 +27,22 @@
* SUCH DAMAGE.
*/
+#include <libpayload.h>
#include "font8x16.h"
#include "font.h"
+#define COLS_MIN 130
+
int font_width;
int font_height;
+int font_scale;
-void font_init(void)
+void font_init(int width)
{
- font_width = FONT_WIDTH;
- font_height = FONT_HEIGHT;
+ font_scale = CONFIG_LP_FONT_SCALE_FACTOR;
+ if (!font_scale)
+ font_scale = MAX(width / (FONT_WIDTH * COLS_MIN), 1);
+
+ font_width = FONT_WIDTH * font_scale;
+ font_height = FONT_HEIGHT * font_scale;
}