Re: [PATCH v2 0/8] drm/i915: Implement HDCP
From: Hans Verkuil
Date: Fri Dec 01 2017 - 13:47:58 EST
Hi Sean,
On 12/01/2017 06:20 PM, Sean Paul wrote:
> 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
Looking at this patch series it seems that there is no drm support to get the
BKSV from the i915, right? If you want to use the i915 (or any HDMI/DP output)
in a repeater scenario then userspace has to be able to obtain that information
so it can be added to the BKSV of the HDMI receiver.
For the record, the V4L2 subsystem used by HDMI receivers doesn't support HDCP
yet, although patches exist.
I can understand that you are not (yet) adding repeater support, but it should
be documented somewhere in the patch series that this is not there yet and
that a standard DRM API would be needed to obtain the BKSV from the transmitter.
Second question: has this been tested with a MST hub?
Regards,
Hans
>
> 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
>