]> Git Repo - linux.git/commitdiff
drm/i915: HDCP: fix Ri prime check done during link check
authorOliver Barta <[email protected]>
Sat, 28 Mar 2020 10:41:00 +0000 (11:41 +0100)
committerRodrigo Vivi <[email protected]>
Mon, 20 Apr 2020 17:12:40 +0000 (10:12 -0700)
The check was always succeeding even in case of a mismatch due to the
HDCP_STATUS_ENC bit being set. Make sure both bits are actually set.

Signed-off-by: Oliver Barta <[email protected]>
Fixes: 2320175feb74 ("drm/i915: Implement HDCP for HDMI")
Reviewed-by: Ramalingam C <[email protected]>
Signed-off-by: Jani Nikula <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
(cherry picked from commit 3ffaf56e912e76cf09c560244c8804f9bebda8b1)
Signed-off-by: Rodrigo Vivi <[email protected]>
drivers/gpu/drm/i915/display/intel_hdmi.c

index 39930232b25323acdd80fa0136ee585da09c80d2..821411b93dacc4a2f36af15667850f735d5426dd 100644 (file)
@@ -1536,7 +1536,8 @@ bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port)
        intel_de_write(i915, HDCP_RPRIME(i915, cpu_transcoder, port), ri.reg);
 
        /* Wait for Ri prime match */
-       if (wait_for(intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) &
+       if (wait_for((intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) &
+                     (HDCP_STATUS_RI_MATCH | HDCP_STATUS_ENC)) ==
                     (HDCP_STATUS_RI_MATCH | HDCP_STATUS_ENC), 1)) {
                DRM_ERROR("Ri' mismatch detected, link check failed (%x)\n",
                          intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)));
This page took 0.049963 seconds and 4 git commands to generate.