Re: [U-Boot] [PATCH v2 1/5] drivers: Add OSD uclass

2018-05-25 Thread Mario Six
Hi Simon,

On Wed, May 23, 2018 at 6:33 PM, Simon Glass  wrote:
> On 23 May 2018 at 06:09, Mario Six  wrote:
>> Some devices offer a text-based OSD (on-screen display) that can be
>> programmatically controlled (i.e. text displayed on).
>>
>> Add a uclass to support such devices.
>>
>> Signed-off-by: Mario Six 
>>
>> ---
>>
>> v1 -> v2:
>> * Use singular case for UCLASS_VIDEO_OSD description
>> * Expanded description of video_osd_set_mem with example
>> * Replaced all left-over mentions of pixels with text
>> * Renamed x and y parameters to col and row
>> * Expaneded description of color parameter
>> * Added general description of the OSD uclass
>> * Expanded description of video_osd_info
>>
>> ---
>>  drivers/video/Kconfig|   8 ++
>>  drivers/video/Makefile   |   2 +
>>  drivers/video/video_osd-uclass.c |  46 ++
>>  include/dm/uclass-id.h   |   1 +
>>  include/video_osd.h  | 193 
>> +++
>>  5 files changed, 250 insertions(+)
>>  create mode 100644 drivers/video/video_osd-uclass.c
>>  create mode 100644 include/video_osd.h
>
> Why drop the 'u' on 'colour'?
>

# git grep color | wc -l
794

# git grep colour | wc -l
191

;-)

> Reviewed-by: Simon Glass 
>

Best regards,
Mario
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v2 1/5] drivers: Add OSD uclass

2018-05-23 Thread Simon Glass
On 23 May 2018 at 06:09, Mario Six  wrote:
> Some devices offer a text-based OSD (on-screen display) that can be
> programmatically controlled (i.e. text displayed on).
>
> Add a uclass to support such devices.
>
> Signed-off-by: Mario Six 
>
> ---
>
> v1 -> v2:
> * Use singular case for UCLASS_VIDEO_OSD description
> * Expanded description of video_osd_set_mem with example
> * Replaced all left-over mentions of pixels with text
> * Renamed x and y parameters to col and row
> * Expaneded description of color parameter
> * Added general description of the OSD uclass
> * Expanded description of video_osd_info
>
> ---
>  drivers/video/Kconfig|   8 ++
>  drivers/video/Makefile   |   2 +
>  drivers/video/video_osd-uclass.c |  46 ++
>  include/dm/uclass-id.h   |   1 +
>  include/video_osd.h  | 193 
> +++
>  5 files changed, 250 insertions(+)
>  create mode 100644 drivers/video/video_osd-uclass.c
>  create mode 100644 include/video_osd.h

Why drop the 'u' on 'colour'?

Reviewed-by: Simon Glass 
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v2 1/5] drivers: Add OSD uclass

2018-05-23 Thread Mario Six
Some devices offer a text-based OSD (on-screen display) that can be
programmatically controlled (i.e. text displayed on).

Add a uclass to support such devices.

Signed-off-by: Mario Six 

---

v1 -> v2:
* Use singular case for UCLASS_VIDEO_OSD description
* Expanded description of video_osd_set_mem with example
* Replaced all left-over mentions of pixels with text
* Renamed x and y parameters to col and row
* Expaneded description of color parameter
* Added general description of the OSD uclass
* Expanded description of video_osd_info

---
 drivers/video/Kconfig|   8 ++
 drivers/video/Makefile   |   2 +
 drivers/video/video_osd-uclass.c |  46 ++
 include/dm/uclass-id.h   |   1 +
 include/video_osd.h  | 193 +++
 5 files changed, 250 insertions(+)
 create mode 100644 drivers/video/video_osd-uclass.c
 create mode 100644 include/video_osd.h

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 4c4d2861fe7..37be23d2fcc 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -658,4 +658,12 @@ config VIDEO_DT_SIMPLEFB
  The video output is initialized by U-Boot, and kept by the
  kernel.

+config OSD
+   bool "Enable OSD support"
+   depends on DM
+   default n
+   help
+  This supports drivers that provide a OSD (on-screen display), which
+  is a (usually text-oriented) graphics buffer to show information on
+  a display.
 endmenu
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index cf7ad281c3b..1889c5a5208 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -55,5 +55,7 @@ obj-${CONFIG_EXYNOS_FB} += exynos/
 obj-${CONFIG_VIDEO_ROCKCHIP} += rockchip/
 obj-${CONFIG_VIDEO_STM32} += stm32/

+obj-${CONFIG_OSD} += video_osd-uclass.o
+
 obj-y += bridge/
 obj-y += sunxi/
diff --git a/drivers/video/video_osd-uclass.c b/drivers/video/video_osd-uclass.c
new file mode 100644
index 000..ae9b6a6fa82
--- /dev/null
+++ b/drivers/video/video_osd-uclass.c
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2017
+ * Mario Six,  Guntermann & Drunck GmbH, mario@gdsys.cc
+ *
+ * SPDX-License-Identifier:GPL-2.0+
+ */
+
+#include 
+#include 
+#include 
+
+int video_osd_get_info(struct udevice *dev, struct video_osd_info *info)
+{
+   struct video_osd_ops *ops = video_osd_get_ops(dev);
+
+   return ops->get_info(dev, info);
+}
+
+int video_osd_set_mem(struct udevice *dev, uint col, uint row, u8 *buf,
+ size_t buflen, uint count)
+{
+   struct video_osd_ops *ops = video_osd_get_ops(dev);
+
+   return ops->set_mem(dev, col, row, buf, buflen, count);
+}
+
+int video_osd_set_size(struct udevice *dev, uint col, uint row)
+{
+   struct video_osd_ops *ops = video_osd_get_ops(dev);
+
+   return ops->set_size(dev, col, row);
+}
+
+int video_osd_print(struct udevice *dev, uint col, uint row, ulong color,
+   char *text)
+{
+   struct video_osd_ops *ops = video_osd_get_ops(dev);
+
+   return ops->print(dev, col, row, color, text);
+}
+
+UCLASS_DRIVER(video_osd) = {
+   .id = UCLASS_VIDEO_OSD,
+   .name   = "video_osd",
+   .flags  = DM_UC_FLAG_SEQ_ALIAS,
+};
diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
index d7f9df3583a..e42f8481bf8 100644
--- a/include/dm/uclass-id.h
+++ b/include/dm/uclass-id.h
@@ -89,6 +89,7 @@ enum uclass_id {
UCLASS_VIDEO,   /* Video or LCD device */
UCLASS_VIDEO_BRIDGE,/* Video bridge, e.g. DisplayPort to LVDS */
UCLASS_VIDEO_CONSOLE,   /* Text console driver for video device */
+   UCLASS_VIDEO_OSD,   /* On-screen display */
UCLASS_WDT, /* Watchdot Timer driver */

UCLASS_COUNT,
diff --git a/include/video_osd.h b/include/video_osd.h
new file mode 100644
index 000..c3bcd3a4fd8
--- /dev/null
+++ b/include/video_osd.h
@@ -0,0 +1,193 @@
+/*
+ * (C) Copyright 2017
+ * Mario Six,  Guntermann & Drunck GmbH, mario@gdsys.cc
+ *
+ * SPDX-License-Identifier:GPL-2.0+
+ */
+
+#ifndef _VIDEO_OSD_H_
+#define _VIDEO_OSD_H_
+
+struct video_osd_info {
+   /* The width of the OSD display in columns */
+   uint width;
+   /* The height of the OSD display in rows */
+   uint height;
+   /* The major version of the OSD device */
+   uint major_version;
+   /* The minor version of the OSD device */
+   uint minor_version;
+};
+
+/**
+ * struct video_osd_ops - driver operations for OSD uclass
+ *
+ * The OSD uclass implements support for text-oriented on-screen displays,
+ * which are taken to be devices that independently display a graphical
+ * text-based overlay over the video output of an associated display.
+ *
+ * The functions defined by the uclass support writing text to the display in
+ * either a generic form (by specifying a string, a driver-specific color value
+ * for the text, and screen coordinates in