Skip to contentSkip to conversation

drivers: Add OSD uclass

PATCH Superseded Mario Six 3 participants 16 messages Jun 26, 2018 – Sep 27, 2018 Framebuffer layer

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore

Mario Six

author
#0 lore raw

PATCH v3 1/6 drivers: Add OSD uclass

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.

---

v2 -> v3:
None

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 |  45 +++++++++
 include/dm/uclass-id.h           |   1 +
 include/video_osd.h              | 192 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 247 insertions(+), 1 deletion(-)
 create mode 100644 drivers/video/video_osd-uclass.c
 create mode 100644 include/video_osd.h
drivers/video/Kconfig +8 -0
index 5ee9032dc9..dfd7b87add 100644
@@ -667,4 +667,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
drivers/video/Makefile +1 -1
index 7c89c67dce..f1523fda7b 100644
@@ -24,7 +24,7 @@ obj-$(CONFIG_ATMEL_HLCD) += atmel_hlcdfb.o
 obj-$(CONFIG_ATMEL_LCD) += atmel_lcdfb.o
 obj-$(CONFIG_CFB_CONSOLE) += cfb_console.o
 obj-$(CONFIG_FSL_DIU_FB) += fsl_diu_fb.o videomodes.o
-obj-$(CONFIG_VIDEO_FSL_DCU_FB) += fsl_dcu_fb.o videomodes.o
+obj-$(CONFIG_OSD) += video_osd-uclass.o
 obj-$(CONFIG_PXA_LCD) += pxa_lcd.o
 obj-$(CONFIG_SCF0403_LCD) += scf0403_lcd.o
 obj-$(CONFIG_S6E8AX0) += s6e8ax0.o
drivers/video/video_osd-uclass.c new file +45 -0

45 lines not on this page · raw message

include/dm/uclass-id.h +1 -0
index d7f9df3583..e42f8481bf 100644
@@ -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,
include/video_osd.h new file +192 -0

192 lines not on this page · raw message

--
2.11.0

author
#1 lore raw

PATCH v3 2/6 video_osd: Add ihs_video_out driver

Add a driver for IHS OSDs on IHS FPGAs.

---

v2 -> v3:
* Replace dev_read_prop with dev_read_string
* Fixed binding file
* Improved error handling and reporting
* Use static const variables instead of #defines
* Use named constant for some magic values
* Improved documentation

v1 -> v2:
* Renamed x and y parameters to col and row
* Removed duplicate IHS_VIDEO_OUT definition
* Switched error return code of ihs_video_out_set_mem to E2BIG
* Dropped blank lines between dev_read_u32_default calls
* Documented members of ihs_video_out_priv
* Turned printfs into debugs
* Don't display OSD until something has been written to it
* Made the code a bit more readable
* Added binding file
* Expanded documentation and help
* Switched to display_enable
* Switched to regmap usage (instead of fpgamap uclass)
* Renamed 'dp_tx' property to 'video_tx'

---
 .../video/osd/gdsys,ihs_video_out.txt              |  23 ++
 drivers/video/Kconfig                              |   9 +
 drivers/video/Makefile                             |   1 +
 drivers/video/ihs_video_out.c                      | 341 +++++++++++++++++++++
 4 files changed, 374 insertions(+)
 create mode 100644 doc/device-tree-bindings/video/osd/gdsys,ihs_video_out.txt
 create mode 100644 drivers/video/ihs_video_out.c
doc/device-tree-bindings/video/osd/gdsys,ihs_video_out.txt new file +23 -0
new file mode 100644
index 0000000000..d7aacc827e
@@ -0,0 +1,23 @@
+* Guntermann & Drunck Integrated Hardware Systems OSD
+
+Required properties:
+- compatible: "gdsys,ihs_video_out"
+- reg: A combination of three register spaces:
+       - Register base for the video registers
+       - Register base for the OSD registers
+       - Address of the OSD video memory
+- mode: The initial resolution and frequency: "1024_768_60", "720_400_70", or
+        "640_480_70"
+- clk_gen: phandle to the pixel clock generator
+- dp_tx: phandle to the display associated with the OSD
+
+Example:
+
+fpga0_video0 {
+	compatible = "gdsys,ihs_video_out";
+	reg = <0x100 0x40
+	       0x180 0x20
+	       0x1000 0x1000>;
+	dp_tx = <&fpga0_dp_video0>;
+	clk_gen = <&fpga0_video0_clkgen>;
+};
drivers/video/Kconfig +9 -0
index dfd7b87add..82abde79ca 100644
@@ -675,4 +675,13 @@ config OSD
 	   This supports drivers that provide a OSD (on-screen display), which
 	   is a (usually text-oriented) graphics buffer to show information on
 	   a display.
+
+config IHS_VIDEO_OUT
+	bool "Enable IHS video out driver"
+	depends on OSD
+	help
+	  Enable support for the gdsys Integrated Hardware Systems (IHS) video
+	  out On-screen Display (OSD) used on gdsys FPGAs to control dynamic
+	  textual overlays of the display outputs.
+
 endmenu
drivers/video/Makefile +1 -0
index f1523fda7b..a780efcffb 100644
@@ -24,6 +24,7 @@ obj-$(CONFIG_ATMEL_HLCD) += atmel_hlcdfb.o
 obj-$(CONFIG_ATMEL_LCD) += atmel_lcdfb.o
 obj-$(CONFIG_CFB_CONSOLE) += cfb_console.o
 obj-$(CONFIG_FSL_DIU_FB) += fsl_diu_fb.o videomodes.o
+obj-$(CONFIG_IHS_VIDEO_OUT) += ihs_video_out.o
 obj-$(CONFIG_OSD) += video_osd-uclass.o
 obj-$(CONFIG_PXA_LCD) += pxa_lcd.o
 obj-$(CONFIG_SCF0403_LCD) += scf0403_lcd.o
drivers/video/ihs_video_out.c new file +341 -0

341 lines not on this page · raw message

--
2.11.0

#2 lore raw

PATCH v3 2/6 video_osd: Add ihs_video_out driver

On Tue, 26 Jun 2018 13:28:50 +0200
Mario Six mario.six at gdsys.cc wrote:
...

Quoted 8 lines
---
 .../video/osd/gdsys,ihs_video_out.txt              |  23 ++
 drivers/video/Kconfig                              |   9 +
 drivers/video/Makefile                             |   1 +
 drivers/video/ihs_video_out.c                      | 341 +++++++++++++++++++++
 4 files changed, 374 insertions(+)
 create mode 100644 doc/device-tree-bindings/video/osd/gdsys,ihs_video_out.txt
 create mode 100644 drivers/video/ihs_video_out.c

Applied to u-boot-video/master, rebased Makefile changes. Thanks!

--
Anatolij

author
#3 lore raw

PATCH v3 3/6 video_osd: Add osd sandbox driver and tests

In reply to Mario Six

Add sandbox driver and tests for the new OSD uclass.

---

v2 -> v3:
* Fixed style violations
* Removed sandbox_osd_get_mem from the uclass and moved it into the driver

v1 -> v2:
New in v2

---
 arch/sandbox/dts/test.dts          |   5 +
 arch/sandbox/include/asm/test.h    |   8 ++
 configs/sandbox64_defconfig        |   3 +
 configs/sandbox_defconfig          |   3 +
 configs/sandbox_flattree_defconfig |   3 +
 configs/sandbox_noblk_defconfig    |   3 +
 configs/sandbox_spl_defconfig      |   3 +
 drivers/video/Kconfig              |   6 ++
 drivers/video/Makefile             |   1 +
 drivers/video/sandbox_osd.c        | 161 ++++++++++++++++++++++++++++
 drivers/video/sandbox_osd.h        |  13 +++
 test/dm/Makefile                   |   1 +
 test/dm/osd.c                      | 210 +++++++++++++++++++++++++++++++++++++
 13 files changed, 420 insertions(+)
 create mode 100644 drivers/video/sandbox_osd.c
 create mode 100644 drivers/video/sandbox_osd.h
 create mode 100644 test/dm/osd.c
arch/sandbox/dts/test.dts +5 -0
index 5752bf547e..ed5fcea00f 100644
@@ -34,6 +34,7 @@
 		usb0 = &usb_0;
 		usb1 = &usb_1;
 		usb2 = &usb_2;
+		video_osd0 = "/osd";
 	};
 
 	a-test {
@@ -563,6 +564,10 @@
 			};
 		};
 	};
+
+	osd {
+		compatible = "sandbox,sandbox_osd";
+	};
 };
 
 #include "sandbox_pmic.dtsi"
arch/sandbox/include/asm/test.h +8 -0
index 08863bf3a9..278d58ca7c 100644
@@ -78,4 +78,12 @@ long sandbox_i2c_rtc_get_set_base_time(struct udevice *dev, long base_time);
 
 int sandbox_usb_keyb_add_string(struct udevice *dev, const char *str);
 
+/**
+ * sandbox_osd_get_mem() - get the internal memory of a sandbox OSD
+ *
+ * @dev:	OSD device for which to access the internal memory for
+ * @buf:	pointer to buffer to receive the OSD memory data
+ * @buflen:	length of buffer in bytes
+ */
+int sandbox_osd_get_mem(struct udevice *dev, u8 *buf, size_t buflen);
 #endif
configs/sandbox64_defconfig +3 -0
index 20a2ab3ffb..7464a3ca3a 100644
@@ -39,6 +39,7 @@ CONFIG_CMD_GPT=y
 CONFIG_CMD_GPT_RENAME=y
 CONFIG_CMD_IDE=y
 CONFIG_CMD_I2C=y
+CONFIG_CMD_OSD=y
 CONFIG_CMD_PCI=y
 CONFIG_CMD_READ=y
 CONFIG_CMD_REMOTEPROC=y
@@ -185,6 +186,8 @@ CONFIG_CONSOLE_ROTATION=y
 CONFIG_CONSOLE_TRUETYPE=y
 CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
 CONFIG_VIDEO_SANDBOX_SDL=y
+CONFIG_OSD=y
+CONFIG_SANDBOX_OSD=y
 CONFIG_WDT=y
 CONFIG_WDT_SANDBOX=y
 CONFIG_FS_CBFS=y
configs/sandbox_defconfig +3 -0
index 2fc84a16c9..f7925dfe6f 100644
@@ -39,6 +39,7 @@ CONFIG_CMD_GPT=y
 CONFIG_CMD_GPT_RENAME=y
 CONFIG_CMD_IDE=y
 CONFIG_CMD_I2C=y
+CONFIG_CMD_OSD=y
 CONFIG_CMD_PCI=y
 CONFIG_CMD_READ=y
 CONFIG_CMD_REMOTEPROC=y
@@ -186,6 +187,8 @@ CONFIG_CONSOLE_ROTATION=y
 CONFIG_CONSOLE_TRUETYPE=y
 CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
 CONFIG_VIDEO_SANDBOX_SDL=y
+CONFIG_OSD=y
+CONFIG_SANDBOX_OSD=y
 CONFIG_WDT=y
 CONFIG_WDT_SANDBOX=y
 CONFIG_FS_CBFS=y
configs/sandbox_flattree_defconfig +3 -0
index e922c4b38f..126b9c07c5 100644
@@ -31,6 +31,7 @@ CONFIG_CMD_DEMO=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
+CONFIG_CMD_OSD=y
 CONFIG_CMD_PCI=y
 CONFIG_CMD_REMOTEPROC=y
 CONFIG_CMD_SF=y
@@ -167,6 +168,8 @@ CONFIG_CONSOLE_ROTATION=y
 CONFIG_CONSOLE_TRUETYPE=y
 CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
 CONFIG_VIDEO_SANDBOX_SDL=y
+CONFIG_OSD=y
+CONFIG_SANDBOX_OSD=y
 CONFIG_CMD_DHRYSTONE=y
 CONFIG_TPM=y
 CONFIG_LZ4=y
configs/sandbox_noblk_defconfig +3 -0
index 8bdd4edcda..243234b6c7 100644
@@ -35,6 +35,7 @@ CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_IDE=y
 CONFIG_CMD_I2C=y
+CONFIG_CMD_OSD=y
 CONFIG_CMD_PCI=y
 CONFIG_CMD_REMOTEPROC=y
 CONFIG_CMD_SF=y
@@ -166,6 +167,8 @@ CONFIG_CONSOLE_ROTATION=y
 CONFIG_CONSOLE_TRUETYPE=y
 CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
 CONFIG_VIDEO_SANDBOX_SDL=y
+CONFIG_OSD=y
+CONFIG_SANDBOX_OSD=y
 CONFIG_FS_CBFS=y
 CONFIG_FS_CRAMFS=y
 CONFIG_CMD_DHRYSTONE=y
configs/sandbox_spl_defconfig +3 -0
index fb6bb4baa2..771d0f05a4 100644
@@ -43,6 +43,7 @@ CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_IDE=y
 CONFIG_CMD_I2C=y
+CONFIG_CMD_OSD=y
 CONFIG_CMD_PCI=y
 CONFIG_CMD_REMOTEPROC=y
 CONFIG_CMD_SF=y
@@ -185,6 +186,8 @@ CONFIG_CONSOLE_ROTATION=y
 CONFIG_CONSOLE_TRUETYPE=y
 CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
 CONFIG_VIDEO_SANDBOX_SDL=y
+CONFIG_OSD=y
+CONFIG_SANDBOX_OSD=y
 CONFIG_FS_CBFS=y
 CONFIG_FS_CRAMFS=y
 CONFIG_CMD_DHRYSTONE=y
drivers/video/Kconfig +6 -0
index 82abde79ca..65756ce2a4 100644
@@ -676,6 +676,12 @@ config OSD
 	   is a (usually text-oriented) graphics buffer to show information on
 	   a display.
 
+config SANDBOX_OSD
+	bool "Enable sandbox OSD"
+	depends on OSD
+	help
+	  Enable support for sandbox OSD device used for testing purposes.
+
 config IHS_VIDEO_OUT
 	bool "Enable IHS video out driver"
 	depends on OSD
drivers/video/Makefile +1 -0
index a780efcffb..dfe46fb21a 100644
@@ -27,6 +27,7 @@ obj-$(CONFIG_FSL_DIU_FB) += fsl_diu_fb.o videomodes.o
 obj-$(CONFIG_IHS_VIDEO_OUT) += ihs_video_out.o
 obj-$(CONFIG_OSD) += video_osd-uclass.o
 obj-$(CONFIG_PXA_LCD) += pxa_lcd.o
+obj-$(CONFIG_SANDBOX_OSD) += sandbox_osd.o
 obj-$(CONFIG_SCF0403_LCD) += scf0403_lcd.o
 obj-$(CONFIG_S6E8AX0) += s6e8ax0.o
 obj-$(CONFIG_LD9040) += ld9040.o
drivers/video/sandbox_osd.c new file +161 -0

161 lines not on this page · raw message

drivers/video/sandbox_osd.h new file +13 -0
new file mode 100644
index 0000000000..15a2c91c52
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2018
+ * Mario Six, Guntermann & Drunck GmbH, mario.six at gdsys.cc
+ */
+
+enum {
+	COLOR_BLACK,
+	COLOR_WHITE,
+	COLOR_RED,
+	COLOR_GREEN,
+	COLOR_BLUE,
+};
test/dm/Makefile +1 -0
index 5511a85700..7b390e1d2a 100644
@@ -22,6 +22,7 @@ obj-$(CONFIG_LED) += led.o
 obj-$(CONFIG_DM_MAILBOX) += mailbox.o
 obj-$(CONFIG_DM_MMC) += mmc.o
 obj-y += ofnode.o
+obj-$(CONFIG_OSD) += osd.o
 obj-$(CONFIG_DM_PCI) += pci.o
 obj-$(CONFIG_PHY) += phy.o
 obj-$(CONFIG_POWER_DOMAIN) += power-domain.o
test/dm/osd.c new file +210 -0

210 lines not on this page · raw message

--
2.11.0

#4 lore raw

PATCH v3 3/6 video_osd: Add osd sandbox driver and tests

Quoted 24 lines · Mario Six

Add sandbox driver and tests for the new OSD uclass.

---

v2 -> v3:
* Fixed style violations
* Removed sandbox_osd_get_mem from the uclass and moved it into the driver

v1 -> v2:
New in v2

---
 arch/sandbox/dts/test.dts          |   5 +
 arch/sandbox/include/asm/test.h    |   8 ++
 configs/sandbox64_defconfig        |   3 +
 configs/sandbox_defconfig          |   3 +
 configs/sandbox_flattree_defconfig |   3 +
 configs/sandbox_noblk_defconfig    |   3 +
 configs/sandbox_spl_defconfig      |   3 +
 drivers/video/Kconfig              |   6 ++
 drivers/video/Makefile             |   1 +
Quoted 8 lines
 drivers/video/sandbox_osd.c        | 161 ++++++++++++++++++++++++++++
 drivers/video/sandbox_osd.h        |  13 +++
 test/dm/Makefile                   |   1 +
 test/dm/osd.c                      | 210 +++++++++++++++++++++++++++++++++++++
 13 files changed, 420 insertions(+)
 create mode 100644 drivers/video/sandbox_osd.c
 create mode 100644 drivers/video/sandbox_osd.h
 create mode 100644 test/dm/osd.c
author
#5 lore raw

PATCH v3 4/6 test: Add ut_asserteq_mem

In reply to Mario Six

Add a unit test assert-method, which compares two given memory areas for byte-wise equality.

---

v2 -> v3:
New in v3

---
 include/test/ut.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
include/test/ut.h +18 -0
index 59b23a25a4..11d1b2d089 100644
@@ -78,6 +78,24 @@ void ut_failf(struct unit_test_state *uts, const char *fname, int line,
 	}								\
 }
 
+/* Assert that two memory areas are equal */
+#define ut_asserteq_mem(expr1, expr2, len) {				\
+	const u8 *val1 = (u8 *)(expr1), *val2 = (u8 *)(expr2);		\
+	const uint __len = len;						\
+									\
+	if (memcmp(val1, val2, __len)) {				\
+		char __buf1[64 + 1] = "\0";				\
+		char __buf2[64 + 1] = "\0";				\
+		bin2hex(__buf1, val1, min(__len, (uint)32));		\
+		bin2hex(__buf2, val2, min(__len, (uint)32));		\
+		ut_failf(uts, __FILE__, __LINE__, __func__,		\
+			 #expr1 " = " #expr2,				\
+			 "Expected \"%s\", got \"%s\"",			\
+			 __buf1, __buf2);				\
+		return CMD_RET_FAILURE;					\
+	}								\
+}
+
 /* Assert that two pointers are equal */
 #define ut_asserteq_ptr(expr1, expr2) {					\
 	const void *val1 = (expr1), *val2 = (expr2);			\

--
2.11.0

author
#7 lore raw

PATCH v3 5/6 test: list: Add tests for hexdump.c

In reply to Mario Six

Add tests for the hex2bin, bin2hex, and hex_to_bin functions, which were recently added to U-Boot.

---

v2 -> v3:
New in v3

---
 test/Makefile      |  1 +
 test/lib/Makefile  |  5 +++
 test/lib/hexdump.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 101 insertions(+)
 create mode 100644 test/lib/Makefile
 create mode 100644 test/lib/hexdump.c
test/Makefile +1 -0
index 1092011fdb..1468ca1baa 100644
@@ -9,3 +9,4 @@ obj-$(CONFIG_SANDBOX) += compression.o
 obj-$(CONFIG_SANDBOX) += print_ut.o
 obj-$(CONFIG_UT_TIME) += time_ut.o
 obj-$(CONFIG_$(SPL_)LOG) += log/
+obj-$(CONFIG_UNIT_TEST) += lib/
test/lib/Makefile new file +5 -0
new file mode 100644
index 0000000000..ea68fae566
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2018
+# Mario Six, Guntermann & Drunck GmbH, mario.six at gdsys.cc
+obj-y += hexdump.o
test/lib/hexdump.c new file +95 -0

95 lines not on this page · raw message

--
2.11.0

#8 lore raw

PATCH v3 5/6 test: list: Add tests for hexdump.c

Quoted 11 lines · Mario Six

Add tests for the hex2bin, bin2hex, and hex_to_bin functions, which were recently added to U-Boot.

---

v2 -> v3:
New in v3

Quoted 7 lines
---
 test/Makefile      |  1 +
 test/lib/Makefile  |  5 +++
 test/lib/hexdump.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 101 insertions(+)
 create mode 100644 test/lib/Makefile
 create mode 100644 test/lib/hexdump.c
author
#9 lore raw

PATCH v3 6/6 cmd: Add osd commands

In reply to Mario Six

Add command to query information from and write text to on-screen display (OSD) devices.

---

v2 -> v3:
* Fixed style violations
* Moved gdsys legacy OSD cmds to their own file
* Made sure allocated buffer is always freed
* Improved error handling
* Improved documentation

v1 -> v2:
* Added explanation for what a OSD is
* Added explanation of the color parameter
* Moved GDSYS_LEGACY_OSD_CMDS to gdsys Kconfig

---
 board/gdsys/common/Makefile  |   2 +
 board/gdsys/common/osd_cmd.c | 146 ++++++++++++++++++++++
 board/gdsys/mpc8308/Kconfig  |  11 ++
 cmd/Kconfig                  |   8 ++
 cmd/Makefile                 |   1 +
 cmd/osd.c                    | 291 +++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 459 insertions(+)
 create mode 100644 board/gdsys/common/osd_cmd.c
 create mode 100644 cmd/osd.c
board/gdsys/common/Makefile +2 -0
index 698ea3b02b..61a137a504 100644
@@ -15,3 +15,5 @@ obj-$(CONFIG_STRIDER) += mclink.o dp501.o phy.o ioep-fpga.o adv7611.o ch7301.o
 obj-$(CONFIG_STRIDER) += fanctrl.o
 obj-$(CONFIG_STRIDER_CON) += osd.o
 obj-$(CONFIG_STRIDER_CON_DP) += osd.o
+
+obj-$(CONFIG_GDSYS_LEGACY_OSD_CMDS) += osd_cmd.o
board/gdsys/common/osd_cmd.c new file +146 -0

146 lines not on this page · raw message

board/gdsys/mpc8308/Kconfig +11 -0
index cb29c25c65..9d99f68692 100644
@@ -1,3 +1,9 @@
+config GDSYS_LEGACY_OSD_CMDS
+	bool
+	help
+	  Use the 'osdw', 'osdp', and 'osdsize' legacy commands required by
+	  gdsys devices.
+
 if TARGET_HRCON
 
 config SYS_BOARD
@@ -9,6 +15,9 @@ config SYS_VENDOR
 config SYS_CONFIG_NAME
 	default "hrcon"
 
+config GDSYS_LEGACY_OSD_CMDS
+	default y
+
 endif
 
 if TARGET_STRIDER
@@ -22,6 +31,8 @@ config SYS_VENDOR
 config SYS_CONFIG_NAME
 	default "strider"
 
+config GDSYS_LEGACY_OSD_CMDS
+	default y
 endif
 
 config CMD_IOLOOP
cmd/Kconfig +8 -0
index 45c83359ad..3f6bfdc556 100644
@@ -897,6 +897,14 @@ config CMD_ONENAND
 	  and erasing blocks. It allso provides a way to show and change
 	  bad blocks, and test the device.
 
+config CMD_OSD
+	bool "osd"
+	help
+	  Enable the 'osd' command which allows to query information from and
+	  write text data to a on-screen display (OSD) device; a virtual device
+	  associated with a display capable of displaying a text overlay on the
+	  display it's associated with..
+
 config CMD_PART
 	bool "part"
 	select PARTITION_UUIDS
cmd/Makefile +1 -0
index 13cf7bf6c2..8796a5b88a 100644
@@ -63,6 +63,7 @@ obj-$(CONFIG_CMD_FUSE) += fuse.o
 obj-$(CONFIG_CMD_GETTIME) += gettime.o
 obj-$(CONFIG_CMD_GPIO) += gpio.o
 obj-$(CONFIG_CMD_HVC) += smccc.o
+obj-$(CONFIG_CMD_OSD) += osd.o
 obj-$(CONFIG_CMD_I2C) += i2c.o
 obj-$(CONFIG_CMD_IOTRACE) += iotrace.o
 obj-$(CONFIG_CMD_HASH) += hash.o
cmd/osd.c new file +291 -0

291 lines not on this page · raw message

--
2.11.0

#10 lore raw

PATCH v3 6/6 cmd: Add osd commands

Quoted 19 lines · Mario Six

Add command to query information from and write text to on-screen display (OSD) devices.

---

v2 -> v3:
* Fixed style violations
* Moved gdsys legacy OSD cmds to their own file
* Made sure allocated buffer is always freed
* Improved error handling
* Improved documentation

v1 -> v2:
* Added explanation for what a OSD is
* Added explanation of the color parameter
* Moved GDSYS_LEGACY_OSD_CMDS to gdsys Kconfig

Quoted 10 lines
---
 board/gdsys/common/Makefile  |   2 +
 board/gdsys/common/osd_cmd.c | 146 ++++++++++++++++++++++
 board/gdsys/mpc8308/Kconfig  |  11 ++
 cmd/Kconfig                  |   8 ++
 cmd/Makefile                 |   1 +
 cmd/osd.c                    | 291 +++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 459 insertions(+)
 create mode 100644 board/gdsys/common/osd_cmd.c
 create mode 100644 cmd/osd.c
#11 lore raw

PATCH v3 1/6 drivers: Add OSD uclass

In reply to Mario Six

Hi Mario,

On Tue, 26 Jun 2018 13:28:49 +0200
Mario Six mario.six at gdsys.cc wrote:
...

Quoted 9 lines
---
 drivers/video/Kconfig            |   8 ++
 drivers/video/Makefile           |   2 +-
 drivers/video/video_osd-uclass.c |  45 +++++++++
 include/dm/uclass-id.h           |   1 +
 include/video_osd.h              | 192 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 247 insertions(+), 1 deletion(-)
 create mode 100644 drivers/video/video_osd-uclass.c
 create mode 100644 include/video_osd.h

Applied to u-boot-video/master after fixing Makefile changes.

...

Quoted 1 line

-obj-$(CONFIG_VIDEO_FSL_DCU_FB) += fsl_dcu_fb.o videomodes.o

This line shouldn't be removed. Fixed when applying.

--
Anatolij

author
#12 lore raw

PATCH v3 1/6 drivers: Add OSD uclass

Hi Anatolij,

Quoted 18 lines · Anatolij Gustschin

Hi Mario,

On Tue, 26 Jun 2018 13:28:49 +0200
Mario Six mario.six at gdsys.cc wrote:
...

Quoted 9 lines
---
 drivers/video/Kconfig            |   8 ++
 drivers/video/Makefile           |   2 +-
 drivers/video/video_osd-uclass.c |  45 +++++++++
 include/dm/uclass-id.h           |   1 +
 include/video_osd.h              | 192 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 247 insertions(+), 1 deletion(-)
 create mode 100644 drivers/video/video_osd-uclass.c
 create mode 100644 include/video_osd.h

Applied to u-boot-video/master after fixing Makefile changes.

Quoted 8 lines

...

Quoted 1 line

-obj-$(CONFIG_VIDEO_FSL_DCU_FB) += fsl_dcu_fb.o videomodes.o

This line shouldn't be removed. Fixed when applying.

--
Anatolij

Was there another issue with the series that I missed? It looks like it wasn't applied to u-boot-video/master.

Best regards,
Mario

#13 lore raw

PATCH v3 1/6 drivers: Add OSD uclass

Hi Mario,

On Wed, 26 Sep 2018 15:45:57 +0200
Mario Six mario.six at gdsys.cc wrote:
...

Quoted 2 lines

Was there another issue with the series that I missed? It looks like it wasn't applied to u-boot-video/master.

After applying, build-testing didn't work due to some Travis-CI issues, so I stopped the tests and never got to it since then, sorry.

I've applied the rebased series again and fixed osd0 alias, but there are some other build issues [1] (it seems the patch 6/6 is not needed?). Could you please check? Thanks!

[1] https://travis-ci.org/vdsao/u-boot-video/jobs/433775307

--
Anatolij

author
#15 lore raw

PATCH v3 1/6 drivers: Add OSD uclass

Hi Anatolij,

Quoted 4 lines · Anatolij Gustschin

On Thu, 27 Sep 2018 08:40:58 +0200
Anatolij Gustschin agust at denx.de wrote:
...

Quoted 8 lines
Quoted 3 lines

I've applied the rebased series again and fixed osd0 alias, but there are some other build issues [1] (it seems the patch 6/6 is not needed?). Could you please check? Thanks!

The rebased series is here:

http://git.denx.de/?p=u-boot/u-boot-video.git;a=shortlog;h=refs/heads/osd-new

Thanks, and I found the issue (I had the legacy commands Kconfig setting logic wrong).

Expect a v4 soon.

Quoted 3 lines

--
Anatolij

Best regards,
Mario