diff options
author | Jacob Chen <jacob-chen@iotwrt.com> | 2016-03-14 11:20:14 +0800 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2016-03-14 22:01:26 +0100 |
commit | eab314f5909dba208d4cb7dc5aac6ee707d5d171 (patch) | |
tree | 9e4064a3f29710421e9127baba49d806f2babbcb | |
parent | df61a74e6845ec9bdcdd48d2aff5e9c2c6debeaa (diff) | |
download | u-boot-imx-eab314f5909dba208d4cb7dc5aac6ee707d5d171.zip u-boot-imx-eab314f5909dba208d4cb7dc5aac6ee707d5d171.tar.gz u-boot-imx-eab314f5909dba208d4cb7dc5aac6ee707d5d171.tar.bz2 |
dm: video: Add a operation to display uclass
The current display class only allow to get timing from edid.
So add a operation to get timing directly from driver.
In driver, I will use fdtdec_decode_display_timing to get timing.
Signed-off-by: Jacob Chen <jacob-chen@iotwrt.com>
Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | drivers/video/display-uclass.c | 3 | ||||
-rw-r--r-- | include/display.h | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/drivers/video/display-uclass.c b/drivers/video/display-uclass.c index 31522ea..e4763de 100644 --- a/drivers/video/display-uclass.c +++ b/drivers/video/display-uclass.c @@ -36,6 +36,9 @@ int display_read_timing(struct udevice *dev, struct display_timing *timing) u8 buf[EDID_EXT_SIZE]; int ret; + if (ops && ops->read_timing) + return ops->read_timing(dev, timing); + if (!ops || !ops->read_edid) return -ENOSYS; ret = ops->read_edid(dev, buf, sizeof(buf)); diff --git a/include/display.h b/include/display.h index c180e76..b1c4766 100644 --- a/include/display.h +++ b/include/display.h @@ -23,7 +23,7 @@ struct display_plat { }; /** - * display_read_timing() - Read timing information from EDID + * display_read_timing() - Read timing information * * @dev: Device to read from * @return 0 if OK, -ve on error @@ -43,6 +43,15 @@ int display_enable(struct udevice *dev, int panel_bpp, struct dm_display_ops { /** + * read_timing() - Read information directly + * + * @dev: Device to read from + * @timing: Display timings + * @return 0 if OK, -ve on error + */ + int (*read_timing)(struct udevice *dev, struct display_timing *timing); + + /** * read_edid() - Read information from EDID * * @dev: Device to read from |