]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/i2c: tda998x: switch to struct drm_edid
authorJani Nikula <jani.nikula@intel.com>
Fri, 10 May 2024 13:26:07 +0000 (16:26 +0300)
committerRobert Foss <rfoss@kernel.org>
Mon, 13 May 2024 17:10:57 +0000 (19:10 +0200)
Prefer struct drm_edid based functions over struct edid.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/485a33bc4eba9daae109d3f4795bc695e026ba0c.1715347488.git.jani.nikula@intel.com
drivers/gpu/drm/i2c/tda998x_drv.c

index d8d7de18dd65271a3b82bdec792c49aa3e009d5b..2160f05bbd16d2346e27365e5549b75ad26fdcb9 100644 (file)
@@ -1283,7 +1283,7 @@ static int read_edid_block(void *data, u8 *buf, unsigned int blk, size_t length)
 static int tda998x_connector_get_modes(struct drm_connector *connector)
 {
        struct tda998x_priv *priv = conn_to_tda998x_priv(connector);
-       struct edid *edid;
+       const struct drm_edid *drm_edid;
        int n;
 
        /*
@@ -1297,25 +1297,26 @@ static int tda998x_connector_get_modes(struct drm_connector *connector)
        if (priv->rev == TDA19988)
                reg_clear(priv, REG_TX4, TX4_PD_RAM);
 
-       edid = drm_do_get_edid(connector, read_edid_block, priv);
+       drm_edid = drm_edid_read_custom(connector, read_edid_block, priv);
 
        if (priv->rev == TDA19988)
                reg_set(priv, REG_TX4, TX4_PD_RAM);
 
-       if (!edid) {
+       drm_edid_connector_update(connector, drm_edid);
+       cec_notifier_set_phys_addr(priv->cec_notify,
+                                  connector->display_info.source_physical_address);
+
+       if (!drm_edid) {
                dev_warn(&priv->hdmi->dev, "failed to read EDID\n");
                return 0;
        }
 
-       drm_connector_update_edid_property(connector, edid);
-       cec_notifier_set_phys_addr_from_edid(priv->cec_notify, edid);
-
        mutex_lock(&priv->audio_mutex);
-       n = drm_add_edid_modes(connector, edid);
-       priv->sink_has_audio = drm_detect_monitor_audio(edid);
+       n = drm_edid_connector_add_modes(connector);
+       priv->sink_has_audio = connector->display_info.has_audio;
        mutex_unlock(&priv->audio_mutex);
 
-       kfree(edid);
+       drm_edid_free(drm_edid);
 
        return n;
 }