• Sean Paul's avatar
    drm/i915: Add HDCP framework + base implementation · ee5e5e7a
    Sean Paul authored
    This patch adds the framework required to add HDCP support to intel
    connectors. It implements Aksv loading from fuse, and parts 1/2/3
    of the HDCP authentication scheme.
    
    Note that without shim implementations, this does not actually implement
    HDCP. That will come in subsequent patches.
    
    Changes in v2:
    - Don't open code wait_fors (Chris)
    - drm_hdcp.c under MIT license (Daniel)
    - Move intel_hdcp_disable() call above ddi_disable (Ram)
    - Fix // comments (I wore a cone of shame for 12 hours to atone) (Daniel)
    - Justify intel_hdcp_shim with comments (Daniel)
    - Fixed async locking issues by adding hdcp_mutex (Daniel)
    - Don't alter connector_state in enable/disable (Daniel)
    Changes in v3:
    - Added hdcp_mutex/hdcp_value to make async reasonable
    - Added hdcp_prop_work to separate link checking & property setting
    - Added new helper for atomic_check state tracking (Daniel)
    - Moved enable/disable into atomic_commit with matching helpers
    - Moved intel_hdcp_check_link out of all locks when called from dp
    - Bumped up ksv_fifo timeout (noticed failure on one of my dongles)
    Changes in v4:
    - Remove SKL_ prefix from most register names (Daniel)
    - Move enable/disable back to modeset path (Daniel)
    - s/get_random_long/get_random_u32/ (Daniel)
    - Remove mode_config.mutex lock in prop_work (Daniel)
    - Add intel_hdcp_init to handle init of conn components (Daniel)
    - Actually check return value of attach_property
    - Check Bksv is valid before trying to authenticate (Ram)
    Changes in v5:
    - checkpatch whitespace changes
    - s/DRM_MODE_CONTENT_PROTECTION_OFF/DRM_MODE_CONTENT_PROTECTION_UNDESIRED/
    - Fix ksv list wait timeout (actually wait 5s)
    - Increase the R0 timeout to 300ms (Ram)
    Changes in v6:
    - SPDX license
    
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarRamalingam C <ramalingm.c@intel.com>
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180108195545.218615-6-seanpaul@chromium.org
    ee5e5e7a
intel_ddi.c 87.5 KB