struct intel_encoder *intel_encoder = &intel_dig_port->base;
        struct drm_device *dev = intel_encoder->base.dev;
        struct drm_i915_private *dev_priv = to_i915(dev);
+       struct i2c_adapter *ddc;
        enum port port = intel_encoder->port;
        struct cec_connector_info conn_info;
 
                 intel_encoder->base.name))
                return;
 
-       drm_connector_init(dev, connector, &intel_hdmi_connector_funcs,
-                          DRM_MODE_CONNECTOR_HDMIA);
+       intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
+       ddc = intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
+
+       drm_connector_init_with_ddc(dev, connector,
+                                   &intel_hdmi_connector_funcs,
+                                   DRM_MODE_CONNECTOR_HDMIA,
+                                   ddc);
        drm_connector_helper_add(connector, &intel_hdmi_connector_helper_funcs);
 
        connector->interlace_allowed = 1;
        if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
                connector->ycbcr_420_allowed = true;
 
-       intel_hdmi->ddc_bus = intel_hdmi_ddc_pin(dev_priv, port);
-
        intel_encoder->hpd_pin = intel_hpd_pin_default(dev_priv, port);
 
        if (HAS_DDI(dev_priv))