/* DRM connector functions */
 
-static int tda998x_connector_fill_modes(struct drm_connector *connector,
-                                       uint32_t maxX, uint32_t maxY)
-{
-       struct tda998x_priv *priv = conn_to_tda998x_priv(connector);
-       int ret;
-
-       mutex_lock(&priv->audio_mutex);
-       ret = drm_helper_probe_single_connector_modes(connector, maxX, maxY);
-
-       if (connector->edid_blob_ptr) {
-               struct edid *edid = (void *)connector->edid_blob_ptr->data;
-
-               cec_notifier_set_phys_addr_from_edid(priv->cec_notify, edid);
-
-               priv->sink_has_audio = drm_detect_monitor_audio(edid);
-       } else {
-               priv->sink_has_audio = false;
-       }
-       mutex_unlock(&priv->audio_mutex);
-
-       return ret;
-}
-
 static enum drm_connector_status
 tda998x_connector_detect(struct drm_connector *connector, bool force)
 {
 static const struct drm_connector_funcs tda998x_connector_funcs = {
        .dpms = drm_helper_connector_dpms,
        .reset = drm_atomic_helper_connector_reset,
-       .fill_modes = tda998x_connector_fill_modes,
+       .fill_modes = drm_helper_probe_single_connector_modes,
        .detect = tda998x_connector_detect,
        .destroy = tda998x_connector_destroy,
        .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
        }
 
        drm_mode_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);
+       mutex_unlock(&priv->audio_mutex);
 
        kfree(edid);