Re: [PATCH v2 0/8] drm/i915: Implement HDCP
From: Sean Paul
Date: Fri Dec 01 2017 - 13:58:55 EST
On Fri, Dec 1, 2017 at 1:47 PM, Hans Verkuil <hverkuil@xxxxxxxxx> wrote:
> 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.
>
Hi Hans,
Repeater support is implemented in intel_hdcp_auth_downstream()
> 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?
>
No, MST is not supported at the moment (there's a TODO in the code)
Sean
> 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
>>
>