drm/i915: debugfs: HDCP2.2 capability read
authorRamalingam C <ramalingam.c@intel.com>
Tue, 7 May 2019 16:27:36 +0000 (21:57 +0530)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 9 May 2019 07:44:41 +0000 (09:44 +0200)
Adding the HDCP2.2 capability of HDCP src and sink info into debugfs
entry "i915_hdcp_sink_capability"

This helps the userspace tests to skip the HDCP2.2 test on non HDCP2.2
sinks.

v2:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190507162745.25600-3-ramalingam.c@intel.com
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/intel_hdcp.c
drivers/gpu/drm/i915/intel_hdcp.h

index cb9b56fb6a8aee4451aee894f8833c6baa1ec5b4..072464a18050a3fa46134996f66157b4b0f67951 100644 (file)
@@ -4757,6 +4757,7 @@ static int i915_hdcp_sink_capability_show(struct seq_file *m, void *data)
 {
        struct drm_connector *connector = m->private;
        struct intel_connector *intel_connector = to_intel_connector(connector);
+       bool hdcp_cap, hdcp2_cap;
 
        if (connector->status != connector_status_connected)
                return -ENODEV;
@@ -4767,8 +4768,16 @@ static int i915_hdcp_sink_capability_show(struct seq_file *m, void *data)
 
        seq_printf(m, "%s:%d HDCP version: ", connector->name,
                   connector->base.id);
-       seq_printf(m, "%s ", !intel_hdcp_capable(intel_connector) ?
-                  "None" : "HDCP1.4");
+       hdcp_cap = intel_hdcp_capable(intel_connector);
+       hdcp2_cap = intel_hdcp2_capable(intel_connector);
+
+       if (hdcp_cap)
+               seq_puts(m, "HDCP1.4 ");
+       if (hdcp2_cap)
+               seq_puts(m, "HDCP2.2 ");
+
+       if (!hdcp_cap && !hdcp2_cap)
+               seq_puts(m, "None");
        seq_puts(m, "\n");
 
        return 0;
index ca5982e45e3eb56fcc3778e5747e3ff4ebb5e43c..b8c8d6d1a33d820fe707f15b491c5be7fb7e4512 100644 (file)
@@ -79,7 +79,7 @@ bool intel_hdcp_capable(struct intel_connector *connector)
 }
 
 /* Is HDCP2.2 capable on Platform and Sink */
-static bool intel_hdcp2_capable(struct intel_connector *connector)
+bool intel_hdcp2_capable(struct intel_connector *connector)
 {
        struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
        struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
index a75f25f09d391f1b524d78738fe413ce41538393..be8da85c866a3c7fa8941c8965d8a980d63e29b3 100644 (file)
@@ -25,6 +25,7 @@ int intel_hdcp_enable(struct intel_connector *connector);
 int intel_hdcp_disable(struct intel_connector *connector);
 bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port);
 bool intel_hdcp_capable(struct intel_connector *connector);
+bool intel_hdcp2_capable(struct intel_connector *connector);
 void intel_hdcp_component_init(struct drm_i915_private *dev_priv);
 void intel_hdcp_component_fini(struct drm_i915_private *dev_priv);
 void intel_hdcp_cleanup(struct intel_connector *connector);