[Freedreno] [PATCH 00/14] drm/hdcp: Pull HDCP auth/exchange/check into
Alex Deucher
alexdeucher at gmail.com
Mon Sep 13 18:05:36 UTC 2021
On Mon, Sep 13, 2021 at 1:57 PM Sean Paul <sean at poorly.run> wrote:
>
> From: Sean Paul <seanpaul at chromium.org>
>
> Hello,
> This patchset pulls the HDCP protocol auth/exchange/check logic out from
> i915 into a HDCP helper library which drivers can use to implement the
> proper protocol and UAPI interactions for achieving HDCP.
>
> Originally this was all stuffed into i915 since it was the only driver
> supporting HDCP. Over the last while I've been working on HDCP support
> in the msm driver and have identified the parts which can/should be
> shared between drivers and the parts which are hw-specific.
>
> We can generalize all of the sink interactions in the helper as well as
> state handling and link checks. This tends to be the trickiest part of
> adding HDCP support, since the property state and locking is a bit of a
> nightmare. The driver need only implement the more mechanical display
> controller register accesses.
>
> The first third of the pachset is establishing the helpers, the next
> third is converting the i915 driver to use the helpers, and the last
> third is the msm driver implementation.
>
> I've left out HDCP 2.x support, since we still only have i915 as the
> reference implementation and I'm not super comfortable speculating on
> which parts are platform independent.
FWIW, amdgpu has support for both HDCP 1.x and 2.x
Alex
>
> Please take a look,
>
> Sean
>
> Sean Paul (14):
> drm/hdcp: Add drm_hdcp_atomic_check()
> drm/hdcp: Avoid changing crtc state in hdcp atomic check
> drm/hdcp: Update property value on content type and user changes
> drm/hdcp: Expand HDCP helper library for enable/disable/check
> drm/i915/hdcp: Consolidate HDCP setup/state cache
> drm/i915/hdcp: Retain hdcp_capable return codes
> drm/i915/hdcp: Use HDCP helpers for i915
> drm/msm/dpu_kms: Re-order dpu includes
> drm/msm/dpu: Remove useless checks in dpu_encoder
> drm/msm/dpu: Remove encoder->enable() hack
> drm/msm/dp: Re-order dp_audio_put in deinit_sub_modules
> dt-bindings: msm/dp: Add bindings for HDCP registers
> drm/msm: Add hdcp register ranges to sc7180 device tree
> drm/msm: Implement HDCP 1.x using the new drm HDCP helpers
>
> .../bindings/display/msm/dp-controller.yaml | 11 +-
> drivers/gpu/drm/drm_hdcp.c | 1198 ++++++++++++++++-
> drivers/gpu/drm/i915/display/intel_atomic.c | 7 +-
> drivers/gpu/drm/i915/display/intel_ddi.c | 29 +-
> .../drm/i915/display/intel_display_debugfs.c | 11 +-
> .../drm/i915/display/intel_display_types.h | 58 +-
> drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 341 ++---
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 17 +-
> drivers/gpu/drm/i915/display/intel_hdcp.c | 1011 +++-----------
> drivers/gpu/drm/i915/display/intel_hdcp.h | 35 +-
> drivers/gpu/drm/i915/display/intel_hdmi.c | 256 ++--
> drivers/gpu/drm/msm/Makefile | 1 +
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 17 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 30 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 2 -
> drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 4 -
> drivers/gpu/drm/msm/dp/dp_debug.c | 49 +-
> drivers/gpu/drm/msm/dp/dp_debug.h | 6 +-
> drivers/gpu/drm/msm/dp/dp_display.c | 47 +-
> drivers/gpu/drm/msm/dp/dp_display.h | 5 +
> drivers/gpu/drm/msm/dp/dp_drm.c | 68 +-
> drivers/gpu/drm/msm/dp/dp_drm.h | 5 +
> drivers/gpu/drm/msm/dp/dp_hdcp.c | 433 ++++++
> drivers/gpu/drm/msm/dp/dp_hdcp.h | 27 +
> drivers/gpu/drm/msm/dp/dp_parser.c | 30 +-
> drivers/gpu/drm/msm/dp/dp_parser.h | 4 +
> drivers/gpu/drm/msm/dp/dp_reg.h | 44 +-
> drivers/gpu/drm/msm/msm_atomic.c | 15 +
> include/drm/drm_hdcp.h | 194 +++
> 29 files changed, 2570 insertions(+), 1385 deletions(-)
> create mode 100644 drivers/gpu/drm/msm/dp/dp_hdcp.c
> create mode 100644 drivers/gpu/drm/msm/dp/dp_hdcp.h
>
> --
> Sean Paul, Software Engineer, Google / Chromium OS
>
More information about the Freedreno
mailing list