summaryrefslogtreecommitdiff
path: root/include/drm/intel
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2025-11-25 19:17:44 +0200
committerJani Nikula <jani.nikula@intel.com>2025-11-28 10:44:51 +0200
commit29fdc6e98d3c3657c8b4874ab3bfc75f9df59bf4 (patch)
tree460b1ae2ebcd23ffd42f148f527333509cb20979 /include/drm/intel
parent39a00914281eb33545777947cea5f7979d605115 (diff)
drm/{i915,xe}/hdcp: use parent interface for HDCP GSC calls
The HDCP GSC implementation is different for both i915 and xe. Add it to the display parent interface, and call the hooks via the parent interface. Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> Link: https://patch.msgid.link/e397073e91f8aa7518754b3b79f65c1936be91ad.1764090990.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'include/drm/intel')
-rw-r--r--include/drm/intel/display_parent_interface.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h
index 4135d1e1a67e..61d1b22adc83 100644
--- a/include/drm/intel/display_parent_interface.h
+++ b/include/drm/intel/display_parent_interface.h
@@ -8,6 +8,7 @@
struct dma_fence;
struct drm_device;
+struct intel_hdcp_gsc_context;
struct ref_tracker;
struct intel_display_rpm_interface {
@@ -26,6 +27,15 @@ struct intel_display_rpm_interface {
void (*assert_unblock)(const struct drm_device *drm);
};
+struct intel_display_hdcp_interface {
+ ssize_t (*gsc_msg_send)(struct intel_hdcp_gsc_context *gsc_context,
+ void *msg_in, size_t msg_in_len,
+ void *msg_out, size_t msg_out_len);
+ bool (*gsc_check_status)(struct drm_device *drm);
+ struct intel_hdcp_gsc_context *(*gsc_context_alloc)(struct drm_device *drm);
+ void (*gsc_context_free)(struct intel_hdcp_gsc_context *gsc_context);
+};
+
struct intel_display_irq_interface {
bool (*enabled)(struct drm_device *drm);
void (*synchronize)(struct drm_device *drm);
@@ -50,6 +60,9 @@ struct intel_display_rps_interface {
* check the optional pointers.
*/
struct intel_display_parent_interface {
+ /** @hdcp: HDCP GSC interface */
+ const struct intel_display_hdcp_interface *hdcp;
+
/** @rpm: Runtime PM functions */
const struct intel_display_rpm_interface *rpm;