diff options
author | Dave Airlie <airlied@redhat.com> | 2018-06-21 22:56:48 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-06-21 22:58:08 -0400 |
commit | f4366e44efeb895c358fddd11f9ecee81bdad06b (patch) | |
tree | 1f4bfe33e8d2f93f3a654dedc58e0eaaa3165003 /drivers/gpu/drm/i915/intel_hdmi.c | |
parent | 3069290d9d6a9afa93661c299419089eea57164b (diff) | |
parent | c612ae0503af753c062594dcd14aecea121fa414 (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.c | 17 |
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 | ||
463 | static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, | 463 | static 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 | ||