HDCP2.2 Phase II

Submitted by Ramalingam C on Feb. 26, 2019, 7:35 a.m.

Details

Reviewer None
Submitted Feb. 26, 2019, 7:35 a.m.
Last Updated Aug. 1, 2019, 11:41 a.m.
Revision 11

Cover Letter(s)

Revision 1
      HDCP2.2 phase-II mojorly adds below features:
	Addition of three connector properties
		CP_Content_Type
		CP_SRM
		CP_Downstream_Info
	parsing for HDCP1.4 and 2.2 SRM Blobs
	Once HDCP1.4/2.2 authentication is completed gathering the all
		downstream topology for userspace 
	Extending debugfs entry to provide the HDCP2.2 capability too.

CP_Content_Type:
	This property is used to indicate the content type
classification of a stream. Which indicate the HDCP version required
for the rendering of that streams. This conten type is one of the
parameter in the HDCP2.2 authentication flow, as even downstream
repeaters will mandate the HDCP version requirement.

Two values possible for content type of a stream:
	Type 0: Stream can be rendered only on HDCP encrypted link no
		restriction on HDCP versions.
	Type 1: Stream can be rendered only on HDCP2.2 encrypted link.

There is a parallel effort in #wayland community to add the support for
HDCP2.2 along with content type support. Patches are under review in
#wayland community.

CP_SRM:
This blob property is used by the userspace to pass the SRM table
of HDCP1.4 and 2.2. These are nothing but revocated list of receiver IDs
of the HDCP sinks. KMD will use this list to identify the revocated
devices in the HDCP authentication and deny the hdcp encryption to it.

Work in progress to add the SRM support in the weston HDCP stack.
Yet to publish the patches in the #wayland community.

CP_Downstream_Info:
This blob property is used by the kernel to pass the downstream topology
of the HDCP encrypted port to the userspace.

This is used by the userspace to implement the HDCP repeater, which KMD
implementing the HDCP transmitters(downstream ports) and userspace
implementing the upstream port(HDCP receiver).

Discussion is on going to add the downstream_info support in the
weston HDCP stack.

Test-with: 1551165805-19130-2-git-send-email-ramalingam.c@intel.com

Ramalingam C (10):
  drm: Add CP content type property
  drm/i915: Attach content type property
  drm: Add CP System Renewability Msg Property
  drm/i915: Add HDCP SRM Blob parsing
  drm/i915: Add revocation check on HDCP1.4 Ksvs
  drm/i915: SRM parsing and revocation check for HDCP2
  drm: Add CP downstream_info property
  drm/i915: Populate downstream info for HDCP1.4
  drm/i915: Populate downstream info for HDCP2.2
  drm/i915: debugfs: HDCP2.2 capability read

 drivers/gpu/drm/drm_atomic_uapi.c   |  23 +++
 drivers/gpu/drm/drm_connector.c     | 204 ++++++++++++++++++++
 drivers/gpu/drm/i915/i915_debugfs.c |  13 +-
 drivers/gpu/drm/i915/intel_ddi.c    |  23 ++-
 drivers/gpu/drm/i915/intel_drv.h    |  11 +-
 drivers/gpu/drm/i915/intel_hdcp.c   | 373 ++++++++++++++++++++++++++++++++++--
 include/drm/drm_connector.h         |  40 ++++
 include/drm/drm_hdcp.h              |  35 ++++
 include/uapi/drm/drm_mode.h         |  39 ++++
 9 files changed, 737 insertions(+), 24 deletions(-)
    
Revision 2
      HDCP2.2 phase-II mojorly adds below features:
	Addition of three connector properties
		CP_Content_Type
		CP_Downstream_Info
	Addition of binary sysfs "hdcp_srm"
	parsing for HDCP1.4 and 2.2 SRM table
	Once HDCP1.4/2.2 authentication is completed gathering the all
		downstream topology for userspace 
	Extending debugfs entry to provide the HDCP2.2 capability too.

CP_Content_Type:
	This property is used to indicate the content type
classification of a stream. Which indicate the HDCP version required
for the rendering of that streams. This conten type is one of the
parameter in the HDCP2.2 authentication flow, as even downstream
repeaters will mandate the HDCP version requirement.

Two values possible for content type of a stream:
	Type 0: Stream can be rendered only on HDCP encrypted link no
		restriction on HDCP versions.
	Type 1: Stream can be rendered only on HDCP2.2 encrypted link.

There is a parallel effort in #wayland community to add the support for
HDCP2.2 along with content type support. Patches are under review in
#wayland community.

CP_downstream_info:
This blob property is used by the kernel to pass the downstream topology
of the HDCP encrypted port to the userspace.

This is used by the userspace to implement the HDCP repeater, which KMD
implementing the HDCP transmitters(downstream ports) and userspace
implementing the upstream port(HDCP receiver).

Discussion is on going to add the downstream_info support in the
weston HDCP stack.

hdcp_srm: write only binary sysfs used by the userspace to pass the SRM
table of HDCP1.4 and 2.2. These are nothing but revocated list of
receiver IDs of the HDCP sinks. KMD will use this list to identify the
revocated devices in the HDCP authentication and deny the hdcp encryption to it.

v2:
  srm is passed through binary sysfs [Daniel]
  CP abbreviation is expanded except for downstream_info [Daniel]
  restrictions at atomic_set_property is removed [Maarten]
  upon content type change durin encryption, HDCP is restarted within
	kernel [Maarten]
 
Resending it as previous submission was failed find the mentioned igt
version.

Series can be cloned from github
https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_p2_v2
  
Test-with: <20190308163049.9016-2-ramalingam.c@intel.com>

Ramalingam C (8):
  drm/i915: debugfs: HDCP2.2 capability read
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm/i915: HDCP SRM parsing and revocation check
  drm/i915/sysfs: Node for hdcp srm
  drm: Add CP downstream_info property
  drm/i915: Populate downstream info for HDCP1.4
  drm/i915: Populate downstream info for HDCP2.2

 drivers/gpu/drm/drm_atomic_uapi.c   |   8 +
 drivers/gpu/drm/drm_connector.c     | 152 +++++++++++
 drivers/gpu/drm/i915/i915_debugfs.c |  13 +-
 drivers/gpu/drm/i915/i915_drv.c     |   1 +
 drivers/gpu/drm/i915/i915_drv.h     |   6 +
 drivers/gpu/drm/i915/i915_sysfs.c   |  32 +++
 drivers/gpu/drm/i915/intel_ddi.c    |  21 +-
 drivers/gpu/drm/i915/intel_drv.h    |   7 +-
 drivers/gpu/drm/i915/intel_hdcp.c   | 405 ++++++++++++++++++++++++++--
 include/drm/drm_connector.h         |  27 ++
 include/drm/drm_hdcp.h              |  33 +++
 include/uapi/drm/drm_mode.h         |  39 +++
 12 files changed, 712 insertions(+), 32 deletions(-)
    
Revision 3
      HDCP2.2 phase-II introduces below features:
	Addition of three connector properties
		HDCP Content Type
		HDCP Topology
	Addition of binary sysfs "hdcp_srm"
	parsing for HDCP1.4 and 2.2 SRM table
	Once HDCP1.4/2.2 authentication is completed gathering the all
		downstream topology for userspace 
	Extending debugfs entry to provide the HDCP2.2 capability too.
	uevent for HDCP state change.

HDCP Content Type:
	This property is used to indicate the content type
classification of a stream. Which indicate the HDCP version required
for the rendering of that streams. This conten type is one of the
parameter in the HDCP2.2 authentication flow, as even downstream
repeaters will mandate the HDCP version requirement.

Two values possible for content type of a stream:
	Type 0: Stream can be rendered only on HDCP encrypted link no
		restriction on HDCP versions.
	Type 1: Stream can be rendered only on HDCP2.2 encrypted link.

There is a parallel effort in #wayland community to add the support for
HDCP2.2 along with content type support. Patches are under review in
#wayland community.

HDCP Topology:
This blob property is used by the kernel to pass the downstream topology
of the HDCP encrypted port to the userspace.

This is used by the userspace to implement the HDCP repeater, which KMD
implementing the HDCP transmitters(downstream ports) and userspace
implementing the upstream port(HDCP receiver).

Discussion is on going to add the downstream_info support in the
weston HDCP stack.

hdcp_srm: write only binary sysfs used by the userspace to pass the SRM
table of HDCP1.4 and 2.2. These are nothing but revocated list of
receiver IDs of the HDCP sinks. KMD will use this list to identify the
revocated devices in the HDCP authentication and deny the hdcp encryption to it.

Daniel has suggested about moving the SRM node implementation into DRM core.
Still dome more clarification is required. Once that is done another
respin on SRM patches are expected.


v2:
  srm is passed through binary sysfs [Daniel]
  CP abbreviation is expanded except for downstream_info [Daniel]
  restrictions at atomic_set_property is removed [Maarten]
  upon content type change durin encryption, HDCP is restarted within
	kernel [Maarten]
v3:
  property names are reworked [Pekka and Daniel]
  uevent is generated for HDCP state change. [Pekka and Daniel]
 
Series can be cloned from github
https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_p2_v3

Test-with: <20190321174444.10099-1-ramalingam.c@intel.com>

Ramalingam C (10):
  drm/i915: debugfs: HDCP2.2 capability read
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm/i915: HDCP SRM parsing and revocation check
  drm/i915/sysfs: Node for hdcp srm
  drm: Add CP downstream_info property
  drm/i915: Populate downstream info for HDCP1.4
  drm/i915: Populate downstream info for HDCP2.2
  drm: uevent for connector status change
  drm/i915: uevent for HDCP status change

 drivers/gpu/drm/drm_atomic_uapi.c   |   8 +
 drivers/gpu/drm/drm_connector.c     | 149 ++++++++++
 drivers/gpu/drm/drm_sysfs.c         |  28 ++
 drivers/gpu/drm/i915/i915_debugfs.c |  13 +-
 drivers/gpu/drm/i915/i915_drv.c     |   1 +
 drivers/gpu/drm/i915/i915_drv.h     |   6 +
 drivers/gpu/drm/i915/i915_sysfs.c   |  32 +++
 drivers/gpu/drm/i915/intel_ddi.c    |  21 +-
 drivers/gpu/drm/i915/intel_drv.h    |   7 +-
 drivers/gpu/drm/i915/intel_hdcp.c   | 407 ++++++++++++++++++++++++++--
 include/drm/drm_connector.h         |  27 ++
 include/drm/drm_hdcp.h              |  33 +++
 include/drm/drm_sysfs.h             |   5 +-
 include/uapi/drm/drm_mode.h         |  39 +++
 14 files changed, 743 insertions(+), 33 deletions(-)
    
Revision 4
      HDCP2.2 phase-II introduces below features:
	Addition of two connector properties
		HDCP Content Type
		HDCP Topology
	Addition of binary sysfs "hdcp_srm" at drm subsystem
	Parsing for HDCP1.4 and 2.2 SRM table
	Once HDCP1.4/2.2 authentication is completed gathering the all
		downstream topology for userspace 
	Extending debugfs entry to provide the HDCP2.2 capability too.
	Uevent for HDCP state change.
	Dedicated file for hdcp in drm.

HDCP Content Type:
	This property is used to indicate the content type
classification of a stream. Which indicate the HDCP version required
for the rendering of that streams. This conten type is one of the
parameter in the HDCP2.2 authentication flow, as even downstream
repeaters will mandate the HDCP version requirement.

Two values possible for content type of a stream:
	Type 0: Stream can be rendered only on HDCP encrypted link no
		restriction on HDCP versions.
	Type 1: Stream can be rendered only on HDCP2.2 encrypted link.

There is a parallel effort in #wayland community to add the support for
HDCP2.2 along with content type support. Patches are under review in
#wayland community.

HDCP Topology:
This blob property is used by the kernel to pass the downstream topology
of the HDCP encrypted port to the userspace.

This is used by the userspace to implement the HDCP repeater, which KMD
implementing the HDCP transmitters(downstream ports) and userspace
implementing the upstream port(HDCP receiver).

Discussion is on going to add the downstream_info support in the
weston HDCP stack.

hdcp_srm: write only binary sysfs used by the userspace to pass the SRM
table of HDCP1.4 and 2.2. These are nothing but revocated list of
receiver IDs of the HDCP sinks. KMD will use this list to identify the
revocated devices in the HDCP authentication and deny the hdcp encryption to it.

Daniel has suggested about moving the SRM node implementation into DRM core.
Still dome more clarification is required. Once that is done another
respin on SRM patches are expected.

v4:
  All hdcp properties are stored at mode_config, attached to req
	connectors. [Daniel]
  SRM bin sysfs is moved to drm subsystem as generic to all cards
	[Daniel]
  Uevents generation along with hdcp state update is moved into DRM
	[Daniel]
  explicit paddings are added for topology blob struct definition.
	[Daniel]
  Dedicated file for HDCP codes in drm. drm_hdcp.c [Daniel]
  
 
Series can be cloned from github
https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_p2_v4

Test-with: <20190405082346.31222-2-ramalingam.c@intel.com>

Ramalingam C (13):
  drm: move content protection property to mode_config
  drm/i915: debugfs: HDCP2.2 capability read
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drivers: create binary sysfs for class
  drm: HDCP SRM binary sysfs for subsystem
  drm/i915: SRM revocation check for HDCP1.4 and 2.2
  drm/hdcp: gathering hdcp related code into drm_hdcp.c
  drm: uevent for connector status change
  drm/hdcp: update content protection property with uevent
  drm/i915: update the hdcp state with uevent
  drm: Add CP downstream_info property
  drm/i915: Populate downstream info for HDCP

 drivers/base/class.c                |  19 ++
 drivers/gpu/drm/Makefile            |   2 +-
 drivers/gpu/drm/drm_atomic_uapi.c   |  11 +-
 drivers/gpu/drm/drm_connector.c     |  80 ++---
 drivers/gpu/drm/drm_hdcp.c          | 511 ++++++++++++++++++++++++++++
 drivers/gpu/drm/drm_internal.h      |   4 +
 drivers/gpu/drm/drm_sysfs.c         |  33 ++
 drivers/gpu/drm/i915/i915_debugfs.c |  13 +-
 drivers/gpu/drm/i915/intel_ddi.c    |  38 ++-
 drivers/gpu/drm/i915/intel_drv.h    |   5 +-
 drivers/gpu/drm/i915/intel_hdcp.c   | 159 +++++++--
 include/drm/drm_connector.h         |  21 +-
 include/drm/drm_hdcp.h              |  48 +++
 include/drm/drm_mode_config.h       |  18 +
 include/drm/drm_sysfs.h             |   5 +-
 include/linux/device.h              |   4 +
 include/uapi/drm/drm_mode.h         |  41 +++
 17 files changed, 918 insertions(+), 94 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_hdcp.c
    
Revision 5
      HDCP2.2 phase-II introduces below features:
	Addition of two connector properties
		HDCP Content Type
		HDCP Topology
	Addition of binary sysfs "hdcp_srm" at drm subsystem
	Parsing for HDCP1.4 and 2.2 SRM table
	Once HDCP1.4/2.2 authentication is completed gathering the all
		downstream topology for userspace 
	Extending debugfs entry to provide the HDCP2.2 capability too.
	Uevent for HDCP state change.
	Dedicated file for hdcp in drm.

HDCP Content Type:
	This property is used to indicate the content type
classification of a stream. Which indicate the HDCP version required
for the rendering of that streams. This conten type is one of the
parameter in the HDCP2.2 authentication flow, as even downstream
repeaters will mandate the HDCP version requirement.

Two values possible for content type of a stream:
	Type 0: Stream can be rendered only on HDCP encrypted link no
		restriction on HDCP versions.
	Type 1: Stream can be rendered only on HDCP2.2 encrypted link.

There is a parallel effort in #wayland community to add the support for
HDCP2.2 along with content type support. Patches are under review in
#wayland community.

HDCP Topology:
This blob property is used by the kernel to pass the downstream topology
of the HDCP encrypted port to the userspace.

This is used by the userspace to implement the HDCP repeater, which KMD
implementing the HDCP transmitters(downstream ports) and userspace
implementing the upstream port(HDCP receiver).

Discussion is on going to add the downstream_info support in the
weston HDCP stack.

hdcp_srm: write only binary sysfs used by the userspace to pass the SRM
table of HDCP1.4 and 2.2. These are nothing but revocated list of
receiver IDs of the HDCP sinks. KMD will use this list to identify the
revocated devices in the HDCP authentication and deny the hdcp encryption to it.

Daniel has suggested about moving the SRM node implementation into DRM core.
Still dome more clarification is required. Once that is done another
respin on SRM patches are expected.

v5:
  srm is read from the /lib/firmware/display_hdcp_srm.bin [danvet]
  small fix at hdcp state update to userspace.
 
Series can be cloned from github
https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_p2_v5

Test-with: <20190418084842.5422-2-ramalingam.c@intel.com>

Ramalingam C (12):
  drm: move content protection property to mode_config
  drm/i915: debugfs: HDCP2.2 capability read
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm: revocation check at drm subsystem
  drm/i915: SRM revocation check for HDCP1.4 and 2.2
  drm/hdcp: gathering hdcp related code into drm_hdcp.c
  drm: uevent for connector status change
  drm/hdcp: update content protection property with uevent
  drm/i915: update the hdcp state with uevent
  drm: Add CP downstream_info property
  drm/i915: Populate downstream info for HDCP

 drivers/gpu/drm/Makefile            |   2 +-
 drivers/gpu/drm/drm_atomic_uapi.c   |  11 +-
 drivers/gpu/drm/drm_connector.c     |  80 +++--
 drivers/gpu/drm/drm_hdcp.c          | 498 ++++++++++++++++++++++++++++
 drivers/gpu/drm/drm_internal.h      |   4 +
 drivers/gpu/drm/drm_sysfs.c         |  33 ++
 drivers/gpu/drm/i915/i915_debugfs.c |  13 +-
 drivers/gpu/drm/i915/intel_ddi.c    |  38 ++-
 drivers/gpu/drm/i915/intel_drv.h    |   2 +
 drivers/gpu/drm/i915/intel_hdcp.c   | 177 +++++++---
 drivers/gpu/drm/i915/intel_hdcp.h   |   3 +-
 include/drm/drm_connector.h         |  21 +-
 include/drm/drm_hdcp.h              |  48 +++
 include/drm/drm_mode_config.h       |  18 +
 include/drm/drm_sysfs.h             |   5 +-
 include/uapi/drm/drm_mode.h         |  41 +++
 16 files changed, 894 insertions(+), 100 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_hdcp.c
    
Revision 6
      This series adds the content type capability for HDCP through a
drm connetor proeprty "HDCP Content Type". By default this property will
be "Type 0". And this property is exposed by the drivers which has the
HDCP2.2 capability to enable the userspace to configure for "Type 1".

HDCP Content Type:
	This property is used to indicate the content type
classification of a stream. Which indicate the HDCP version required
for the rendering of that streams. This conten type is one of the
parameter in the HDCP2.2 authentication flow, as even downstream
repeaters will mandate the HDCP version requirement.

Two values possible for content type of a stream:
	Type 0: Stream can be rendered only on HDCP encrypted link no
		restriction on HDCP versions.
	Type 1: Stream can be rendered only on HDCP2.2 encrypted link.

And also this series adds a uevent for a change in the property state
change of a connector. This helps the userspace to monitor the uevent
for a proeprty state change than the trivial polling.

Userspace consumer for above "HDCP Content Type" property and uevent is
almost at the last phase of review at #wayland community. So Patches 6,
7, 8, 9 and 10 can be merged only when patches in #wayland community
receives the ACK.

HDCP SRM is implemented through request_firmware() interface. Hence
userspace is expected to write the signature validated latest available
SRM table into /lib/firmware/ as "display_hdcp_srm.bin". On every HDCP
authentication kernel will read the SRM from above mentioned file and
do the revocation check.

And also this series gathers all HDCP related DRM code into drm_hdcp.c

Thanks Daniel Vetter for all the reviews.

Series can be cloned from github
https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_p2_v6

Test-with: <20190502131625.27551-2-ramalingam.c@intel.com>

Ramalingam C (10):
  drm: move content protection property to mode_config
  drm/i915: debugfs: HDCP2.2 capability read
  drm: revocation check at drm subsystem
  drm/i915: SRM revocation check for HDCP1.4 and 2.2
  drm/hdcp: gathering hdcp related code into drm_hdcp.c
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm: uevent for connector status change
  drm/hdcp: update content protection property with uevent
  drm/i915: update the hdcp state with uevent

 Documentation/gpu/drm-kms-helpers.rst |   6 +
 drivers/gpu/drm/Makefile              |   2 +-
 drivers/gpu/drm/drm_atomic_uapi.c     |   8 +-
 drivers/gpu/drm/drm_connector.c       |  61 +---
 drivers/gpu/drm/drm_hdcp.c            | 455 ++++++++++++++++++++++++++
 drivers/gpu/drm/drm_internal.h        |   4 +
 drivers/gpu/drm/drm_sysfs.c           |  37 +++
 drivers/gpu/drm/i915/i915_debugfs.c   |  13 +-
 drivers/gpu/drm/i915/intel_ddi.c      |  37 ++-
 drivers/gpu/drm/i915/intel_hdcp.c     | 100 ++++--
 drivers/gpu/drm/i915/intel_hdcp.h     |   3 +-
 include/drm/drm_connector.h           |  15 +-
 include/drm/drm_hdcp.h                |  29 ++
 include/drm/drm_mode_config.h         |  12 +
 include/drm/drm_sysfs.h               |   5 +-
 include/uapi/drm/drm_mode.h           |   4 +
 16 files changed, 699 insertions(+), 92 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_hdcp.c
    
Revision 7
      This series adds the content type capability for HDCP through a
drm connetor proeprty "HDCP Content Type". By default this property will
be "Type 0". And this property is exposed by the drivers which has the
HDCP2.2 capability to enable the userspace to configure for "Type 1".

HDCP Content Type:
	This property is used to indicate the content type
classification of a stream. Which indicate the HDCP version required
for the rendering of that streams. This conten type is one of the
parameter in the HDCP2.2 authentication flow, as even downstream
repeaters will mandate the HDCP version requirement.

Two values possible for content type of a stream:
	Type 0: Stream can be rendered only on HDCP encrypted link no
		restriction on HDCP versions.
	Type 1: Stream can be rendered only on HDCP2.2 encrypted link.

And also this series adds a uevent for a change in the property state
change of a connector. This helps the userspace to monitor the uevent
for a property state change than the trivial polling.

Userspace consumer for above "HDCP Content Type" property and uevent is
almost at the last phase of review at #wayland community. So Patches 
7, 8, 9, 10 and 11 can be merged only when patches in #wayland community
receives the ACK.

HDCP SRM is implemented through request_firmware() interface. Hence
userspace is expected to write the signature validated latest available
SRM table into /lib/firmware/ as "display_hdcp_srm.bin". On every HDCP
authentication kernel will read the SRM from above mentioned file and
do the revocation check.

And also this series gathers all HDCP related DRM code into drm_hdcp.c

Thanks Daniel Vetter for all the reviews.

v7:
  few suggestions in SRM handling at drm is addressed [Daniel]
  A prep patch is added.
  fix at content_type attachment is added.

Series can be cloned from github
https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_p2_v7

Test-with: <20190502131625.27551-2-ramalingam.c@intel.com>

Ramalingam C (11):
  drm: move content protection property to mode_config
  drm/i915: debugfs: HDCP2.2 capability read
  drm: generic fn converting be24 to cpu and vice versa
  drm: revocation check at drm subsystem
  drm/i915: SRM revocation check for HDCP1.4 and 2.2
  drm/hdcp: gathering hdcp related code into drm_hdcp.c
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm: uevent for connector status change
  drm/hdcp: update content protection property with uevent
  drm/i915: update the hdcp state with uevent

 Documentation/gpu/drm-kms-helpers.rst |   6 +
 drivers/gpu/drm/Makefile              |   2 +-
 drivers/gpu/drm/drm_atomic_uapi.c     |   8 +-
 drivers/gpu/drm/drm_connector.c       |  61 ++--
 drivers/gpu/drm/drm_hdcp.c            | 446 ++++++++++++++++++++++++++
 drivers/gpu/drm/drm_internal.h        |   4 +
 drivers/gpu/drm/drm_sysfs.c           |  37 +++
 drivers/gpu/drm/i915/i915_debugfs.c   |  13 +-
 drivers/gpu/drm/i915/intel_ddi.c      |  39 ++-
 drivers/gpu/drm/i915/intel_hdcp.c     | 105 ++++--
 drivers/gpu/drm/i915/intel_hdcp.h     |   3 +-
 drivers/misc/mei/hdcp/mei_hdcp.c      |   2 +-
 include/drm/drm_connector.h           |  15 +-
 include/drm/drm_hdcp.h                |  33 +-
 include/drm/drm_mode_config.h         |  12 +
 include/drm/drm_sysfs.h               |   5 +-
 include/uapi/drm/drm_mode.h           |   4 +
 17 files changed, 698 insertions(+), 97 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_hdcp.c
    
Revision 8
      Adding the uAPI support for the HDCP content type is the main focus
here. Along with that uevent is implemented for the
"Content Protection" state change that got triggered by kernel.

v9:
  KDoc improvements [pekka]

Ramalingam C (6):
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm: uevent for connector status change
  drm/hdcp: update content protection property with uevent
  drm/i915: update the hdcp state with uevent
  drm/hdcp: reference for srm file format

 drivers/gpu/drm/drm_atomic_uapi.c         |  4 ++
 drivers/gpu/drm/drm_connector.c           | 56 +++++++++++++++--
 drivers/gpu/drm/drm_hdcp.c                | 77 ++++++++++++++++++++++-
 drivers/gpu/drm/drm_sysfs.c               | 35 +++++++++++
 drivers/gpu/drm/i915/display/intel_ddi.c  | 39 ++++++++++--
 drivers/gpu/drm/i915/display/intel_hdcp.c | 53 ++++++++++------
 drivers/gpu/drm/i915/display/intel_hdcp.h |  2 +-
 include/drm/drm_connector.h               |  7 +++
 include/drm/drm_hdcp.h                    |  4 +-
 include/drm/drm_mode_config.h             |  6 ++
 include/drm/drm_sysfs.h                   |  5 +-
 include/uapi/drm/drm_mode.h               |  4 ++
 12 files changed, 258 insertions(+), 34 deletions(-)
    
Revision 9
      Adding the uAPI support for the HDCP content type is the main
focus here. Along with that uevent is implemented for the
"Content Protection" state change that got triggered by kernel.

v10:
  Content Type doc improvement [pekka]
  Few suggestions addressed on uevent generation patch [Sean]

Ramalingam C (6):
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm: uevent for connector status change
  drm/hdcp: update content protection property with uevent
  drm/i915: update the hdcp state with uevent
  drm/hdcp: reference for srm file format

 drivers/gpu/drm/drm_atomic_uapi.c         |  4 ++
 drivers/gpu/drm/drm_connector.c           | 67 ++++++++++++++++++--
 drivers/gpu/drm/drm_hdcp.c                | 77 ++++++++++++++++++++++-
 drivers/gpu/drm/drm_sysfs.c               | 35 +++++++++++
 drivers/gpu/drm/i915/display/intel_ddi.c  | 39 ++++++++++--
 drivers/gpu/drm/i915/display/intel_hdcp.c | 53 ++++++++++------
 drivers/gpu/drm/i915/display/intel_hdcp.h |  2 +-
 include/drm/drm_connector.h               |  7 +++
 include/drm/drm_hdcp.h                    |  4 +-
 include/drm/drm_mode_config.h             |  6 ++
 include/drm/drm_sysfs.h                   |  5 +-
 include/uapi/drm/drm_mode.h               |  4 ++
 12 files changed, 269 insertions(+), 34 deletions(-)
    
Revision 10
      Adding the uAPI support for the HDCP content type is the main
focus here. Along with that uevent is implemented for the
"Content Protection" state change that got triggered by kernel.

v10:
  Content Type doc improvement [pekka]
  Few suggestions addressed on uevent generation patch [Sean]

Ramalingam C (6):
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm: uevent for connector status change
  drm/hdcp: update content protection property with uevent
  drm/i915: update the hdcp state with uevent
  drm/hdcp: reference for srm file format

 drivers/gpu/drm/drm_atomic_uapi.c         |  4 ++
 drivers/gpu/drm/drm_connector.c           | 67 ++++++++++++++++++--
 drivers/gpu/drm/drm_hdcp.c                | 77 ++++++++++++++++++++++-
 drivers/gpu/drm/drm_sysfs.c               | 35 +++++++++++
 drivers/gpu/drm/i915/display/intel_ddi.c  | 39 ++++++++++--
 drivers/gpu/drm/i915/display/intel_hdcp.c | 53 ++++++++++------
 drivers/gpu/drm/i915/display/intel_hdcp.h |  2 +-
 include/drm/drm_connector.h               |  7 +++
 include/drm/drm_hdcp.h                    |  4 +-
 include/drm/drm_mode_config.h             |  6 ++
 include/drm/drm_sysfs.h                   |  5 +-
 include/uapi/drm/drm_mode.h               |  4 ++
 12 files changed, 269 insertions(+), 34 deletions(-)
    
Revision 11
      Series adds the content_type support for HDCP2.2. Along with that uevent
is sent for each HDCP state change triggered within kernel.

Pekka have completed the Weston DRM-backend review in
https://gitlab.freedesktop.org/wayland/weston/merge_requests/48
and the UAPI for HDCP 2.2 looks good.

The userspace is accepted in Weston.

v12:
  DRM_MODE_HDCP_CONTENT_TYPEx definition are moved into drm_hdcp.h
[pekka]
  Picked Acked-by and R-by from reviewers.

Test-with: <20190703095446.14092-2-ramalingam.c@intel.com>

Ramalingam C (6):
  drm: Add Content protection type property
  drm/i915: Attach content type property
  drm: uevent for connector status change
  drm/hdcp: update content protection property with uevent
  drm/i915: update the hdcp state with uevent
  drm/hdcp: reference for srm file format

 drivers/gpu/drm/drm_atomic_uapi.c         |  4 ++
 drivers/gpu/drm/drm_connector.c           | 68 ++++++++++++++++++--
 drivers/gpu/drm/drm_hdcp.c                | 77 ++++++++++++++++++++++-
 drivers/gpu/drm/drm_sysfs.c               | 35 +++++++++++
 drivers/gpu/drm/i915/display/intel_ddi.c  | 39 ++++++++++--
 drivers/gpu/drm/i915/display/intel_hdcp.c | 53 ++++++++++------
 drivers/gpu/drm/i915/display/intel_hdcp.h |  2 +-
 include/drm/drm_connector.h               |  7 +++
 include/drm/drm_hdcp.h                    |  9 ++-
 include/drm/drm_mode_config.h             |  6 ++
 include/drm/drm_sysfs.h                   |  5 +-
 11 files changed, 271 insertions(+), 34 deletions(-)
    

Revisions