diff options
| author | Tom Rini <[email protected]> | 2025-12-30 10:18:39 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-12-30 11:23:00 -0600 |
| commit | 5652ccc86a3272c2da568dda2d22abf4107e993a (patch) | |
| tree | 3de91858e8526929f6bfcc2df1aefb5e0986feaa /cmd | |
| parent | 4df43f4474dca5575666efbc2303c50ddbb3c689 (diff) | |
| parent | 5e9b0b56ad8c2a4289b2b506ad3d0f3acd0d20ba (diff) | |
Merge patch series "video: display: refactor display_read_timing to avoid code duplication"
Julien Stephan <[email protected]> says:
Commit 2dcf143398ad ("dm: video: Repurpose the 'displayport' uclass to 'display'")
left the display_read_edid() function unused by mistake.
This series addresses that oversight and introduces a new useful cmd.
Patch 1:
- Refactors display_read_timing() to use the existing
display_read_edid() function, eliminating redundant code.
- Marks display_read_edid() as static since it is not used outside of
the file.
Patch 2:
- Adds a new read_edid command, which can be very useful for debugging
or developing new display drivers.
- As this command uses display_read_edid(), the function is made
non-static again.
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/Kconfig | 6 | ||||
| -rw-r--r-- | cmd/Makefile | 1 | ||||
| -rw-r--r-- | cmd/read_edid.c | 38 |
3 files changed, 45 insertions, 0 deletions
diff --git a/cmd/Kconfig b/cmd/Kconfig index f1e84ff02c3..b71ac554c0b 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1692,6 +1692,12 @@ config CMD_READ help Provides low-level access to the data in a partition. +config CMD_READ_EDID + bool "read_edid - Read display EDID" + depends on DISPLAY + help + Read and parse edid from connected display device. + config CMD_REMOTEPROC bool "remoteproc" depends on REMOTEPROC diff --git a/cmd/Makefile b/cmd/Makefile index 642042cfe00..4cd13d4fa6e 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -157,6 +157,7 @@ obj-$(CONFIG_CMD_WOL) += wol.o obj-$(CONFIG_CMD_QFW) += qfw.o obj-$(CONFIG_CMD_READ) += read.o obj-$(CONFIG_CMD_WRITE) += read.o +obj-$(CONFIG_CMD_READ_EDID) += read_edid.o obj-$(CONFIG_CMD_REGINFO) += reginfo.o obj-$(CONFIG_CMD_REMOTEPROC) += remoteproc.o obj-$(CONFIG_CMD_RNG) += rng.o diff --git a/cmd/read_edid.c b/cmd/read_edid.c new file mode 100644 index 00000000000..428dddca8bb --- /dev/null +++ b/cmd/read_edid.c @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2025 BayLibre, SAS + */ + +#include <command.h> +#include <dm.h> +#include <display.h> +#include <edid.h> + +static int do_read_edid(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[]) +{ + struct udevice *dev; + int ret; + u8 edid[EDID_EXT_SIZE]; + + /* Get the first display device (UCLASS_DISPLAY) */ + ret = uclass_first_device_err(UCLASS_DISPLAY, &dev); + if (ret) { + printf("Cannot get display device: %d\n", ret); + return CMD_RET_FAILURE; + } + + ret = display_read_edid(dev, edid, EDID_EXT_SIZE); + if (ret) { + printf("Cannot read edid: %d\n", ret); + return CMD_RET_FAILURE; + } + + edid_print_info((struct edid1_info *)edid); + + return CMD_RET_SUCCESS; +} + +U_BOOT_CMD(read_edid, 1, 0, do_read_edid, + "Read and print EDID from display", + "" +); |
