[PATCH 1/4] drm: bridge: adv7511: Split EDID read to a separate function
Sam Ravnborg
sam at ravnborg.org
Mon Apr 13 05:54:09 UTC 2020
Hi Laurent.
On Thu, Apr 09, 2020 at 03:46:07AM +0300, Laurent Pinchart wrote:
> To prepare for the implementation of the DRM bridge connector
> operations, move EDID read out of adv7511_get_modes() to a separate
> function.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
The code do not check if drm_do_get_edid() return NULL.
But all functions called with the edid seems to handle a NULL edid well.
So thats OK.
Acked-by: Sam Ravnborg <sam at ravnborg.org>
> ---
> drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 23 ++++++++++++++------
> 1 file changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> index 87b58c1acff4..58d02e92b6b9 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> @@ -589,11 +589,10 @@ static int adv7511_get_edid_block(void *data, u8 *buf, unsigned int block,
> * ADV75xx helpers
> */
>
> -static int adv7511_get_modes(struct adv7511 *adv7511,
> - struct drm_connector *connector)
> +static struct edid *adv7511_get_edid(struct adv7511 *adv7511,
> + struct drm_connector *connector)
> {
> struct edid *edid;
> - unsigned int count;
>
> /* Reading the EDID only works if the device is powered */
> if (!adv7511->powered) {
> @@ -612,15 +611,25 @@ static int adv7511_get_modes(struct adv7511 *adv7511,
> if (!adv7511->powered)
> __adv7511_power_off(adv7511);
>
> -
> - drm_connector_update_edid_property(connector, edid);
> - count = drm_add_edid_modes(connector, edid);
> -
> adv7511_set_config_csc(adv7511, connector, adv7511->rgb,
> drm_detect_hdmi_monitor(edid));
>
> cec_s_phys_addr_from_edid(adv7511->cec_adap, edid);
>
> + return edid;
> +}
> +
> +static int adv7511_get_modes(struct adv7511 *adv7511,
> + struct drm_connector *connector)
> +{
> + struct edid *edid;
> + unsigned int count;
> +
> + edid = adv7511_get_edid(adv7511, connector);
> +
> + drm_connector_update_edid_property(connector, edid);
> + count = drm_add_edid_modes(connector, edid);
> +
> kfree(edid);
>
> return count;
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list