static int ls7a1000_dpi_connector_get_modes(struct drm_connector *conn)
 {
-       unsigned int num = 0;
-       struct edid *edid;
+       int num;
 
        if (conn->ddc) {
-               edid = drm_get_edid(conn, conn->ddc);
-               if (edid) {
-                       drm_connector_update_edid_property(conn, edid);
-                       num = drm_add_edid_modes(conn, edid);
-                       kfree(edid);
-               }
+               const struct drm_edid *drm_edid;
+
+               drm_edid = drm_edid_read(conn);
+               drm_edid_connector_update(conn, drm_edid);
+               num = drm_edid_connector_add_modes(conn);
+               drm_edid_free(drm_edid);
 
                return num;
        }