}
 
 static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
-                                        const struct intel_crtc_state *crtc_state)
+                                        const struct intel_crtc_state *crtc_state,
+                                        const struct drm_connector_state *conn_state)
 {
        struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
        const struct drm_display_mode *adjusted_mode =
                                           intel_hdmi->rgb_quant_range_selectable,
                                           is_hdmi2_sink);
 
+       drm_hdmi_avi_infoframe_content_type(&frame.avi,
+                                           conn_state);
+
        /* TODO: handle pixel repetition for YCBCR420 outputs */
        intel_write_infoframe(encoder, crtc_state, &frame);
 }
        I915_WRITE(reg, val);
        POSTING_READ(reg);
 
-       intel_hdmi_set_avi_infoframe(encoder, crtc_state);
+       intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
        intel_hdmi_set_spd_infoframe(encoder, crtc_state);
        intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
 }
        I915_WRITE(reg, val);
        POSTING_READ(reg);
 
-       intel_hdmi_set_avi_infoframe(encoder, crtc_state);
+       intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
        intel_hdmi_set_spd_infoframe(encoder, crtc_state);
        intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
 }
        I915_WRITE(reg, val);
        POSTING_READ(reg);
 
-       intel_hdmi_set_avi_infoframe(encoder, crtc_state);
+       intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
        intel_hdmi_set_spd_infoframe(encoder, crtc_state);
        intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
 }
        I915_WRITE(reg, val);
        POSTING_READ(reg);
 
-       intel_hdmi_set_avi_infoframe(encoder, crtc_state);
+       intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
        intel_hdmi_set_spd_infoframe(encoder, crtc_state);
        intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
 }
        I915_WRITE(reg, val);
        POSTING_READ(reg);
 
-       intel_hdmi_set_avi_infoframe(encoder, crtc_state);
+       intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
        intel_hdmi_set_spd_infoframe(encoder, crtc_state);
        intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
 }
        intel_attach_force_audio_property(connector);
        intel_attach_broadcast_rgb_property(connector);
        intel_attach_aspect_ratio_property(connector);
+       drm_connector_attach_content_type_property(connector);
        connector->state->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
 }