[PATCH v2 0/8] drm/i915: Implement HDCP

From: Sean Paul
Date: Fri Dec 01 2017 - 12:20:41 EST


Ok, here's v2 of the HDCP patchset, no longer RFC since I've tackled the TODO
list I set out in the first version (Annotated below for convenience).

The big changes to take note of in v2 is locking. To account for atomic async +
the property's mutability, I'm using a dedicated mutex and moved property
setting on the kernel side to the worker. I think this is actually a lot easier
to read, and it opens the door to future improvements such as not doing the
enable/disable via modeset.

TODO:
- DONE: Add kerneldoc for property
- DONE: Fix '//' comments
- DONE: Change to MIT license
- DONE: Improve documentation on drm_intel_hdcp_shim
- DONE: Fix async commit locking (ie: don't use connection_mutex)
- DONE: Don't change connector->state in enable, defer to worker
- Rebase on Ville's gmbus fixes (thanks Ville)
- Looks like these haven't landed, but I've rebased on drm-intel-next
- Add igt coverage for the feature.
- Working on this now

Thanks!

Sean

Sean Paul (8):
drm: Fix link-status kerneldoc line lengths
drm/i915: Add more control to wait_for routines
drm: Add Content Protection property
drm: Add some HDCP related #defines
drm/i915: Add HDCP framework + base implementation
drm/i915: Add function to output Aksv over GMBUS
drm/i915: Implement HDCP for HDMI
drm/i915: Implement HDCP for DisplayPort

drivers/gpu/drm/drm_atomic.c | 8 +
drivers/gpu/drm/drm_connector.c | 80 ++++-
drivers/gpu/drm/drm_sysfs.c | 1 +
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/i915_reg.h | 85 +++++
drivers/gpu/drm/i915/intel_atomic.c | 26 +-
drivers/gpu/drm/i915/intel_ddi.c | 64 ++++
drivers/gpu/drm/i915/intel_dp.c | 245 ++++++++++++-
drivers/gpu/drm/i915/intel_drv.h | 98 +++++-
drivers/gpu/drm/i915/intel_hdcp.c | 684 ++++++++++++++++++++++++++++++++++++
drivers/gpu/drm/i915/intel_hdmi.c | 254 +++++++++++++
drivers/gpu/drm/i915/intel_i2c.c | 54 ++-
drivers/gpu/drm/i915/intel_uncore.c | 23 +-
drivers/gpu/drm/i915/intel_uncore.h | 14 +-
include/drm/drm_connector.h | 16 +
include/drm/drm_dp_helper.h | 17 +
include/drm/drm_hdcp.h | 56 +++
include/uapi/drm/drm_mode.h | 4 +
19 files changed, 1697 insertions(+), 34 deletions(-)
create mode 100644 drivers/gpu/drm/i915/intel_hdcp.c
create mode 100644 include/drm/drm_hdcp.h

--
2.15.0.531.g2ccb3012c9-goog