Op 04-02-2019 om 17:51 schreef C, Ramalingam: > > > On 2/4/2019 10:13 PM, Maarten Lankhorst wrote: >> Op 04-02-2019 om 16:44 schreef Ramalingam C: >>> The downgrade of the fullmodeset into fastset >>> intel_encoder->update_pipe, in possible scenario, skips the En/Dis-able >>> DDI. Hence breaks the HDCP state change handling. >>> >>> We also don't have any hdcp tests in CI, because the shard runs don't >>> have hdcp capable outputs :-/ >>> >>> So this change fixs it by handling the HDCP state change request at >>> intel_encoder->update_pipe too along with enable and disable of the DDI. >>> >>> Fixes: d19f958db23c ("drm/i915: Enable fastset for non-boot modesets.") >>> >>> v2: >>> Added commit id that broke the HDCP [Daniel] >>> >>> Signed-off-by: Ramalingam C <ramalingam.c@xxxxxxxxx> >>> cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> >>> cc: Hans de Goede <hdegoede@xxxxxxxxxx> >>> cc: Daniel Vetter <daniel.vetter@xxxxxxxxx> >>> --- >>> drivers/gpu/drm/i915/intel_ddi.c | 7 +++++++ >>> 1 file changed, 7 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c >>> index ca705546a0ab..2323b7cb1d38 100644 >>> --- a/drivers/gpu/drm/i915/intel_ddi.c >>> +++ b/drivers/gpu/drm/i915/intel_ddi.c >>> @@ -3568,6 +3568,13 @@ static void intel_ddi_update_pipe(struct intel_encoder *encoder, >>> { >>> if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI)) >>> intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state); >>> + >>> + if (conn_state->content_protection == >>> + DRM_MODE_CONTENT_PROTECTION_DESIRED) >>> + intel_hdcp_enable(to_intel_connector(conn_state->connector)); >>> + else if (conn_state->content_protection == >>> + DRM_MODE_CONTENT_PROTECTION_UNDESIRED) >>> + intel_hdcp_disable(to_intel_connector(conn_state->connector)); >>> } >>> static void intel_ddi_set_fia_lane_count(struct intel_encoder *encoder, >> Does anything bad happen if we enable HDCP when it's already enabled? Might want to have a test for that. :) > nothing will happen. intel_hdcp_atomic_check will prune the request. mode_changed is not set in such case. There are other reasons than HDCP that could cause fastsets, so what happens if update_pipe is called and content protection stays the same? ~Maarten _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx