Re: [PATCH v3 1/9] video console: unite normal and rotated files

2023-02-15 Thread Simon Glass
Hi Dzmitry,

On Wed, 15 Feb 2023 at 04:43, Dzmitry Sankouski  wrote:
>
> Unite console_normal.c and console_rotate.c files.
> Those files have similar logic, and common logic
> may be extracted after putting code in single file.
>
> Signed-off-by: Dzmitry Sankouski 
> ---
> Changes for v2: none
> Changes for v3: none
>
>  drivers/video/Kconfig |   8 +-
>  drivers/video/Makefile|   3 +-
>  drivers/video/console_normal.c| 178 --
>  .../{console_rotate.c => console_simple.c}| 166 
>  4 files changed, 171 insertions(+), 184 deletions(-)
>  delete mode 100644 drivers/video/console_normal.c
>  rename drivers/video/{console_rotate.c => console_simple.c} (75%)

I would prefer to keep these separate, rather than adding an #ifdef.
Could you add an internal header file like
drivers/video/video_internal.h to export the shared functions?

Regards,
Simon


[PATCH v3 1/9] video console: unite normal and rotated files

2023-02-15 Thread Dzmitry Sankouski
Unite console_normal.c and console_rotate.c files.
Those files have similar logic, and common logic
may be extracted after putting code in single file.

Signed-off-by: Dzmitry Sankouski 
---
Changes for v2: none
Changes for v3: none

 drivers/video/Kconfig |   8 +-
 drivers/video/Makefile|   3 +-
 drivers/video/console_normal.c| 178 --
 .../{console_rotate.c => console_simple.c}| 166 
 4 files changed, 171 insertions(+), 184 deletions(-)
 delete mode 100644 drivers/video/console_normal.c
 rename drivers/video/{console_rotate.c => console_simple.c} (75%)

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 2a76d19cc8..f2e930ab68 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -127,17 +127,17 @@ config VIDEO_MIPI_DSI
  The MIPI Display Serial Interface (MIPI DSI) defines a high-speed
  serial interface between a host processor and a display module.
 
-config CONSOLE_NORMAL
+config VIDEO_CONSOLE
bool "Support a simple text console"
default y
help
  Support drawing text on the frame buffer console so that it can be
- used as a console. Rotation is not supported by this driver (see
- CONFIG_CONSOLE_ROTATION for that). A built-in 8x16 font is used
- for the display.
+ used as a console. See CONFIG_CONSOLE_ROTATION for rotation support.
+ A built-in 8x16 font is used for the display.
 
 config CONSOLE_ROTATION
bool "Support rotated displays"
+   depends on VIDEO_CONSOLE
help
  Sometimes, for example if the display is mounted in portrait
  mode or even if it's mounted landscape but rotated by 180degree,
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index cdb7d9a54d..0989c526be 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -7,8 +7,7 @@ ifdef CONFIG_DM
 obj-$(CONFIG_BACKLIGHT) += backlight-uclass.o
 obj-$(CONFIG_BACKLIGHT_GPIO) += backlight_gpio.o
 obj-$(CONFIG_BACKLIGHT_PWM) += pwm_backlight.o
-obj-$(CONFIG_CONSOLE_NORMAL) += console_normal.o
-obj-$(CONFIG_CONSOLE_ROTATION) += console_rotate.o
+obj-$(CONFIG_VIDEO_CONSOLE) += console_simple.o
 obj-$(CONFIG_CONSOLE_TRUETYPE) += console_truetype.o fonts/
 obj-$(CONFIG_DISPLAY) += display-uclass.o
 obj-$(CONFIG_VIDEO_MIPI_DSI) += dsi-host-uclass.o
diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c
deleted file mode 100644
index 04f022491e..00
--- a/drivers/video/console_normal.c
+++ /dev/null
@@ -1,178 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (c) 2015 Google, Inc
- * (C) Copyright 2001-2015
- * DENX Software Engineering -- w...@denx.de
- * Compulab Ltd - http://compulab.co.il/
- * Bernecker & Rainer Industrieelektronik GmbH - http://www.br-automation.com
- */
-
-#include 
-#include 
-#include 
-#include 
-#include /* Get font data, width and height */
-
-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, *end;
-   int pixels = VIDEO_FONT_HEIGHT * vid_priv->xsize;
-   int ret;
-   int i;
-
-   line = vid_priv->fb + row * VIDEO_FONT_HEIGHT * vid_priv->line_length;
-   switch (vid_priv->bpix) {
-   case VIDEO_BPP8:
-   if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
-   uint8_t *dst = line;
-
-   for (i = 0; i < pixels; i++)
-   *dst++ = clr;
-   end = dst;
-   break;
-   }
-   case VIDEO_BPP16:
-   if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
-   uint16_t *dst = line;
-
-   for (i = 0; i < pixels; i++)
-   *dst++ = clr;
-   end = dst;
-   break;
-   }
-   case VIDEO_BPP32:
-   if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
-   uint32_t *dst = line;
-
-   for (i = 0; i < pixels; i++)
-   *dst++ = clr;
-   end = dst;
-   break;
-   }
-   default:
-   return -ENOSYS;
-   }
-   ret = vidconsole_sync_copy(dev, line, end);
-   if (ret)
-   return ret;
-
-   return 0;
-}
-
-static int console_normal_move_rows(struct udevice *dev, uint rowdst,
-uint rowsrc, uint count)
-{
-   struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent);
-   void *dst;
-   void *src;
-   int size;
-   int ret;
-
-   dst = vid_priv->fb + rowdst * VIDEO_FONT_HEIGHT * vid_priv->line_length;
-   src = vid_priv->fb + rowsrc * VIDEO_FONT_HEIGHT * vid_priv->line_length;
-   size = VIDEO_FONT_HEIGHT * vid_priv->line_length *