Replace drm_detect_hdmi_monitor() with drm_display_info.is_hdmi since
monitor HDMI information is available after EDID is parsed. Additionally
rewrite the code the code to have fewer indentation levels.

Signed-off-by: Tejas Vipin <tejasvipi...@gmail.com>
---
Changes in v2:
    - Use drm_edid instead of edid

Link to v1: 
https://lore.kernel.org/all/20240910051856.700210-1-tejasvipi...@gmail.com/
---
 drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/gma500/cdv_intel_hdmi.c 
b/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
index 2d95e0471291..701f8bbd5f2b 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
@@ -128,23 +128,25 @@ static enum drm_connector_status cdv_hdmi_detect(
 {
        struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
        struct mid_intel_hdmi_priv *hdmi_priv = gma_encoder->dev_priv;
-       struct edid *edid = NULL;
+       const struct drm_edid *drm_edid;
+       int ret;
        enum drm_connector_status status = connector_status_disconnected;
 
-       edid = drm_get_edid(connector, connector->ddc);
+       drm_edid = drm_edid_read_ddc(connector, connector->ddc);
+       ret = drm_edid_connector_update(connector, drm_edid);
 
        hdmi_priv->has_hdmi_sink = false;
        hdmi_priv->has_hdmi_audio = false;
-       if (edid) {
-               if (edid->input & DRM_EDID_INPUT_DIGITAL) {
-                       status = connector_status_connected;
-                       hdmi_priv->has_hdmi_sink =
-                                               drm_detect_hdmi_monitor(edid);
-                       hdmi_priv->has_hdmi_audio =
-                                               drm_detect_monitor_audio(edid);
-               }
-               kfree(edid);
+       if (ret)
+               return status;
+
+       if (drm_edid_is_digital(drm_edid)) {
+               status = connector_status_connected;
+               hdmi_priv->has_hdmi_sink = connector->display_info.is_hdmi;
+               hdmi_priv->has_hdmi_audio = connector->display_info.has_audio;
        }
+       drm_edid_free(drm_edid);
+
        return status;
 }
 
-- 
2.46.0

Reply via email to