drm/i915/hdcp: Fix Repeater authentication during topology change
authorSuraj Kandpal <suraj.kandpal@intel.com>
Tue, 17 Dec 2024 08:37:23 +0000 (14:07 +0530)
committerSuraj Kandpal <suraj.kandpal@intel.com>
Fri, 17 Jan 2025 04:24:56 +0000 (09:54 +0530)
When topology changes, before beginning a new HDCP authentication by
sending AKE_init message we need to first authenticate only the
repeater. Only after repeater authentication failure, it makes sense
to start a new HDCP authentication. Even though it made sense to not
enable HDCP directly from check_link and schedule it for later, repeater
authentication needs to be done immediately.

--v2
-Fix comment grammatical errors [Ankit]

Fixes: 47ef55a8b784 ("drm/i915/hdcp: Don't enable HDCP2.2 directly from check_link")
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241217083723.2883317-1-suraj.kandpal@intel.com
drivers/gpu/drm/i915/display/intel_hdcp.c

index 7464b44c8bb36d5c9b4957a084c4ca609e9c17d2..c60b22aaa819ea471cec5832acccd6a4bb73cdb4 100644 (file)
@@ -2188,6 +2188,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",