From 2cc393f32fd9ffcf47f4877e8d1345a7981a0d02 Mon Sep 17 00:00:00 2001 From: Anatolij Gustschin Date: Wed, 4 Dec 2019 15:48:54 +0100 Subject: video: make BPP and ANSI configs optional Many boards do not use all selected framebuffer depth configurations, for such boards there is some unused code in video and console uclass routines. Make depth specific code optional to avoid dead code and slightly reduce binary size. Also make ANSI code optional for the same reason. When i.e. using only VIDEO_BPP16 the code size shrinks (below values when using gcc-7.3.0): $ ./tools/buildman/buildman -b video-wip -sS wandboard ... 01: Merge git://git.denx.de/u-boot-sh 02: video: add guards around 16bpp/32bbp code 03: video: make BPP and ANSI configs optional arm: (for 1/1 boards) all -776.0 bss -8.0 text -768.0 Signed-off-by: Anatolij Gustschin Tested-by: Eugen Hristev Tested-by: Patrice Chotard Tested-by: Steffen Dirkwinkel --- drivers/video/Kconfig | 8 ++++---- drivers/video/console_normal.c | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'drivers') diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 805713c08b5..4cde0acbf63 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -38,7 +38,7 @@ config BACKLIGHT_GPIO config VIDEO_BPP8 bool "Support 8-bit-per-pixel displays" depends on DM_VIDEO - default y if DM_VIDEO + default n help Support drawing text and bitmaps onto a 8-bit-per-pixel display. Enabling this will include code to support this display. Without @@ -48,7 +48,7 @@ config VIDEO_BPP8 config VIDEO_BPP16 bool "Support 16-bit-per-pixel displays" depends on DM_VIDEO - default y if DM_VIDEO + default n help Support drawing text and bitmaps onto a 16-bit-per-pixel display. Enabling this will include code to support this display. Without @@ -58,7 +58,7 @@ config VIDEO_BPP16 config VIDEO_BPP32 bool "Support 32-bit-per-pixel displays" depends on DM_VIDEO - default y if DM_VIDEO + default n help Support drawing text and bitmaps onto a 32-bit-per-pixel display. Enabling this will include code to support this display. Without @@ -68,7 +68,7 @@ config VIDEO_BPP32 config VIDEO_ANSI bool "Support ANSI escape sequences in video console" depends on DM_VIDEO - default y if DM_VIDEO + default n help Enable ANSI escape sequence decoding for a more fully functional console. diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c index 7f01ee94242..2f25af73325 100644 --- a/drivers/video/console_normal.c +++ b/drivers/video/console_normal.c @@ -16,9 +16,9 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr) { struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); - void *line; - int pixels = VIDEO_FONT_HEIGHT * vid_priv->xsize; - int i; + void * __maybe_unused line; + int __maybe_unused pixels = VIDEO_FONT_HEIGHT * vid_priv->xsize; + int __maybe_unused i; line = vid_priv->fb + row * VIDEO_FONT_HEIGHT * vid_priv->line_length; switch (vid_priv->bpix) { @@ -76,7 +76,7 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, struct vidconsole_priv *vc_priv = dev_get_uclass_priv(dev); struct udevice *vid = dev->parent; struct video_priv *vid_priv = dev_get_uclass_priv(vid); - int i, row; + int __maybe_unused i, row; void *line = vid_priv->fb + y * vid_priv->line_length + VID_TO_PIXEL(x_frac) * VNBYTES(vid_priv->bpix); @@ -85,7 +85,7 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, for (row = 0; row < VIDEO_FONT_HEIGHT; row++) { unsigned int idx = (u8)ch * VIDEO_FONT_HEIGHT + row; - uchar bits = video_fontdata[idx]; + uchar __maybe_unused bits = video_fontdata[idx]; switch (vid_priv->bpix) { #ifdef CONFIG_VIDEO_BPP8 -- cgit v1.2.3