mutex_unlock(&hdmi->lock);
 }
 
-static struct edid *hdmi5_bridge_get_edid(struct drm_bridge *bridge,
-                                         struct drm_connector *connector)
+static const struct drm_edid *hdmi5_bridge_edid_read(struct drm_bridge *bridge,
+                                                    struct drm_connector *connector)
 {
        struct omap_hdmi *hdmi = drm_bridge_to_hdmi(bridge);
-       struct edid *edid;
+       const struct drm_edid *drm_edid;
        bool need_enable;
        int idlemode;
        int r;
 
        hdmi5_core_ddc_init(&hdmi->core);
 
-       edid = drm_do_get_edid(connector, hdmi5_core_ddc_read, &hdmi->core);
+       drm_edid = drm_edid_read_custom(connector, hdmi5_core_ddc_read, &hdmi->core);
 
        hdmi5_core_ddc_uninit(&hdmi->core);
 
        if (need_enable)
                hdmi_core_disable(hdmi);
 
-       return (struct edid *)edid;
+       return drm_edid;
 }
 
 static const struct drm_bridge_funcs hdmi5_bridge_funcs = {
        .atomic_reset = drm_atomic_helper_bridge_reset,
        .atomic_enable = hdmi5_bridge_enable,
        .atomic_disable = hdmi5_bridge_disable,
-       .get_edid = hdmi5_bridge_get_edid,
+       .edid_read = hdmi5_bridge_edid_read,
 };
 
 static void hdmi5_bridge_init(struct omap_hdmi *hdmi)