[PATCH 03/15] drm/panel-edp: switch to struct drm_edid
Neil Armstrong
neil.armstrong at linaro.org
Tue Apr 16 17:43:13 UTC 2024
On 16/04/2024 15:22, Jani Nikula wrote:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
>
> ---
>
> Cc: Douglas Anderson <dianders at chromium.org>
> Cc: Neil Armstrong <neil.armstrong at linaro.org>
> Cc: Jessica Zhang <quic_jesszhan at quicinc.com>
> Cc: Sam Ravnborg <sam at ravnborg.org>
> ---
> drivers/gpu/drm/panel/panel-edp.c | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
> index d29bacf25c12..ece1e3553c1f 100644
> --- a/drivers/gpu/drm/panel/panel-edp.c
> +++ b/drivers/gpu/drm/panel/panel-edp.c
> @@ -242,7 +242,7 @@ struct panel_edp {
>
> const struct edp_panel_entry *detected_panel;
>
> - struct edid *edid;
> + const struct drm_edid *drm_edid;
>
> struct drm_display_mode override_mode;
>
> @@ -617,13 +617,16 @@ static int panel_edp_get_modes(struct drm_panel *panel,
> if (p->ddc) {
> pm_runtime_get_sync(panel->dev);
>
> - if (!p->edid)
> - p->edid = drm_get_edid(connector, p->ddc);
> + if (!p->drm_edid)
> + p->drm_edid = drm_edid_read_ddc(connector, p->ddc);
> +
> + drm_edid_connector_update(connector, p->drm_edid);
> +
> /*
> * If both edid and hard-coded modes exists, skip edid modes to
> * avoid multiple preferred modes.
> */
> - if (p->edid && !has_hard_coded_modes) {
> + if (p->drm_edid && !has_hard_coded_modes) {
> if (has_override_edid_mode) {
> /*
> * override_edid_mode is specified. Use
> @@ -632,7 +635,7 @@ static int panel_edp_get_modes(struct drm_panel *panel,
> num += panel_edp_override_edid_mode(p, connector,
> p->detected_panel->override_edid_mode);
> } else {
> - num += drm_add_edid_modes(connector, p->edid);
> + num += drm_edid_connector_add_modes(connector);
> }
> }
>
> @@ -981,8 +984,8 @@ static void panel_edp_remove(struct device *dev)
> if (panel->ddc && (!panel->aux || panel->ddc != &panel->aux->ddc))
> put_device(&panel->ddc->dev);
>
> - kfree(panel->edid);
> - panel->edid = NULL;
> + drm_edid_free(panel->drm_edid);
> + panel->drm_edid = NULL;
> }
>
> static void panel_edp_shutdown(struct device *dev)
Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>
More information about the dri-devel
mailing list