aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_hdmi.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2018-06-21 22:56:48 -0400
committerDave Airlie <airlied@redhat.com>2018-06-21 22:58:08 -0400
commitf4366e44efeb895c358fddd11f9ecee81bdad06b (patch)
tree1f4bfe33e8d2f93f3a654dedc58e0eaaa3165003 /drivers/gpu/drm/i915/intel_hdmi.c
parent3069290d9d6a9afa93661c299419089eea57164b (diff)
parentc612ae0503af753c062594dcd14aecea121fa414 (diff)
Merge tag 'drm-misc-next-2018-06-21' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 4.19: UAPI Changes: - Add writeback connector (Brian Starkey/Liviu Dudau) - Add "content type" property to HDMI connectors (Stanislav Lisovskiy) Cross-subsystem Changes: - some devicetree Docs update - fix compile breakage on ION due to the dma-buf cleanups (Christian König) Core Changes: - Reject over-sized allocation requests early (Chris Wilson) - gem-fb-helper: Always do implicit sync (Daniel Vetter) - dma-buf cleanups (Christian König) Driver Changes: - Fixes for the otm8009a panel driver (Philippe Cornu) - Add Innolux TV123WAM panel driver support (Sandeep Panda) - Move GEM BO to drm_framebuffer in few drivers (Daniel Stone) - i915 pinning improvements (Chris Wilson) - Stop consulting plane->fb/crtc in a few drivers (Ville Syrjälä) Signed-off-by: Dave Airlie <airlied@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180621105428.GA20795@juma
Diffstat (limited to 'drivers/gpu/drm/i915/intel_hdmi.c')
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index ba5ea61fb7b9..0ca4cc877520 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -461,7 +461,8 @@ static void intel_write_infoframe(struct drm_encoder *encoder,
461} 461}
462 462
463static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, 463static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
464 const struct intel_crtc_state *crtc_state) 464 const struct intel_crtc_state *crtc_state,
465 const struct drm_connector_state *conn_state)
465{ 466{
466 struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder); 467 struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
467 const struct drm_display_mode *adjusted_mode = 468 const struct drm_display_mode *adjusted_mode =
@@ -491,6 +492,9 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
491 intel_hdmi->rgb_quant_range_selectable, 492 intel_hdmi->rgb_quant_range_selectable,
492 is_hdmi2_sink); 493 is_hdmi2_sink);
493 494
495 drm_hdmi_avi_infoframe_content_type(&frame.avi,
496 conn_state);
497
494 /* TODO: handle pixel repetition for YCBCR420 outputs */ 498 /* TODO: handle pixel repetition for YCBCR420 outputs */
495 intel_write_infoframe(encoder, crtc_state, &frame); 499 intel_write_infoframe(encoder, crtc_state, &frame);
496} 500}
@@ -586,7 +590,7 @@ static void g4x_set_infoframes(struct drm_encoder *encoder,
586 I915_WRITE(reg, val); 590 I915_WRITE(reg, val);
587 POSTING_READ(reg); 591 POSTING_READ(reg);
588 592
589 intel_hdmi_set_avi_infoframe(encoder, crtc_state); 593 intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
590 intel_hdmi_set_spd_infoframe(encoder, crtc_state); 594 intel_hdmi_set_spd_infoframe(encoder, crtc_state);
591 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state); 595 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
592} 596}
@@ -727,7 +731,7 @@ static void ibx_set_infoframes(struct drm_encoder *encoder,
727 I915_WRITE(reg, val); 731 I915_WRITE(reg, val);
728 POSTING_READ(reg); 732 POSTING_READ(reg);
729 733
730 intel_hdmi_set_avi_infoframe(encoder, crtc_state); 734 intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
731 intel_hdmi_set_spd_infoframe(encoder, crtc_state); 735 intel_hdmi_set_spd_infoframe(encoder, crtc_state);
732 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state); 736 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
733} 737}
@@ -770,7 +774,7 @@ static void cpt_set_infoframes(struct drm_encoder *encoder,
770 I915_WRITE(reg, val); 774 I915_WRITE(reg, val);
771 POSTING_READ(reg); 775 POSTING_READ(reg);
772 776
773 intel_hdmi_set_avi_infoframe(encoder, crtc_state); 777 intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
774 intel_hdmi_set_spd_infoframe(encoder, crtc_state); 778 intel_hdmi_set_spd_infoframe(encoder, crtc_state);
775 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state); 779 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
776} 780}
@@ -823,7 +827,7 @@ static void vlv_set_infoframes(struct drm_encoder *encoder,
823 I915_WRITE(reg, val); 827 I915_WRITE(reg, val);
824 POSTING_READ(reg); 828 POSTING_READ(reg);
825 829
826 intel_hdmi_set_avi_infoframe(encoder, crtc_state); 830 intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
827 intel_hdmi_set_spd_infoframe(encoder, crtc_state); 831 intel_hdmi_set_spd_infoframe(encoder, crtc_state);
828 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state); 832 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
829} 833}
@@ -856,7 +860,7 @@ static void hsw_set_infoframes(struct drm_encoder *encoder,
856 I915_WRITE(reg, val); 860 I915_WRITE(reg, val);
857 POSTING_READ(reg); 861 POSTING_READ(reg);
858 862
859 intel_hdmi_set_avi_infoframe(encoder, crtc_state); 863 intel_hdmi_set_avi_infoframe(encoder, crtc_state, conn_state);
860 intel_hdmi_set_spd_infoframe(encoder, crtc_state); 864 intel_hdmi_set_spd_infoframe(encoder, crtc_state);
861 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state); 865 intel_hdmi_set_hdmi_infoframe(encoder, crtc_state, conn_state);
862} 866}
@@ -2048,6 +2052,7 @@ intel_hdmi_add_properties(struct intel_hdmi *intel_hdmi, struct drm_connector *c
2048 intel_attach_force_audio_property(connector); 2052 intel_attach_force_audio_property(connector);
2049 intel_attach_broadcast_rgb_property(connector); 2053 intel_attach_broadcast_rgb_property(connector);
2050 intel_attach_aspect_ratio_property(connector); 2054 intel_attach_aspect_ratio_property(connector);
2055 drm_connector_attach_content_type_property(connector);
2051 connector->state->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE; 2056 connector->state->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
2052} 2057}
2053 2058