[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