When topology changes before beginning a new HDCP authentication by
sending AKE_init message we need to first authenticate only the
repeater if that fails only then makes sense to enable a new HDCP
authentication. Even though it made sense to not enable HDCP directly
from check_link and schedule it repeater authentication needs to be
done immidieatly

Fixes: 47ef55a8b784 ("drm/i915/hdcp: Don't enable HDCP2.2 directly from 
check_link")
Signed-off-by: Suraj Kandpal <suraj.kand...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_hdcp.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_hdcp.c
index f6e68a0e3b6d..9ff2274ed7e7 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -2182,6 +2182,19 @@ static int intel_hdcp2_check_link(struct intel_connector 
*connector)
 
                drm_dbg_kms(display->drm,
                            "HDCP2.2 Downstream topology change\n");
+
+               ret = hdcp2_authenticate_repeater_topology(connector);
+               if (!ret) {
+                       intel_hdcp_update_value(connector,
+                                               
DRM_MODE_CONTENT_PROTECTION_ENABLED,
+                                               true);
+                       goto out;
+               }
+
+               drm_dbg_kms(display->drm,
+                           "[CONNECTOR:%d:%s] Repeater topology auth 
failed.(%d)\n",
+                           connector->base.base.id, connector->base.name,
+                           ret);
        } else {
                drm_dbg_kms(display->drm,
                            "[CONNECTOR:%d:%s] HDCP2.2 link failed, retrying 
auth\n",
-- 
2.34.1

Reply via email to