[U-Boot] [PATCH 1/5] dm: video: bridge: add operation to read EDID
Vasily Khoruzhick
anarsoul at gmail.com
Tue Sep 19 04:59:50 UTC 2017
Please discard this, I forgot to include maintainers in CC. Will resend.
On Sun, Sep 17, 2017 at 8:21 PM, Vasily Khoruzhick <anarsoul at gmail.com> wrote:
> Bridge may have ability to read EDID from panel that is connected to it,
> so add an operation to read EDID.
>
> Signed-off-by: Vasily Khoruzhick <anarsoul at gmail.com>
> ---
> drivers/video/bridge/video-bridge-uclass.c | 10 ++++++++++
> include/video_bridge.h | 20 ++++++++++++++++++++
> 2 files changed, 30 insertions(+)
>
> diff --git a/drivers/video/bridge/video-bridge-uclass.c b/drivers/video/bridge/video-bridge-uclass.c
> index 07270bac9e..79facd02a6 100644
> --- a/drivers/video/bridge/video-bridge-uclass.c
> +++ b/drivers/video/bridge/video-bridge-uclass.c
> @@ -8,6 +8,7 @@
> #include <common.h>
> #include <dm.h>
> #include <errno.h>
> +#include <edid.h>
> #include <video_bridge.h>
>
> int video_bridge_set_backlight(struct udevice *dev, int percent)
> @@ -45,6 +46,15 @@ int video_bridge_check_attached(struct udevice *dev)
> return ops->check_attached(dev);
> }
>
> +int video_bridge_read_edid(struct udevice *dev, u8 *buf, int buf_size)
> +{
> + struct video_bridge_ops *ops = video_bridge_get_ops(dev);
> +
> + if (!ops || !ops->read_edid)
> + return -ENOSYS;
> + return ops->read_edid(dev, buf, buf_size);
> +}
> +
> static int video_bridge_pre_probe(struct udevice *dev)
> {
> struct video_bridge_priv *uc_priv = dev_get_uclass_priv(dev);
> diff --git a/include/video_bridge.h b/include/video_bridge.h
> index c7b8681849..0699a8dda8 100644
> --- a/include/video_bridge.h
> +++ b/include/video_bridge.h
> @@ -53,6 +53,16 @@ struct video_bridge_ops {
> * @return 0 if OK, -ve on error
> */
> int (*set_backlight)(struct udevice *dev, int percent);
> +
> + /**
> + * read_edid() - Read information from EDID
> + *
> + * @dev: Device to read from
> + * @buf: Buffer to read into
> + * @buf_size: Buffer size
> + * @return number of bytes read, <=0 for error
> + */
> + int (*read_edid)(struct udevice *dev, u8 *buf, int buf_size);
> };
>
> #define video_bridge_get_ops(dev) \
> @@ -89,4 +99,14 @@ int video_bridge_set_active(struct udevice *dev, bool active);
> */
> int video_bridge_check_attached(struct udevice *dev);
>
> +/**
> + * video_bridge_read_edid() - Read information from EDID
> + *
> + * @dev: Device to read from
> + * @buf: Buffer to read into
> + * @buf_size: Buffer size
> + * @return number of bytes read, <=0 for error
> + */
> +int video_bridge_read_edid(struct udevice *dev, u8 *buf, int buf_size);
> +
> #endif
> --
> 2.14.1
>
More information about the U-Boot
mailing list