|
@@ -512,12 +512,14 @@ static void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder,
|
|
|
|
|
|
static void
|
|
static void
|
|
intel_hdmi_set_hdmi_infoframe(struct drm_encoder *encoder,
|
|
intel_hdmi_set_hdmi_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)
|
|
{
|
|
{
|
|
union hdmi_infoframe frame;
|
|
union hdmi_infoframe frame;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
ret = drm_hdmi_vendor_infoframe_from_display_mode(&frame.vendor.hdmi,
|
|
ret = drm_hdmi_vendor_infoframe_from_display_mode(&frame.vendor.hdmi,
|
|
|
|
+ conn_state->connector,
|
|
&crtc_state->base.adjusted_mode);
|
|
&crtc_state->base.adjusted_mode);
|
|
if (ret < 0)
|
|
if (ret < 0)
|
|
return;
|
|
return;
|
|
@@ -584,7 +586,7 @@ static void g4x_set_infoframes(struct drm_encoder *encoder,
|
|
|
|
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
- intel_hdmi_set_hdmi_infoframe(encoder, crtc_state);
|
|
|
|
|
|
+ intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
|
|
}
|
|
}
|
|
|
|
|
|
static bool hdmi_sink_is_deep_color(const struct drm_connector_state *conn_state)
|
|
static bool hdmi_sink_is_deep_color(const struct drm_connector_state *conn_state)
|
|
@@ -725,7 +727,7 @@ static void ibx_set_infoframes(struct drm_encoder *encoder,
|
|
|
|
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
- intel_hdmi_set_hdmi_infoframe(encoder, crtc_state);
|
|
|
|
|
|
+ intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
|
|
}
|
|
}
|
|
|
|
|
|
static void cpt_set_infoframes(struct drm_encoder *encoder,
|
|
static void cpt_set_infoframes(struct drm_encoder *encoder,
|
|
@@ -768,7 +770,7 @@ static void cpt_set_infoframes(struct drm_encoder *encoder,
|
|
|
|
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
- intel_hdmi_set_hdmi_infoframe(encoder, crtc_state);
|
|
|
|
|
|
+ intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
|
|
}
|
|
}
|
|
|
|
|
|
static void vlv_set_infoframes(struct drm_encoder *encoder,
|
|
static void vlv_set_infoframes(struct drm_encoder *encoder,
|
|
@@ -821,7 +823,7 @@ static void vlv_set_infoframes(struct drm_encoder *encoder,
|
|
|
|
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
- intel_hdmi_set_hdmi_infoframe(encoder, crtc_state);
|
|
|
|
|
|
+ intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
|
|
}
|
|
}
|
|
|
|
|
|
static void hsw_set_infoframes(struct drm_encoder *encoder,
|
|
static void hsw_set_infoframes(struct drm_encoder *encoder,
|
|
@@ -854,7 +856,7 @@ static void hsw_set_infoframes(struct drm_encoder *encoder,
|
|
|
|
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_avi_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
intel_hdmi_set_spd_infoframe(encoder, crtc_state);
|
|
- intel_hdmi_set_hdmi_infoframe(encoder, crtc_state);
|
|
|
|
|
|
+ intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
|
|
}
|
|
}
|
|
|
|
|
|
void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable)
|
|
void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable)
|