Since EDID only indicates supported standard timings, a large table with detailed timing information is necessary, consuming significant space. To mitigate this, the table is made configurable via kconfig, allowing it to be excluded when not needed.
Signed-off-by: Svyatoslav Ryhel <clamo...@gmail.com> --- common/edid.c | 6 ++++++ drivers/video/Kconfig | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/common/edid.c b/common/edid.c index e2ac7100a88..e5aa4ca494f 100644 --- a/common/edid.c +++ b/common/edid.c @@ -16,6 +16,7 @@ #include <linux/ctype.h> #include <linux/string.h> +#if CONFIG_IS_ENABLED(I2C_EDID_STANDARD) #define TIMING(c, ha, hfp, hbp, hsl, va, vfp, vbp, vsl, f) \ .pixelclock = { (c), (c), (c) }, \ .hactive = { (ha), (ha), (ha) }, \ @@ -206,6 +207,7 @@ static const struct display_timing dmt_timings[] = { { TIMING(556188000, 4096, 8, 32, 40, 2160, 48, 8, 6, DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_LOW) }, }; +#endif int edid_check_info(struct edid1_info *edid_info) { @@ -417,6 +419,7 @@ static bool edid_get_standard_timing(struct edid1_info *edid, int i, unsigned in return false; } +#if CONFIG_IS_ENABLED(I2C_EDID_STANDARD) static bool edid_find_valid_standard_timing(struct edid1_info *buf, struct display_timing *timing, bool (*mode_valid)(void *priv, @@ -446,6 +449,7 @@ static bool edid_find_valid_standard_timing(struct edid1_info *buf, return found; } +#endif int edid_get_timing_validate(u8 *buf, int buf_size, struct display_timing *timing, @@ -493,10 +497,12 @@ int edid_get_timing_validate(u8 *buf, int buf_size, } } +#if CONFIG_IS_ENABLED(I2C_EDID_STANDARD) /* Look for timing in Standard Timings */ if (!found) found = edid_find_valid_standard_timing(edid, timing, mode_valid, mode_valid_priv); +#endif if (!found) return -EINVAL; diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index b1ef73f3e5c..11d17076a96 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -721,6 +721,12 @@ config I2C_EDID help This enables library for accessing EDID data from an LCD panel. +config I2C_EDID_STANDARD + bool "Enable standard timings EDID library expansion" + depends on I2C_EDID + help + This enables standard timings expansion for EDID data from an LCD panel. + config DISPLAY bool "Enable Display support" depends on DM -- 2.43.0