All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v15 00/16] drm/i915: Implement HDCP2.2
@ 2019-02-21 18:11 Ramalingam C
  2019-02-21 18:11 ` [PATCH v15 01/16] mei: bus: whitelist hdcp client Ramalingam C
                   ` (23 more replies)
  0 siblings, 24 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:11 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

This series enables the HDCP2.2 Type 0 for I915. The sequence for
HDCP2.2 authentication and encryption is implemented as a generic flow
between HDMI and DP. Encoder specific implementations are moved
into hdcp_shim.

Intel HWs supports HDCP2.2 through ME FW. Hence this series
introduces a client driver for mei bus, so that for HDCP2.2
authentication, HDCP2.2 stack in I915 can avail the services from
ME FW. To enable this client driver set the config variable
CONFIG_INTEL_MEI_HDCP.

Userspace interface remains unchanged as version agnostic. When
userspace request for HDCP enable, Kernel will detect the HDCP source
and sink's HDCP version(1.4/2.2)capability and enable the best capable
version for that combination.

This series enables the HDCP2.2 for Type0 content streams.

Test-with: <1549566452-30175-1-git-send-email-ramalingam.c@intel.com>
So that CP will be tested on BAT machine too.

Major changes in v15
  - All I915 patches are merged. So dropping them.
  - Few minor suggestions are incorporated at mei changes.

To ease the review process, series is hosted at
https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_v15

Ramalingam C (15):
  misc/mei/hdcp: Client driver for HDCP application
  misc/mei/hdcp: Define ME FW interface for HDCP2.2
  misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
  misc/mei/hdcp: Verify Receiver Cert and prepare km
  misc/mei/hdcp: Verify H_prime
  misc/mei/hdcp: Store the HDCP Pairing info
  misc/mei/hdcp: Initiate Locality check
  misc/mei/hdcp: Verify L_prime
  misc/mei/hdcp: Prepare Session Key
  misc/mei/hdcp: Repeater topology verification and ack
  misc/mei/hdcp: Verify M_prime
  misc/mei/hdcp: Enabling the HDCP authentication
  misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
  misc/mei/hdcp: Component framework for I915 Interface
  FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915

Tomas Winkler (1):
  mei: bus: whitelist hdcp client

 drivers/misc/mei/Kconfig         |  11 +
 drivers/misc/mei/Makefile        |   2 +
 drivers/misc/mei/bus-fixup.c     |  16 +
 drivers/misc/mei/hdcp/Makefile   |   7 +
 drivers/misc/mei/hdcp/mei_hdcp.c | 849 +++++++++++++++++++++++++++++++++++++++
 drivers/misc/mei/hdcp/mei_hdcp.h | 377 +++++++++++++++++
 6 files changed, 1262 insertions(+)
 create mode 100644 drivers/misc/mei/hdcp/Makefile
 create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.c
 create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.h

-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [PATCH v15 01/16] mei: bus: whitelist hdcp client
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
@ 2019-02-21 18:11 ` Ramalingam C
  2019-02-21 18:11 ` [PATCH v15 02/16] misc/mei/hdcp: Client driver for HDCP application Ramalingam C
                   ` (22 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:11 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

From: Tomas Winkler <tomas.winkler@intel.com>

Whitelist HDCP client for in kernel drm use

v2:
  Rebased.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/misc/mei/bus-fixup.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/misc/mei/bus-fixup.c b/drivers/misc/mei/bus-fixup.c
index 80215c312f0e..5fcac02233af 100644
--- a/drivers/misc/mei/bus-fixup.c
+++ b/drivers/misc/mei/bus-fixup.c
@@ -40,6 +40,9 @@ static const uuid_le mei_nfc_info_guid = MEI_UUID_NFC_INFO;
 #define MEI_UUID_MKHIF_FIX UUID_LE(0x55213584, 0x9a29, 0x4916, \
 			0xba, 0xdf, 0xf, 0xb7, 0xed, 0x68, 0x2a, 0xeb)
 
+#define MEI_UUID_HDCP UUID_LE(0xB638AB7E, 0x94E2, 0x4EA2, \
+			      0xA5, 0x52, 0xD1, 0xC5, 0x4B, 0x62, 0x7F, 0x04)
+
 #define MEI_UUID_ANY NULL_UUID_LE
 
 /**
@@ -71,6 +74,18 @@ static void blacklist(struct mei_cl_device *cldev)
 	cldev->do_match = 0;
 }
 
+/**
+ * whitelist - forcefully whitelist client
+ *
+ * @cldev: me clients device
+ */
+static void whitelist(struct mei_cl_device *cldev)
+{
+	dev_dbg(&cldev->dev, "running hook %s\n", __func__);
+
+	cldev->do_match = 1;
+}
+
 #define OSTYPE_LINUX    2
 struct mei_os_ver {
 	__le16 build;
@@ -472,6 +487,7 @@ static struct mei_fixup {
 	MEI_FIXUP(MEI_UUID_NFC_HCI, mei_nfc),
 	MEI_FIXUP(MEI_UUID_WD, mei_wd),
 	MEI_FIXUP(MEI_UUID_MKHIF_FIX, mei_mkhi_fix),
+	MEI_FIXUP(MEI_UUID_HDCP, whitelist),
 };
 
 /**
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 02/16] misc/mei/hdcp: Client driver for HDCP application
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
  2019-02-21 18:11 ` [PATCH v15 01/16] mei: bus: whitelist hdcp client Ramalingam C
@ 2019-02-21 18:11 ` Ramalingam C
  2019-02-21 18:11 ` [PATCH v15 03/16] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Ramalingam C
                   ` (21 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:11 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

ME FW contributes a vital role in HDCP2.2 authentication.
HDCP2.2 driver needs to communicate to ME FW for each step of the
HDCP2.2 authentication.

ME FW prepare and HDCP2.2 authentication  parameters and encrypt them
as per spec. With such parameter Driver prepares HDCP2.2 auth messages
and communicate with HDCP2.2 sink.

Similarly HDCP2.2 sink's response is shared with ME FW for decrypt and
verification.

Once All the steps of HDCP2.2 authentications are complete on driver's
request ME FW will configure the port as authenticated and supply the
HDCP keys to the Gen HW for encryption.

Only after this stage HDCP2.2 driver can start the HDCP2.2 encryption
for a port.

ME FW is interfaced to kernel through MEI Bus Driver. To obtain the
HDCP2.2 services from the ME FW through MEI Bus driver MEI Client
Driver is developed.

v2:
  hdcp files are moved to drivers/misc/mei/hdcp/ [Tomas]
v3:
  Squashed the Kbuild support [Tomas]
  UUID renamed and Module License is modified [Tomas]
  drv_data is set to null at remove [Tomas]
v4:
  Module name is changed to "MEI HDCP"
  I915 Selects the MEI_HDCP
v5:
  Remove redundant text from the License header
  Fix malformed licence
  Removed the drv_data resetting.
v6:
  K-Doc addition. [Tomas]
v7:
  %s/UUID_LE/GUID_INIT [Tomas]
  GPL Ver is 2.0 than 2.0+ [Tomas]
v8:
  Added more info into Kconfig addition [Tomas]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/Kconfig         | 10 +++++++
 drivers/misc/mei/Makefile        |  2 ++
 drivers/misc/mei/hdcp/Makefile   |  7 +++++
 drivers/misc/mei/hdcp/mei_hdcp.c | 64 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 83 insertions(+)
 create mode 100644 drivers/misc/mei/hdcp/Makefile
 create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.c

diff --git a/drivers/misc/mei/Kconfig b/drivers/misc/mei/Kconfig
index c49e1d2269af..74e2c667dce0 100644
--- a/drivers/misc/mei/Kconfig
+++ b/drivers/misc/mei/Kconfig
@@ -43,3 +43,13 @@ config INTEL_MEI_TXE
 
 	  Supported SoCs:
 	  Intel Bay Trail
+
+config INTEL_MEI_HDCP
+	tristate "Intel HDCP2.2 services of ME Interface"
+	select INTEL_MEI_ME
+	depends on DRM_I915
+	help
+	  MEI Support for HDCP2.2 Services on Intel platforms.
+
+	  Enables the ME FW services required for HDCP2.2 support through
+	  I915 display driver of Intel.
diff --git a/drivers/misc/mei/Makefile b/drivers/misc/mei/Makefile
index d9215fc4e499..8c2d9565a4cb 100644
--- a/drivers/misc/mei/Makefile
+++ b/drivers/misc/mei/Makefile
@@ -24,3 +24,5 @@ mei-txe-objs += hw-txe.o
 
 mei-$(CONFIG_EVENT_TRACING) += mei-trace.o
 CFLAGS_mei-trace.o = -I$(src)
+
+obj-$(CONFIG_INTEL_MEI_HDCP) += hdcp/
diff --git a/drivers/misc/mei/hdcp/Makefile b/drivers/misc/mei/hdcp/Makefile
new file mode 100644
index 000000000000..adbe7506282d
--- /dev/null
+++ b/drivers/misc/mei/hdcp/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Copyright (c) 2019, Intel Corporation.
+#
+# Makefile - HDCP client driver for Intel MEI Bus Driver.
+
+obj-$(CONFIG_INTEL_MEI_HDCP) += mei_hdcp.o
diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
new file mode 100644
index 000000000000..993af6106ddb
--- /dev/null
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: (GPL-2.0)
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Mei_hdcp.c: HDCP client driver for mei bus
+ *
+ * Author:
+ * Ramalingam C <ramalingam.c@intel.com>
+ */
+
+/**
+ * DOC: MEI_HDCP Client Driver
+ *
+ * This is a client driver to the mei_bus to make the HDCP2.2 services of
+ * ME FW available for the interested consumers like I915.
+ *
+ * This module will act as a translation layer between HDCP protocol
+ * implementor(I915) and ME FW by translating HDCP2.2 authentication
+ * messages to ME FW command payloads and vice versa.
+ */
+
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/uuid.h>
+#include <linux/mei_cl_bus.h>
+
+static int mei_hdcp_probe(struct mei_cl_device *cldev,
+			  const struct mei_cl_device_id *id)
+{
+	int ret;
+
+	ret = mei_cldev_enable(cldev);
+	if (ret < 0)
+		dev_err(&cldev->dev, "mei_cldev_enable Failed. %d\n", ret);
+
+	return ret;
+}
+
+static int mei_hdcp_remove(struct mei_cl_device *cldev)
+{
+	return mei_cldev_disable(cldev);
+}
+
+#define MEI_UUID_HDCP GUID_INIT(0xB638AB7E, 0x94E2, 0x4EA2, 0xA5, \
+				0x52, 0xD1, 0xC5, 0x4B, 0x62, 0x7F, 0x04)
+
+static struct mei_cl_device_id mei_hdcp_tbl[] = {
+	{ .uuid = MEI_UUID_HDCP, .version = MEI_CL_VERSION_ANY },
+	{ }
+};
+MODULE_DEVICE_TABLE(mei, mei_hdcp_tbl);
+
+static struct mei_cl_driver mei_hdcp_driver = {
+	.id_table = mei_hdcp_tbl,
+	.name = KBUILD_MODNAME,
+	.probe = mei_hdcp_probe,
+	.remove	= mei_hdcp_remove,
+};
+
+module_mei_cl_driver(mei_hdcp_driver);
+
+MODULE_AUTHOR("Intel Corporation");
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("MEI HDCP");
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 03/16] misc/mei/hdcp: Define ME FW interface for HDCP2.2
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
  2019-02-21 18:11 ` [PATCH v15 01/16] mei: bus: whitelist hdcp client Ramalingam C
  2019-02-21 18:11 ` [PATCH v15 02/16] misc/mei/hdcp: Client driver for HDCP application Ramalingam C
@ 2019-02-21 18:11 ` Ramalingam C
  2019-02-21 18:11 ` [PATCH v15 04/16] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session Ramalingam C
                   ` (20 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:11 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Defines the HDCP specific ME FW interfaces such as Request CMDs,
payload structure for CMDs and their response status codes.

This patch defines payload size(Excluding the Header)for each WIRED
HDCP2.2 CMDs.

v2: Rebased.
v3:
  Extra comments are removed.
v4:
  %s/\/\*\*/\/\*
v5:
  Extra lines are removed.
v6:
  Remove redundant text from the License header
  %s/LPRIME_HALF/V_PRIME_HALF
  %s/uintxx_t/uxx
v7:
  Extra taps removed.
v8:
  k is defined as __be16 [Tomas]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Acked-by Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.h | 366 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 366 insertions(+)
 create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.h

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.h b/drivers/misc/mei/hdcp/mei_hdcp.h
new file mode 100644
index 000000000000..f695662eff7d
--- /dev/null
+++ b/drivers/misc/mei/hdcp/mei_hdcp.h
@@ -0,0 +1,366 @@
+/* SPDX-License-Identifier: (GPL-2.0+) */
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Authors:
+ * Ramalingam C <ramalingam.c@intel.com>
+ */
+
+#ifndef __MEI_HDCP_H__
+#define __MEI_HDCP_H__
+
+#include <drm/drm_hdcp.h>
+
+/* me_hdcp_status: Enumeration of all HDCP Status Codes */
+enum me_hdcp_status {
+	ME_HDCP_STATUS_SUCCESS			= 0x0000,
+
+	/* WiDi Generic Status Codes */
+	ME_HDCP_STATUS_INTERNAL_ERROR		= 0x1000,
+	ME_HDCP_STATUS_UNKNOWN_ERROR		= 0x1001,
+	ME_HDCP_STATUS_INCORRECT_API_VERSION	= 0x1002,
+	ME_HDCP_STATUS_INVALID_FUNCTION		= 0x1003,
+	ME_HDCP_STATUS_INVALID_BUFFER_LENGTH	= 0x1004,
+	ME_HDCP_STATUS_INVALID_PARAMS		= 0x1005,
+	ME_HDCP_STATUS_AUTHENTICATION_FAILED	= 0x1006,
+
+	/* WiDi Status Codes */
+	ME_HDCP_INVALID_SESSION_STATE		= 0x6000,
+	ME_HDCP_SRM_FRAGMENT_UNEXPECTED		= 0x6001,
+	ME_HDCP_SRM_INVALID_LENGTH		= 0x6002,
+	ME_HDCP_SRM_FRAGMENT_OFFSET_INVALID	= 0x6003,
+	ME_HDCP_SRM_VERIFICATION_FAILED		= 0x6004,
+	ME_HDCP_SRM_VERSION_TOO_OLD		= 0x6005,
+	ME_HDCP_RX_CERT_VERIFICATION_FAILED	= 0x6006,
+	ME_HDCP_RX_REVOKED			= 0x6007,
+	ME_HDCP_H_VERIFICATION_FAILED		= 0x6008,
+	ME_HDCP_REPEATER_CHECK_UNEXPECTED	= 0x6009,
+	ME_HDCP_TOPOLOGY_MAX_EXCEEDED		= 0x600A,
+	ME_HDCP_V_VERIFICATION_FAILED		= 0x600B,
+	ME_HDCP_L_VERIFICATION_FAILED		= 0x600C,
+	ME_HDCP_STREAM_KEY_ALLOC_FAILED		= 0x600D,
+	ME_HDCP_BASE_KEY_RESET_FAILED		= 0x600E,
+	ME_HDCP_NONCE_GENERATION_FAILED		= 0x600F,
+	ME_HDCP_STATUS_INVALID_E_KEY_STATE	= 0x6010,
+	ME_HDCP_STATUS_INVALID_CS_ICV		= 0x6011,
+	ME_HDCP_STATUS_INVALID_KB_KEY_STATE	= 0x6012,
+	ME_HDCP_STATUS_INVALID_PAVP_MODE_ICV	= 0x6013,
+	ME_HDCP_STATUS_INVALID_PAVP_MODE	= 0x6014,
+	ME_HDCP_STATUS_LC_MAX_ATTEMPTS		= 0x6015,
+
+	/* New status for HDCP 2.1 */
+	ME_HDCP_STATUS_MISMATCH_IN_M		= 0x6016,
+
+	/* New status code for HDCP 2.2 Rx */
+	ME_HDCP_STATUS_RX_PROV_NOT_ALLOWED	= 0x6017,
+	ME_HDCP_STATUS_RX_PROV_WRONG_SUBJECT	= 0x6018,
+	ME_HDCP_RX_NEEDS_PROVISIONING		= 0x6019,
+	ME_HDCP_BKSV_ICV_AUTH_FAILED		= 0x6020,
+	ME_HDCP_STATUS_INVALID_STREAM_ID	= 0x6021,
+	ME_HDCP_STATUS_CHAIN_NOT_INITIALIZED	= 0x6022,
+	ME_HDCP_FAIL_NOT_EXPECTED		= 0x6023,
+	ME_HDCP_FAIL_HDCP_OFF			= 0x6024,
+	ME_HDCP_FAIL_INVALID_PAVP_MEMORY_MODE	= 0x6025,
+	ME_HDCP_FAIL_AES_ECB_FAILURE		= 0x6026,
+	ME_HDCP_FEATURE_NOT_SUPPORTED		= 0x6027,
+	ME_HDCP_DMA_READ_ERROR			= 0x6028,
+	ME_HDCP_DMA_WRITE_ERROR			= 0x6029,
+	ME_HDCP_FAIL_INVALID_PACKET_SIZE	= 0x6030,
+	ME_HDCP_H264_PARSING_ERROR		= 0x6031,
+	ME_HDCP_HDCP2_ERRATA_VIDEO_VIOLATION	= 0x6032,
+	ME_HDCP_HDCP2_ERRATA_AUDIO_VIOLATION	= 0x6033,
+	ME_HDCP_TX_ACTIVE_ERROR			= 0x6034,
+	ME_HDCP_MODE_CHANGE_ERROR		= 0x6035,
+	ME_HDCP_STREAM_TYPE_ERROR		= 0x6036,
+	ME_HDCP_STREAM_MANAGE_NOT_POSSIBLE	= 0x6037,
+
+	ME_HDCP_STATUS_PORT_INVALID_COMMAND	= 0x6038,
+	ME_HDCP_STATUS_UNSUPPORTED_PROTOCOL	= 0x6039,
+	ME_HDCP_STATUS_INVALID_PORT_INDEX	= 0x603a,
+	ME_HDCP_STATUS_TX_AUTH_NEEDED		= 0x603b,
+	ME_HDCP_STATUS_NOT_INTEGRATED_PORT	= 0x603c,
+	ME_HDCP_STATUS_SESSION_MAX_REACHED	= 0x603d,
+
+	/* hdcp capable bit is not set in rx_caps(error is unique to DP) */
+	ME_HDCP_STATUS_NOT_HDCP_CAPABLE		= 0x6041,
+
+	ME_HDCP_STATUS_INVALID_STREAM_COUNT	= 0x6042,
+};
+
+#define HDCP_API_VERSION				0x00010000
+
+#define HDCP_M_LEN					16
+#define HDCP_KH_LEN					16
+
+/* Payload Buffer size(Excluding Header) for CMDs and corresponding response */
+/* Wired_Tx_AKE  */
+#define	WIRED_CMD_BUF_LEN_INITIATE_HDCP2_SESSION_IN	(4 + 1)
+#define	WIRED_CMD_BUF_LEN_INITIATE_HDCP2_SESSION_OUT	(4 + 8 + 3)
+
+#define	WIRED_CMD_BUF_LEN_VERIFY_RECEIVER_CERT_IN	(4 + 522 + 8 + 3)
+#define	WIRED_CMD_BUF_LEN_VERIFY_RECEIVER_CERT_MIN_OUT	(4 + 1 + 3 + 16 + 16)
+#define	WIRED_CMD_BUF_LEN_VERIFY_RECEIVER_CERT_MAX_OUT	(4 + 1 + 3 + 128)
+
+#define	WIRED_CMD_BUF_LEN_AKE_SEND_HPRIME_IN		(4 + 32)
+#define	WIRED_CMD_BUF_LEN_AKE_SEND_HPRIME_OUT		(4)
+
+#define	WIRED_CMD_BUF_LEN_SEND_PAIRING_INFO_IN		(4 + 16)
+#define	WIRED_CMD_BUF_LEN_SEND_PAIRING_INFO_OUT		(4)
+
+#define	WIRED_CMD_BUF_LEN_CLOSE_SESSION_IN		(4)
+#define	WIRED_CMD_BUF_LEN_CLOSE_SESSION_OUT		(4)
+
+/* Wired_Tx_LC */
+#define	WIRED_CMD_BUF_LEN_INIT_LOCALITY_CHECK_IN	(4)
+#define	WIRED_CMD_BUF_LEN_INIT_LOCALITY_CHECK_OUT	(4 + 8)
+
+#define	WIRED_CMD_BUF_LEN_VALIDATE_LOCALITY_IN		(4 + 32)
+#define	WIRED_CMD_BUF_LEN_VALIDATE_LOCALITY_OUT		(4)
+
+/* Wired_Tx_SKE */
+#define	WIRED_CMD_BUF_LEN_GET_SESSION_KEY_IN		(4)
+#define	WIRED_CMD_BUF_LEN_GET_SESSION_KEY_OUT		(4 + 16 + 8)
+
+/* Wired_Tx_SKE */
+#define	WIRED_CMD_BUF_LEN_ENABLE_AUTH_IN		(4 + 1)
+#define	WIRED_CMD_BUF_LEN_ENABLE_AUTH_OUT		(4)
+
+/* Wired_Tx_Repeater */
+#define	WIRED_CMD_BUF_LEN_VERIFY_REPEATER_IN		(4 + 2 + 3 + 16 + 155)
+#define	WIRED_CMD_BUF_LEN_VERIFY_REPEATER_OUT		(4 + 1 + 16)
+
+#define	WIRED_CMD_BUF_LEN_REPEATER_AUTH_STREAM_REQ_MIN_IN	(4 + 3 + \
+								32 + 2 + 2)
+
+#define	WIRED_CMD_BUF_LEN_REPEATER_AUTH_STREAM_REQ_OUT		(4)
+
+/* hdcp_command_id: Enumeration of all WIRED HDCP Command IDs */
+enum hdcp_command_id {
+	_WIDI_COMMAND_BASE		= 0x00030000,
+	WIDI_INITIATE_HDCP2_SESSION	= _WIDI_COMMAND_BASE,
+	HDCP_GET_SRM_STATUS,
+	HDCP_SEND_SRM_FRAGMENT,
+
+	/* The wired HDCP Tx commands */
+	_WIRED_COMMAND_BASE		= 0x00031000,
+	WIRED_INITIATE_HDCP2_SESSION	= _WIRED_COMMAND_BASE,
+	WIRED_VERIFY_RECEIVER_CERT,
+	WIRED_AKE_SEND_HPRIME,
+	WIRED_AKE_SEND_PAIRING_INFO,
+	WIRED_INIT_LOCALITY_CHECK,
+	WIRED_VALIDATE_LOCALITY,
+	WIRED_GET_SESSION_KEY,
+	WIRED_ENABLE_AUTH,
+	WIRED_VERIFY_REPEATER,
+	WIRED_REPEATER_AUTH_STREAM_REQ,
+	WIRED_CLOSE_SESSION,
+
+	_WIRED_COMMANDS_COUNT,
+};
+
+union encrypted_buff {
+	u8		e_kpub_km[HDCP_2_2_E_KPUB_KM_LEN];
+	u8		e_kh_km_m[HDCP_2_2_E_KH_KM_M_LEN];
+	struct {
+		u8	e_kh_km[HDCP_KH_LEN];
+		u8	m[HDCP_M_LEN];
+	} __packed;
+};
+
+/* HDCP HECI message header. All header values are little endian. */
+struct hdcp_cmd_header {
+	u32			api_version;
+	u32			command_id;
+	enum me_hdcp_status	status;
+	/* Length of the HECI message (excluding the header) */
+	u32			buffer_len;
+} __packed;
+
+/* Empty command request or response. No data follows the header. */
+struct hdcp_cmd_no_data {
+	struct hdcp_cmd_header header;
+} __packed;
+
+/* Uniquely identifies the hdcp port being addressed for a given command. */
+struct hdcp_port_id {
+	u8	integrated_port_type;
+	u8	physical_port;
+	u16	reserved;
+} __packed;
+
+/*
+ * Data structures for integrated wired HDCP2 Tx in
+ * support of the AKE protocol
+ */
+/* HECI struct for integrated wired HDCP Tx session initiation. */
+struct wired_cmd_initiate_hdcp2_session_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			protocol; /* for HDMI vs DP */
+} __packed;
+
+struct wired_cmd_initiate_hdcp2_session_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			r_tx[HDCP_2_2_RTX_LEN];
+	struct hdcp2_tx_caps	tx_caps;
+} __packed;
+
+/* HECI struct for ending an integrated wired HDCP Tx session. */
+struct wired_cmd_close_session_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+struct wired_cmd_close_session_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+/* HECI struct for integrated wired HDCP Tx Rx Cert verification. */
+struct wired_cmd_verify_receiver_cert_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	struct hdcp2_cert_rx	cert_rx;
+	u8			r_rx[HDCP_2_2_RRX_LEN];
+	u8			rx_caps[HDCP_2_2_RXCAPS_LEN];
+} __packed;
+
+struct wired_cmd_verify_receiver_cert_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			km_stored;
+	u8			reserved[3];
+	union encrypted_buff	ekm_buff;
+} __packed;
+
+/* HECI struct for verification of Rx's Hprime in a HDCP Tx session */
+struct wired_cmd_ake_send_hprime_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			h_prime[HDCP_2_2_H_PRIME_LEN];
+} __packed;
+
+struct wired_cmd_ake_send_hprime_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+/*
+ * HECI struct for sending in AKE pairing data generated by the Rx in an
+ * integrated wired HDCP Tx session.
+ */
+struct wired_cmd_ake_send_pairing_info_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			e_kh_km[HDCP_2_2_E_KH_KM_LEN];
+} __packed;
+
+struct wired_cmd_ake_send_pairing_info_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+/* Data structures for integrated wired HDCP2 Tx in support of the LC protocol*/
+/*
+ * HECI struct for initiating locality check with an
+ * integrated wired HDCP Tx session.
+ */
+struct wired_cmd_init_locality_check_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+struct wired_cmd_init_locality_check_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			r_n[HDCP_2_2_RN_LEN];
+} __packed;
+
+/*
+ * HECI struct for validating an Rx's LPrime value in an
+ * integrated wired HDCP Tx session.
+ */
+struct wired_cmd_validate_locality_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			l_prime[HDCP_2_2_L_PRIME_LEN];
+} __packed;
+
+struct wired_cmd_validate_locality_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+/*
+ * Data structures for integrated wired HDCP2 Tx in support of the
+ * SKE protocol
+ */
+/* HECI struct for creating session key */
+struct wired_cmd_get_session_key_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+struct wired_cmd_get_session_key_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			e_dkey_ks[HDCP_2_2_E_DKEY_KS_LEN];
+	u8			r_iv[HDCP_2_2_RIV_LEN];
+} __packed;
+
+/* HECI struct for the Tx enable authentication command */
+struct wired_cmd_enable_auth_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			stream_type;
+} __packed;
+
+struct wired_cmd_enable_auth_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+/*
+ * Data structures for integrated wired HDCP2 Tx in support of
+ * the repeater protocols
+ */
+/*
+ * HECI struct for verifying the downstream repeater's HDCP topology in an
+ * integrated wired HDCP Tx session.
+ */
+struct wired_cmd_verify_repeater_in {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			rx_info[HDCP_2_2_RXINFO_LEN];
+	u8			seq_num_v[HDCP_2_2_SEQ_NUM_LEN];
+	u8			v_prime[HDCP_2_2_V_PRIME_HALF_LEN];
+	u8			receiver_ids[HDCP_2_2_RECEIVER_IDS_MAX_LEN];
+} __packed;
+
+struct wired_cmd_verify_repeater_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+	u8			content_type_supported;
+	u8			v[HDCP_2_2_V_PRIME_HALF_LEN];
+} __packed;
+
+/*
+ * HECI struct in support of stream management in an
+ * integrated wired HDCP Tx session.
+ */
+struct wired_cmd_repeater_auth_stream_req_in {
+	struct hdcp_cmd_header		header;
+	struct hdcp_port_id		port;
+	u8				seq_num_m[HDCP_2_2_SEQ_NUM_LEN];
+	u8				m_prime[HDCP_2_2_MPRIME_LEN];
+	__be16				k;
+	struct hdcp2_streamid_type	streams[1];
+} __packed;
+
+struct wired_cmd_repeater_auth_stream_req_out {
+	struct hdcp_cmd_header	header;
+	struct hdcp_port_id	port;
+} __packed;
+
+#endif /* __MEI_HDCP_H__ */
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 04/16] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (2 preceding siblings ...)
  2019-02-21 18:11 ` [PATCH v15 03/16] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Ramalingam C
@ 2019-02-21 18:11 ` Ramalingam C
  2019-02-23  0:34   ` kbuild test robot
  2019-02-21 18:11 ` [PATCH v15 05/16] misc/mei/hdcp: Verify Receiver Cert and prepare km Ramalingam C
                   ` (19 subsequent siblings)
  23 siblings, 1 reply; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:11 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Request ME FW to start the HDCP2.2 session for an intel port.
Prepares payloads for command WIRED_INITIATE_HDCP2_SESSION and sends
to ME FW.

On Success, ME FW will start a HDCP2.2 session for the port and
provides the content for HDCP2.2 AKE_Init message.

v2: Rebased.
v3:
  cldev is add as a separate parameter [Tomas]
  Redundant comment and typecast are removed [Tomas]
v4:
  %zd is used for size [Alexander]
  %s/return -1/return -EIO [Alexander]
  Spellings in commit msg is fixed [Uma]
v5: Rebased.
v6:
  Collected the rb-ed by.
  Realigning the patches in the series.
v7:
  Adjust to the new mei interface.
  Fix for kdoc.
v8:
  K-Doc Addition.
  memcpy for const length.
v9:
  s/mei_hdcp_ddi/mei_fw_ddi
  s/i915_port/mei_i915_port [Tomas]
  renamed func as mei_hdcp_* [Tomas]
  Instead of macro, inline func for ddi index is used. [Tomas]
v10:
  Switch case for the coversion between i915_port to mei_ddi [Tomas]
  Kernel doc fix.
v11:
  mei_hdcp_ops is defined as const. [Tomas]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 94 ++++++++++++++++++++++++++++++++++++++++
 drivers/misc/mei/hdcp/mei_hdcp.h | 11 +++++
 2 files changed, 105 insertions(+)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index 993af6106ddb..e2587f8e8b94 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -23,6 +23,100 @@
 #include <linux/slab.h>
 #include <linux/uuid.h>
 #include <linux/mei_cl_bus.h>
+#include <drm/drm_connector.h>
+#include <drm/i915_component.h>
+#include <drm/i915_mei_hdcp_interface.h>
+
+#include "mei_hdcp.h"
+
+static inline u8 mei_get_ddi_index(enum port port)
+{
+	switch (port) {
+	case PORT_A:
+		return MEI_DDI_A;
+	case PORT_B ... PORT_F:
+		return (u8)port;
+	default:
+		return MEI_DDI_INVALID_PORT;
+	}
+}
+
+/**
+ * mei_hdcp_initiate_session() - Initiate a Wired HDCP2.2 Tx Session in ME FW
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @ake_data: AKE_Init msg output.
+ *
+ * Return:  0 on Success, <0 on Failure.
+ */
+static int
+mei_hdcp_initiate_session(struct device *dev, struct hdcp_port_data *data,
+			  struct hdcp2_ake_init *ake_data)
+{
+	struct wired_cmd_initiate_hdcp2_session_in session_init_in = { { 0 } };
+	struct wired_cmd_initiate_hdcp2_session_out
+						session_init_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data || !ake_data)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	session_init_in.header.api_version = HDCP_API_VERSION;
+	session_init_in.header.command_id = WIRED_INITIATE_HDCP2_SESSION;
+	session_init_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	session_init_in.header.buffer_len =
+				WIRED_CMD_BUF_LEN_INITIATE_HDCP2_SESSION_IN;
+
+	session_init_in.port.integrated_port_type = data->port_type;
+	session_init_in.port.physical_port = mei_get_ddi_index(data->port);
+	session_init_in.protocol = data->protocol;
+
+	byte = mei_cldev_send(cldev, (u8 *)&session_init_in,
+			      sizeof(session_init_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&session_init_out,
+			      sizeof(session_init_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (session_init_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X Failed. Status: 0x%X\n",
+			WIRED_INITIATE_HDCP2_SESSION,
+			session_init_out.header.status);
+		return -EIO;
+	}
+
+	ake_data->msg_id = HDCP_2_2_AKE_INIT;
+	ake_data->tx_caps = session_init_out.tx_caps;
+	memcpy(ake_data->r_tx, session_init_out.r_tx, HDCP_2_2_RTX_LEN);
+
+	return 0;
+}
+
+static const __attribute__((unused))
+struct i915_hdcp_component_ops mei_hdcp_ops = {
+	.owner = THIS_MODULE,
+	.initiate_hdcp2_session = mei_hdcp_initiate_session,
+	.verify_receiver_cert_prepare_km = NULL,
+	.verify_hprime = NULL,
+	.store_pairing_info = NULL,
+	.initiate_locality_check = NULL,
+	.verify_lprime = NULL,
+	.get_session_key = NULL,
+	.repeater_check_flow_prepare_ack = NULL,
+	.verify_mprime = NULL,
+	.enable_hdcp_authentication = NULL,
+	.close_hdcp_session = NULL,
+};
 
 static int mei_hdcp_probe(struct mei_cl_device *cldev,
 			  const struct mei_cl_device_id *id)
diff --git a/drivers/misc/mei/hdcp/mei_hdcp.h b/drivers/misc/mei/hdcp/mei_hdcp.h
index f695662eff7d..5f74b908e486 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.h
+++ b/drivers/misc/mei/hdcp/mei_hdcp.h
@@ -363,4 +363,15 @@ struct wired_cmd_repeater_auth_stream_req_out {
 	struct hdcp_port_id	port;
 } __packed;
 
+enum mei_fw_ddi {
+	MEI_DDI_INVALID_PORT = 0x0,
+
+	MEI_DDI_B = 1,
+	MEI_DDI_C,
+	MEI_DDI_D,
+	MEI_DDI_E,
+	MEI_DDI_F,
+	MEI_DDI_A = 7,
+	MEI_DDI_RANGE_END = MEI_DDI_A,
+};
 #endif /* __MEI_HDCP_H__ */
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 05/16] misc/mei/hdcp: Verify Receiver Cert and prepare km
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (3 preceding siblings ...)
  2019-02-21 18:11 ` [PATCH v15 04/16] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session Ramalingam C
@ 2019-02-21 18:11 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 06/16] misc/mei/hdcp: Verify H_prime Ramalingam C
                   ` (18 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:11 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Requests for verification for receiver certification and also the
preparation for next AKE auth message with km.

On Success ME FW validate the HDCP2.2 receivers certificate and do the
revocation check on the receiver ID. AKE_Stored_Km will be prepared if
the receiver is already paired, else AKE_No_Stored_Km will be prepared.

Here AKE_Stored_Km and AKE_No_Stored_Km are HDCP2.2 protocol msgs.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd is used for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
v5: Rebased.
v6:
  Collected the Rb-ed by.
  Rebasing.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc Addition. [Tomas]
  memcpy for const length.
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  Fixed the conversion of u8 to bool [Tomas]
  K-Doc fix [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 83 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 82 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index e2587f8e8b94..fc2a5ce8b156 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -102,11 +102,92 @@ mei_hdcp_initiate_session(struct device *dev, struct hdcp_port_data *data,
 	return 0;
 }
 
+/**
+ * mei_hdcp_verify_receiver_cert_prepare_km() - Verify the Receiver Certificate
+ * AKE_Send_Cert and prepare AKE_Stored_Km/AKE_No_Stored_Km
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @rx_cert: AKE_Send_Cert for verification
+ * @km_stored: Pairing status flag output
+ * @ek_pub_km: AKE_Stored_Km/AKE_No_Stored_Km output msg
+ * @msg_sz : size of AKE_XXXXX_Km output msg
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int
+mei_hdcp_verify_receiver_cert_prepare_km(struct device *dev,
+					 struct hdcp_port_data *data,
+					 struct hdcp2_ake_send_cert *rx_cert,
+					 bool *km_stored,
+					 struct hdcp2_ake_no_stored_km
+								*ek_pub_km,
+					 size_t *msg_sz)
+{
+	struct wired_cmd_verify_receiver_cert_in verify_rxcert_in = { { 0 } };
+	struct wired_cmd_verify_receiver_cert_out verify_rxcert_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data || !rx_cert || !km_stored || !ek_pub_km || !msg_sz)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	verify_rxcert_in.header.api_version = HDCP_API_VERSION;
+	verify_rxcert_in.header.command_id = WIRED_VERIFY_RECEIVER_CERT;
+	verify_rxcert_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	verify_rxcert_in.header.buffer_len =
+				WIRED_CMD_BUF_LEN_VERIFY_RECEIVER_CERT_IN;
+
+	verify_rxcert_in.port.integrated_port_type = data->port_type;
+	verify_rxcert_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	verify_rxcert_in.cert_rx = rx_cert->cert_rx;
+	memcpy(verify_rxcert_in.r_rx, &rx_cert->r_rx, HDCP_2_2_RRX_LEN);
+	memcpy(verify_rxcert_in.rx_caps, rx_cert->rx_caps, HDCP_2_2_RXCAPS_LEN);
+
+	byte = mei_cldev_send(cldev, (u8 *)&verify_rxcert_in,
+			      sizeof(verify_rxcert_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed: %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&verify_rxcert_out,
+			      sizeof(verify_rxcert_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed: %zd\n", byte);
+		return byte;
+	}
+
+	if (verify_rxcert_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X Failed. Status: 0x%X\n",
+			WIRED_VERIFY_RECEIVER_CERT,
+			verify_rxcert_out.header.status);
+		return -EIO;
+	}
+
+	*km_stored = !!verify_rxcert_out.km_stored;
+	if (verify_rxcert_out.km_stored) {
+		ek_pub_km->msg_id = HDCP_2_2_AKE_STORED_KM;
+		*msg_sz = sizeof(struct hdcp2_ake_stored_km);
+	} else {
+		ek_pub_km->msg_id = HDCP_2_2_AKE_NO_STORED_KM;
+		*msg_sz = sizeof(struct hdcp2_ake_no_stored_km);
+	}
+
+	memcpy(ek_pub_km->e_kpub_km, &verify_rxcert_out.ekm_buff,
+	       sizeof(verify_rxcert_out.ekm_buff));
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
 	.initiate_hdcp2_session = mei_hdcp_initiate_session,
-	.verify_receiver_cert_prepare_km = NULL,
+	.verify_receiver_cert_prepare_km =
+				mei_hdcp_verify_receiver_cert_prepare_km,
 	.verify_hprime = NULL,
 	.store_pairing_info = NULL,
 	.initiate_locality_check = NULL,
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 06/16] misc/mei/hdcp: Verify H_prime
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (4 preceding siblings ...)
  2019-02-21 18:11 ` [PATCH v15 05/16] misc/mei/hdcp: Verify Receiver Cert and prepare km Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 07/16] misc/mei/hdcp: Store the HDCP Pairing info Ramalingam C
                   ` (17 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Requests for the verification of AKE_Send_H_prime.

ME will calculate the H and comparing it with received H_Prime.
The result will be returned as status.

Here AKE_Send_H_prime is a HDCP2.2 Authentication msg.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  Styles and typos fixed [Uma]
v5: Rebased.
v6:
  Collected the Rb-ed by.
  Rebasing.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc Addition [Tomas]
  memcpy for const length.
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 58 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index fc2a5ce8b156..37e854d7240e 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -182,13 +182,69 @@ mei_hdcp_verify_receiver_cert_prepare_km(struct device *dev,
 	return 0;
 }
 
+/**
+ * mei_hdcp_verify_hprime() - Verify AKE_Send_H_prime at ME FW.
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @rx_hprime: AKE_Send_H_prime msg for ME FW verification
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int
+mei_hdcp_verify_hprime(struct device *dev, struct hdcp_port_data *data,
+		       struct hdcp2_ake_send_hprime *rx_hprime)
+{
+	struct wired_cmd_ake_send_hprime_in send_hprime_in = { { 0 } };
+	struct wired_cmd_ake_send_hprime_out send_hprime_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data || !rx_hprime)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	send_hprime_in.header.api_version = HDCP_API_VERSION;
+	send_hprime_in.header.command_id = WIRED_AKE_SEND_HPRIME;
+	send_hprime_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	send_hprime_in.header.buffer_len = WIRED_CMD_BUF_LEN_AKE_SEND_HPRIME_IN;
+
+	send_hprime_in.port.integrated_port_type = data->port_type;
+	send_hprime_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	memcpy(send_hprime_in.h_prime, rx_hprime->h_prime,
+	       HDCP_2_2_H_PRIME_LEN);
+
+	byte = mei_cldev_send(cldev, (u8 *)&send_hprime_in,
+			      sizeof(send_hprime_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&send_hprime_out,
+			      sizeof(send_hprime_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (send_hprime_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X Failed. Status: 0x%X\n",
+			WIRED_AKE_SEND_HPRIME, send_hprime_out.header.status);
+		return -EIO;
+	}
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
 	.initiate_hdcp2_session = mei_hdcp_initiate_session,
 	.verify_receiver_cert_prepare_km =
 				mei_hdcp_verify_receiver_cert_prepare_km,
-	.verify_hprime = NULL,
+	.verify_hprime = mei_hdcp_verify_hprime,
 	.store_pairing_info = NULL,
 	.initiate_locality_check = NULL,
 	.verify_lprime = NULL,
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 07/16] misc/mei/hdcp: Store the HDCP Pairing info
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (5 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 06/16] misc/mei/hdcp: Verify H_prime Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 08/16] misc/mei/hdcp: Initiate Locality check Ramalingam C
                   ` (16 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Provides Pairing info to ME to store.

Pairing is a process to fast track the subsequent authentication
with the same HDCP sink.

On Success, received HDCP pairing info is stored in non-volatile
memory of ME.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  Style fixed [Uma]
v5: Rebased.
v6:
  Collected the Rb-ed by.
  Rebasing.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc addition. [Tomas]
  memcpy for const length.
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 60 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 59 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index 37e854d7240e..d5fbb2dbba60 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -238,6 +238,64 @@ mei_hdcp_verify_hprime(struct device *dev, struct hdcp_port_data *data,
 	return 0;
 }
 
+/**
+ * mei_hdcp_store_pairing_info() - Store pairing info received at ME FW
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @pairing_info: AKE_Send_Pairing_Info msg input to ME FW
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int
+mei_hdcp_store_pairing_info(struct device *dev, struct hdcp_port_data *data,
+			    struct hdcp2_ake_send_pairing_info *pairing_info)
+{
+	struct wired_cmd_ake_send_pairing_info_in pairing_info_in = { { 0 } };
+	struct wired_cmd_ake_send_pairing_info_out pairing_info_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data || !pairing_info)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	pairing_info_in.header.api_version = HDCP_API_VERSION;
+	pairing_info_in.header.command_id = WIRED_AKE_SEND_PAIRING_INFO;
+	pairing_info_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	pairing_info_in.header.buffer_len =
+					WIRED_CMD_BUF_LEN_SEND_PAIRING_INFO_IN;
+
+	pairing_info_in.port.integrated_port_type = data->port_type;
+	pairing_info_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km,
+	       HDCP_2_2_E_KH_KM_LEN);
+
+	byte = mei_cldev_send(cldev, (u8 *)&pairing_info_in,
+			      sizeof(pairing_info_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&pairing_info_out,
+			      sizeof(pairing_info_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (pairing_info_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X failed. Status: 0x%X\n",
+			WIRED_AKE_SEND_PAIRING_INFO,
+			pairing_info_out.header.status);
+		return -EIO;
+	}
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
@@ -245,7 +303,7 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.verify_receiver_cert_prepare_km =
 				mei_hdcp_verify_receiver_cert_prepare_km,
 	.verify_hprime = mei_hdcp_verify_hprime,
-	.store_pairing_info = NULL,
+	.store_pairing_info = mei_hdcp_store_pairing_info,
 	.initiate_locality_check = NULL,
 	.verify_lprime = NULL,
 	.get_session_key = NULL,
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 08/16] misc/mei/hdcp: Initiate Locality check
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (6 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 07/16] misc/mei/hdcp: Store the HDCP Pairing info Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 09/16] misc/mei/hdcp: Verify L_prime Ramalingam C
                   ` (15 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Requests ME to start the second stage of HDCP2.2 authentication,
called Locality Check.

On Success, ME FW will provide LC_Init message to send to hdcp sink.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd used for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  Style fixed [Uma]
v5: Rebased.
v6:
  Collected the Rb-ed by.
  Rebasing.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc addition. [Tomas]
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 57 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 56 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index d5fbb2dbba60..7c880efe9134 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -296,6 +296,61 @@ mei_hdcp_store_pairing_info(struct device *dev, struct hdcp_port_data *data,
 	return 0;
 }
 
+/**
+ * mei_hdcp_initiate_locality_check() - Prepare LC_Init
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @lc_init_data: LC_Init msg output
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int
+mei_hdcp_initiate_locality_check(struct device *dev,
+				 struct hdcp_port_data *data,
+				 struct hdcp2_lc_init *lc_init_data)
+{
+	struct wired_cmd_init_locality_check_in lc_init_in = { { 0 } };
+	struct wired_cmd_init_locality_check_out lc_init_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data || !lc_init_data)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	lc_init_in.header.api_version = HDCP_API_VERSION;
+	lc_init_in.header.command_id = WIRED_INIT_LOCALITY_CHECK;
+	lc_init_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	lc_init_in.header.buffer_len = WIRED_CMD_BUF_LEN_INIT_LOCALITY_CHECK_IN;
+
+	lc_init_in.port.integrated_port_type = data->port_type;
+	lc_init_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	byte = mei_cldev_send(cldev, (u8 *)&lc_init_in, sizeof(lc_init_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&lc_init_out, sizeof(lc_init_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (lc_init_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X Failed. status: 0x%X\n",
+			WIRED_INIT_LOCALITY_CHECK, lc_init_out.header.status);
+		return -EIO;
+	}
+
+	lc_init_data->msg_id = HDCP_2_2_LC_INIT;
+	memcpy(lc_init_data->r_n, lc_init_out.r_n, HDCP_2_2_RN_LEN);
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
@@ -304,7 +359,7 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 				mei_hdcp_verify_receiver_cert_prepare_km,
 	.verify_hprime = mei_hdcp_verify_hprime,
 	.store_pairing_info = mei_hdcp_store_pairing_info,
-	.initiate_locality_check = NULL,
+	.initiate_locality_check = mei_hdcp_initiate_locality_check,
 	.verify_lprime = NULL,
 	.get_session_key = NULL,
 	.repeater_check_flow_prepare_ack = NULL,
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 09/16] misc/mei/hdcp: Verify L_prime
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (7 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 08/16] misc/mei/hdcp: Initiate Locality check Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 10/16] misc/mei/hdcp: Prepare Session Key Ramalingam C
                   ` (14 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Request to ME to verify the LPrime received from HDCP sink.

On Success, ME FW will verify the received Lprime by calculating and
comparing with L.

This represents the completion of Locality Check.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  Style fixed [Uma]
v5: Rebased.
v6:
  Collected the Rb-ed by.
  Rebasing.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc addition. [Tomas]
  memcpy for const length.
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 60 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 59 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index 7c880efe9134..03f8af257ecc 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -351,6 +351,64 @@ mei_hdcp_initiate_locality_check(struct device *dev,
 	return 0;
 }
 
+/**
+ * mei_hdcp_verify_lprime() - Verify lprime.
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @rx_lprime: LC_Send_L_prime msg for ME FW verification
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int
+mei_hdcp_verify_lprime(struct device *dev, struct hdcp_port_data *data,
+		       struct hdcp2_lc_send_lprime *rx_lprime)
+{
+	struct wired_cmd_validate_locality_in verify_lprime_in = { { 0 } };
+	struct wired_cmd_validate_locality_out verify_lprime_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data || !rx_lprime)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	verify_lprime_in.header.api_version = HDCP_API_VERSION;
+	verify_lprime_in.header.command_id = WIRED_VALIDATE_LOCALITY;
+	verify_lprime_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	verify_lprime_in.header.buffer_len =
+					WIRED_CMD_BUF_LEN_VALIDATE_LOCALITY_IN;
+
+	verify_lprime_in.port.integrated_port_type = data->port_type;
+	verify_lprime_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	memcpy(verify_lprime_in.l_prime, rx_lprime->l_prime,
+	       HDCP_2_2_L_PRIME_LEN);
+
+	byte = mei_cldev_send(cldev, (u8 *)&verify_lprime_in,
+			      sizeof(verify_lprime_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&verify_lprime_out,
+			      sizeof(verify_lprime_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (verify_lprime_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X failed. status: 0x%X\n",
+			WIRED_VALIDATE_LOCALITY,
+			verify_lprime_out.header.status);
+		return -EIO;
+	}
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
@@ -360,7 +418,7 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.verify_hprime = mei_hdcp_verify_hprime,
 	.store_pairing_info = mei_hdcp_store_pairing_info,
 	.initiate_locality_check = mei_hdcp_initiate_locality_check,
-	.verify_lprime = NULL,
+	.verify_lprime = mei_hdcp_verify_lprime,
 	.get_session_key = NULL,
 	.repeater_check_flow_prepare_ack = NULL,
 	.verify_mprime = NULL,
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 10/16] misc/mei/hdcp: Prepare Session Key
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (8 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 09/16] misc/mei/hdcp: Verify L_prime Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 11/16] misc/mei/hdcp: Repeater topology verification and ack Ramalingam C
                   ` (13 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Request to ME to prepare the encrypted session key.

On Success, ME provides Encrypted session key. Function populates
the HDCP2.2 authentication msg SKE_Send_Eks.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  Style fixed [Uma]
v5: Rebased.
v6:
  Collected the Rb-ed by.
  Rebasing.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc addition. [Tomas]
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 59 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 58 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index 03f8af257ecc..9dc17654ffbc 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -409,6 +409,63 @@ mei_hdcp_verify_lprime(struct device *dev, struct hdcp_port_data *data,
 	return 0;
 }
 
+/**
+ * mei_hdcp_get_session_key() - Prepare SKE_Send_Eks.
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @ske_data: SKE_Send_Eks msg output from ME FW.
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int mei_hdcp_get_session_key(struct device *dev,
+				    struct hdcp_port_data *data,
+				    struct hdcp2_ske_send_eks *ske_data)
+{
+	struct wired_cmd_get_session_key_in get_skey_in = { { 0 } };
+	struct wired_cmd_get_session_key_out get_skey_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data || !ske_data)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	get_skey_in.header.api_version = HDCP_API_VERSION;
+	get_skey_in.header.command_id = WIRED_GET_SESSION_KEY;
+	get_skey_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	get_skey_in.header.buffer_len = WIRED_CMD_BUF_LEN_GET_SESSION_KEY_IN;
+
+	get_skey_in.port.integrated_port_type = data->port_type;
+	get_skey_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	byte = mei_cldev_send(cldev, (u8 *)&get_skey_in, sizeof(get_skey_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&get_skey_out, sizeof(get_skey_out));
+
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (get_skey_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X failed. status: 0x%X\n",
+			WIRED_GET_SESSION_KEY, get_skey_out.header.status);
+		return -EIO;
+	}
+
+	ske_data->msg_id = HDCP_2_2_SKE_SEND_EKS;
+	memcpy(ske_data->e_dkey_ks, get_skey_out.e_dkey_ks,
+	       HDCP_2_2_E_DKEY_KS_LEN);
+	memcpy(ske_data->riv, get_skey_out.r_iv, HDCP_2_2_RIV_LEN);
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
@@ -419,7 +476,7 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.store_pairing_info = mei_hdcp_store_pairing_info,
 	.initiate_locality_check = mei_hdcp_initiate_locality_check,
 	.verify_lprime = mei_hdcp_verify_lprime,
-	.get_session_key = NULL,
+	.get_session_key = mei_hdcp_get_session_key,
 	.repeater_check_flow_prepare_ack = NULL,
 	.verify_mprime = NULL,
 	.enable_hdcp_authentication = NULL,
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 11/16] misc/mei/hdcp: Repeater topology verification and ack
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (9 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 10/16] misc/mei/hdcp: Prepare Session Key Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 12/16] misc/mei/hdcp: Verify M_prime Ramalingam C
                   ` (12 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Request ME to verify the downstream topology information received.

ME FW will validate the Repeaters receiver id list and
downstream topology.

On Success ME FW will provide the Least Significant
128bits of VPrime, which forms the repeater ack.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  Style and typos fixed [Uma]
v5: Rebased.
v6: Rebasing.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc addition. [Tomas]
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 77 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 76 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index 9dc17654ffbc..e541d0d290e3 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -466,6 +466,80 @@ static int mei_hdcp_get_session_key(struct device *dev,
 	return 0;
 }
 
+/**
+ * mei_hdcp_repeater_check_flow_prepare_ack() - Validate the Downstream topology
+ * and prepare rep_ack.
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @rep_topology: Receiver ID List to be validated
+ * @rep_send_ack : repeater ack from ME FW.
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int
+mei_hdcp_repeater_check_flow_prepare_ack(struct device *dev,
+					 struct hdcp_port_data *data,
+					 struct hdcp2_rep_send_receiverid_list
+							*rep_topology,
+					 struct hdcp2_rep_send_ack
+							*rep_send_ack)
+{
+	struct wired_cmd_verify_repeater_in verify_repeater_in = { { 0 } };
+	struct wired_cmd_verify_repeater_out verify_repeater_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !rep_topology || !rep_send_ack || !data)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	verify_repeater_in.header.api_version = HDCP_API_VERSION;
+	verify_repeater_in.header.command_id = WIRED_VERIFY_REPEATER;
+	verify_repeater_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	verify_repeater_in.header.buffer_len =
+					WIRED_CMD_BUF_LEN_VERIFY_REPEATER_IN;
+
+	verify_repeater_in.port.integrated_port_type = data->port_type;
+	verify_repeater_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	memcpy(verify_repeater_in.rx_info, rep_topology->rx_info,
+	       HDCP_2_2_RXINFO_LEN);
+	memcpy(verify_repeater_in.seq_num_v, rep_topology->seq_num_v,
+	       HDCP_2_2_SEQ_NUM_LEN);
+	memcpy(verify_repeater_in.v_prime, rep_topology->v_prime,
+	       HDCP_2_2_V_PRIME_HALF_LEN);
+	memcpy(verify_repeater_in.receiver_ids, rep_topology->receiver_ids,
+	       HDCP_2_2_RECEIVER_IDS_MAX_LEN);
+
+	byte = mei_cldev_send(cldev, (u8 *)&verify_repeater_in,
+			      sizeof(verify_repeater_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&verify_repeater_out,
+			      sizeof(verify_repeater_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (verify_repeater_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X failed. status: 0x%X\n",
+			WIRED_VERIFY_REPEATER,
+			verify_repeater_out.header.status);
+		return -EIO;
+	}
+
+	memcpy(rep_send_ack->v, verify_repeater_out.v,
+	       HDCP_2_2_V_PRIME_HALF_LEN);
+	rep_send_ack->msg_id = HDCP_2_2_REP_SEND_ACK;
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
@@ -477,7 +551,8 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.initiate_locality_check = mei_hdcp_initiate_locality_check,
 	.verify_lprime = mei_hdcp_verify_lprime,
 	.get_session_key = mei_hdcp_get_session_key,
-	.repeater_check_flow_prepare_ack = NULL,
+	.repeater_check_flow_prepare_ack =
+				mei_hdcp_repeater_check_flow_prepare_ack,
 	.verify_mprime = NULL,
 	.enable_hdcp_authentication = NULL,
 	.close_hdcp_session = NULL,
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 12/16] misc/mei/hdcp: Verify M_prime
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (10 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 11/16] misc/mei/hdcp: Repeater topology verification and ack Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 13/16] misc/mei/hdcp: Enabling the HDCP authentication Ramalingam C
                   ` (11 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Request to ME to verify the M_Prime received from the HDCP sink.

ME FW will calculate the M and compare with M_prime received
as part of RepeaterAuth_Stream_Ready, which is HDCP2.2 protocol msg.

On successful completion of this stage, downstream propagation of
the stream management info is completed.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  endianness conversion func is moved to drm_hdcp.h [Uma]
v5: Rebased.
v6:
  Collected the Rb-ed by.
  Rebasing.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc addition. [Tomas]
  drm_hdcp2_u32_to_seq_num() is used for u32 to seq_num.
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  %s/__swab16/cpu_to_be16 [Tomas]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 67 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 66 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index e541d0d290e3..4bcb1ddeac1c 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -540,6 +540,71 @@ mei_hdcp_repeater_check_flow_prepare_ack(struct device *dev,
 	return 0;
 }
 
+/**
+ * mei_hdcp_verify_mprime() - Verify mprime.
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ * @stream_ready: RepeaterAuth_Stream_Ready msg for ME FW verification.
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int mei_hdcp_verify_mprime(struct device *dev,
+				  struct hdcp_port_data *data,
+				  struct hdcp2_rep_stream_ready *stream_ready)
+{
+	struct wired_cmd_repeater_auth_stream_req_in
+					verify_mprime_in = { { 0 } };
+	struct wired_cmd_repeater_auth_stream_req_out
+					verify_mprime_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !stream_ready || !data)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	verify_mprime_in.header.api_version = HDCP_API_VERSION;
+	verify_mprime_in.header.command_id = WIRED_REPEATER_AUTH_STREAM_REQ;
+	verify_mprime_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	verify_mprime_in.header.buffer_len =
+			WIRED_CMD_BUF_LEN_REPEATER_AUTH_STREAM_REQ_MIN_IN;
+
+	verify_mprime_in.port.integrated_port_type = data->port_type;
+	verify_mprime_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	memcpy(verify_mprime_in.m_prime, stream_ready->m_prime,
+	       HDCP_2_2_MPRIME_LEN);
+	drm_hdcp2_u32_to_seq_num(verify_mprime_in.seq_num_m, data->seq_num_m);
+	memcpy(verify_mprime_in.streams, data->streams,
+	       (data->k * sizeof(struct hdcp2_streamid_type)));
+
+	verify_mprime_in.k = cpu_to_be16(data->k);
+
+	byte = mei_cldev_send(cldev, (u8 *)&verify_mprime_in,
+			      sizeof(verify_mprime_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&verify_mprime_out,
+			      sizeof(verify_mprime_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (verify_mprime_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X failed. status: 0x%X\n",
+			WIRED_REPEATER_AUTH_STREAM_REQ,
+			verify_mprime_out.header.status);
+		return -EIO;
+	}
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
@@ -553,7 +618,7 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.get_session_key = mei_hdcp_get_session_key,
 	.repeater_check_flow_prepare_ack =
 				mei_hdcp_repeater_check_flow_prepare_ack,
-	.verify_mprime = NULL,
+	.verify_mprime = mei_hdcp_verify_mprime,
 	.enable_hdcp_authentication = NULL,
 	.close_hdcp_session = NULL,
 };
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 13/16] misc/mei/hdcp: Enabling the HDCP authentication
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (11 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 12/16] misc/mei/hdcp: Verify M_prime Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 14/16] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session Ramalingam C
                   ` (10 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Request to ME to configure a port as authenticated.

On Success, ME FW will mark the port as authenticated and provides
HDCP cipher with the encryption keys.

Enabling the Authentication can be requested once all stages of
HDCP2.2 authentication is completed by interacting with ME FW.

Only after this stage, driver can enable the HDCP encryption for
the port, through HW registers.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  Style and typos fixed [Uma]
v5: Rebased.
v6:
  Collected the Rb-ed by.
  Rebased.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc addition. [Tomas]
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 55 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index 4bcb1ddeac1c..1e8c6f1ee4a5 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -605,6 +605,59 @@ static int mei_hdcp_verify_mprime(struct device *dev,
 	return 0;
 }
 
+/**
+ * mei_hdcp_enable_authentication() - Mark a port as authenticated
+ * through ME FW
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int mei_hdcp_enable_authentication(struct device *dev,
+					  struct hdcp_port_data *data)
+{
+	struct wired_cmd_enable_auth_in enable_auth_in = { { 0 } };
+	struct wired_cmd_enable_auth_out enable_auth_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	enable_auth_in.header.api_version = HDCP_API_VERSION;
+	enable_auth_in.header.command_id = WIRED_ENABLE_AUTH;
+	enable_auth_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	enable_auth_in.header.buffer_len = WIRED_CMD_BUF_LEN_ENABLE_AUTH_IN;
+
+	enable_auth_in.port.integrated_port_type = data->port_type;
+	enable_auth_in.port.physical_port = mei_get_ddi_index(data->port);
+	enable_auth_in.stream_type = data->streams[0].stream_type;
+
+	byte = mei_cldev_send(cldev, (u8 *)&enable_auth_in,
+			      sizeof(enable_auth_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&enable_auth_out,
+			      sizeof(enable_auth_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (enable_auth_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "ME cmd 0x%08X failed. status: 0x%X\n",
+			WIRED_ENABLE_AUTH, enable_auth_out.header.status);
+		return -EIO;
+	}
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
@@ -619,7 +672,7 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.repeater_check_flow_prepare_ack =
 				mei_hdcp_repeater_check_flow_prepare_ack,
 	.verify_mprime = mei_hdcp_verify_mprime,
-	.enable_hdcp_authentication = NULL,
+	.enable_hdcp_authentication = mei_hdcp_enable_authentication,
 	.close_hdcp_session = NULL,
 };
 
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 14/16] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (12 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 13/16] misc/mei/hdcp: Enabling the HDCP authentication Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 15/16] misc/mei/hdcp: Component framework for I915 Interface Ramalingam C
                   ` (9 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Request the ME to terminate the HDCP2.2 session for a port.

On Success, ME FW will mark the intel port as Deauthenticated and
terminate the wired HDCP2.2 Tx session started due to the cmd
WIRED_INITIATE_HDCP2_SESSION.

v2: Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]
v4:
  %zd for ssize_t [Alexander]
  %s/return -1/return -EIO [Alexander]
  Style and typos fixed [Uma]
v5:
  Extra line is removed.
v6:
  Collected the Rb-ed by.
  Rebased.
v7:
  Adjust to the new mei interface.
  Fix for Kdoc.
v8:
  K-Doc addition.[Tomas]
v9:
  renamed func as mei_hdcp_* [Tomas]
  Inline function is defined for DDI index [Tomas]
v10:
  K-Doc fix. [Tomas]
v11:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 55 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index 1e8c6f1ee4a5..deb579ad15e8 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -658,6 +658,59 @@ static int mei_hdcp_enable_authentication(struct device *dev,
 	return 0;
 }
 
+/**
+ * mei_hdcp_close_session() - Close the Wired HDCP Tx session of ME FW per port.
+ * This also disables the authenticated state of the port.
+ * @dev: device corresponding to the mei_cl_device
+ * @data: Intel HW specific hdcp data
+ *
+ * Return: 0 on Success, <0 on Failure
+ */
+static int
+mei_hdcp_close_session(struct device *dev, struct hdcp_port_data *data)
+{
+	struct wired_cmd_close_session_in session_close_in = { { 0 } };
+	struct wired_cmd_close_session_out session_close_out = { { 0 } };
+	struct mei_cl_device *cldev;
+	ssize_t byte;
+
+	if (!dev || !data)
+		return -EINVAL;
+
+	cldev = to_mei_cl_device(dev);
+
+	session_close_in.header.api_version = HDCP_API_VERSION;
+	session_close_in.header.command_id = WIRED_CLOSE_SESSION;
+	session_close_in.header.status = ME_HDCP_STATUS_SUCCESS;
+	session_close_in.header.buffer_len =
+				WIRED_CMD_BUF_LEN_CLOSE_SESSION_IN;
+
+	session_close_in.port.integrated_port_type = data->port_type;
+	session_close_in.port.physical_port = mei_get_ddi_index(data->port);
+
+	byte = mei_cldev_send(cldev, (u8 *)&session_close_in,
+			      sizeof(session_close_in));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_send failed. %zd\n", byte);
+		return byte;
+	}
+
+	byte = mei_cldev_recv(cldev, (u8 *)&session_close_out,
+			      sizeof(session_close_out));
+	if (byte < 0) {
+		dev_dbg(dev, "mei_cldev_recv failed. %zd\n", byte);
+		return byte;
+	}
+
+	if (session_close_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+		dev_dbg(dev, "Session Close Failed. status: 0x%X\n",
+			session_close_out.header.status);
+		return -EIO;
+	}
+
+	return 0;
+}
+
 static const __attribute__((unused))
 struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
@@ -673,7 +726,7 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 				mei_hdcp_repeater_check_flow_prepare_ack,
 	.verify_mprime = mei_hdcp_verify_mprime,
 	.enable_hdcp_authentication = mei_hdcp_enable_authentication,
-	.close_hdcp_session = NULL,
+	.close_hdcp_session = mei_hdcp_close_session,
 };
 
 static int mei_hdcp_probe(struct mei_cl_device *cldev,
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 15/16] misc/mei/hdcp: Component framework for I915 Interface
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (13 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 14/16] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:12 ` [PATCH v15 16/16] FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915 Ramalingam C
                   ` (8 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Mei hdcp driver is designed as component slave for the I915 component
master.

v2: Rebased.
v3:
  Notifier chain is adopted for cldev state update [Tomas]
v4:
  Made static dummy functions as inline in mei_hdcp.h
  API for polling client device status
  IS_ENABLED used in header, for config status for mei_hdcp.
v5:
  Replacing the notifier with component framework. [Daniel]
v6:
  Rebased on the I915 comp master redesign.
v7:
  mei_hdcp_component_registered is made static [Uma]
  Need for global static variable mei_cldev is removed.
v8:
  master comp is added to be matched with i915 subcomponent [daniel]
v9:
  only comp_master is set and retrieved as driver_data [Daniel]
  Reviewed-by Daniel.
v10:
  small corrections at probe [Tomas]
v11:
  bind and unbind logs are made as debug logs [Tomas]
  cldev_enable failure is handled [Tomas]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 86 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 83 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index deb579ad15e8..90b6ae8e9dae 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -23,6 +23,7 @@
 #include <linux/slab.h>
 #include <linux/uuid.h>
 #include <linux/mei_cl_bus.h>
+#include <linux/component.h>
 #include <drm/drm_connector.h>
 #include <drm/i915_component.h>
 #include <drm/i915_mei_hdcp_interface.h>
@@ -711,8 +712,7 @@ mei_hdcp_close_session(struct device *dev, struct hdcp_port_data *data)
 	return 0;
 }
 
-static const __attribute__((unused))
-struct i915_hdcp_component_ops mei_hdcp_ops = {
+static const struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.owner = THIS_MODULE,
 	.initiate_hdcp2_session = mei_hdcp_initiate_session,
 	.verify_receiver_cert_prepare_km =
@@ -729,20 +729,100 @@ struct i915_hdcp_component_ops mei_hdcp_ops = {
 	.close_hdcp_session = mei_hdcp_close_session,
 };
 
+static int mei_component_master_bind(struct device *dev)
+{
+	struct mei_cl_device *cldev = to_mei_cl_device(dev);
+	struct i915_hdcp_comp_master *comp_master =
+						mei_cldev_get_drvdata(cldev);
+	int ret;
+
+	dev_dbg(dev, "%s\n", __func__);
+	comp_master->ops = &mei_hdcp_ops;
+	comp_master->mei_dev = dev;
+	ret = component_bind_all(dev, comp_master);
+	if (ret < 0)
+		return ret;
+
+	return 0;
+}
+
+static void mei_component_master_unbind(struct device *dev)
+{
+	struct mei_cl_device *cldev = to_mei_cl_device(dev);
+	struct i915_hdcp_comp_master *comp_master =
+						mei_cldev_get_drvdata(cldev);
+
+	dev_dbg(dev, "%s\n", __func__);
+	component_unbind_all(dev, comp_master);
+}
+
+static const struct component_master_ops mei_component_master_ops = {
+	.bind = mei_component_master_bind,
+	.unbind = mei_component_master_unbind,
+};
+
+static int mei_hdcp_component_match(struct device *dev, int subcomponent,
+				    void *data)
+{
+	return !strcmp(dev->driver->name, "i915") &&
+	       subcomponent == I915_COMPONENT_HDCP;
+}
+
 static int mei_hdcp_probe(struct mei_cl_device *cldev,
 			  const struct mei_cl_device_id *id)
 {
+	struct i915_hdcp_comp_master *comp_master;
+	struct component_match *master_match;
 	int ret;
 
 	ret = mei_cldev_enable(cldev);
-	if (ret < 0)
+	if (ret < 0) {
 		dev_err(&cldev->dev, "mei_cldev_enable Failed. %d\n", ret);
+		goto enable_err_exit;
+	}
+
+	comp_master = kzalloc(sizeof(*comp_master), GFP_KERNEL);
+	if (!comp_master) {
+		ret = -ENOMEM;
+		goto err_exit;
+	}
+
+	master_match = NULL;
+	component_match_add_typed(&cldev->dev, &master_match,
+				  mei_hdcp_component_match, comp_master);
+	if (IS_ERR_OR_NULL(master_match)) {
+		ret = -ENOMEM;
+		goto err_exit;
+	}
+
+	mei_cldev_set_drvdata(cldev, comp_master);
+	ret = component_master_add_with_match(&cldev->dev,
+					      &mei_component_master_ops,
+					      master_match);
+	if (ret < 0) {
+		dev_err(&cldev->dev, "Master comp add failed %d\n", ret);
+		goto err_exit;
+	}
 
+	return 0;
+
+err_exit:
+	mei_cldev_set_drvdata(cldev, NULL);
+	kfree(comp_master);
+	mei_cldev_disable(cldev);
+enable_err_exit:
 	return ret;
 }
 
 static int mei_hdcp_remove(struct mei_cl_device *cldev)
 {
+	struct i915_hdcp_comp_master *comp_master =
+						mei_cldev_get_drvdata(cldev);
+
+	component_master_del(&cldev->dev, &mei_component_master_ops);
+	kfree(comp_master);
+	mei_cldev_set_drvdata(cldev, NULL);
+
 	return mei_cldev_disable(cldev);
 }
 
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v15 16/16] FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (14 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 15/16] misc/mei/hdcp: Component framework for I915 Interface Ramalingam C
@ 2019-02-21 18:12 ` Ramalingam C
  2019-02-21 18:26 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 Patchwork
                   ` (7 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Ramalingam C @ 2019-02-21 18:12 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

FOR TESTING PURPOSE ONLY.

By default INTEL_MEI_HDCP is set to y. This patch is created to
test the interface between I915 and MEI_HDCP.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/misc/mei/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/misc/mei/Kconfig b/drivers/misc/mei/Kconfig
index 74e2c667dce0..b87a8d74df12 100644
--- a/drivers/misc/mei/Kconfig
+++ b/drivers/misc/mei/Kconfig
@@ -48,6 +48,7 @@ config INTEL_MEI_HDCP
 	tristate "Intel HDCP2.2 services of ME Interface"
 	select INTEL_MEI_ME
 	depends on DRM_I915
+	default y
 	help
 	  MEI Support for HDCP2.2 Services on Intel platforms.
 
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (15 preceding siblings ...)
  2019-02-21 18:12 ` [PATCH v15 16/16] FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915 Ramalingam C
@ 2019-02-21 18:26 ` Patchwork
  2019-02-21 18:29 ` ✗ Fi.CI.SPARSE: " Patchwork
                   ` (6 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-02-21 18:26 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: drm/i915: Implement HDCP2.2
URL   : https://patchwork.freedesktop.org/series/57037/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
37c5e6646c75 mei: bus: whitelist hdcp client
f34e15960964 misc/mei/hdcp: Client driver for HDCP application
-:82: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#82: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 89 lines checked
8273d681e1f3 misc/mei/hdcp: Define ME FW interface for HDCP2.2
-:32: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#32: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 366 lines checked
af983c28bf34 misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
ff2553c3a6f5 misc/mei/hdcp: Verify Receiver Cert and prepare km
9b84979b1d91 misc/mei/hdcp: Verify H_prime
b5baa6c83cb8 misc/mei/hdcp: Store the HDCP Pairing info
a7863139ce44 misc/mei/hdcp: Initiate Locality check
a634f8765faf misc/mei/hdcp: Verify L_prime
529557441fa3 misc/mei/hdcp: Prepare Session Key
83d08f79c09a misc/mei/hdcp: Repeater topology verification and ack
f5b5097eb8c9 misc/mei/hdcp: Verify M_prime
feb33c82eea3 misc/mei/hdcp: Enabling the HDCP authentication
825905dcdbc0 misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
9b65b900cd0d misc/mei/hdcp: Component framework for I915 Interface
a0223ee5fab5 FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✗ Fi.CI.SPARSE: warning for drm/i915: Implement HDCP2.2
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (16 preceding siblings ...)
  2019-02-21 18:26 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 Patchwork
@ 2019-02-21 18:29 ` Patchwork
  2019-02-21 19:05 ` ✗ Fi.CI.BAT: failure " Patchwork
                   ` (5 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-02-21 18:29 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: drm/i915: Implement HDCP2.2
URL   : https://patchwork.freedesktop.org/series/57037/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: mei: bus: whitelist hdcp client
Okay!

Commit: misc/mei/hdcp: Client driver for HDCP application
+Error in reading or end of file.

Commit: misc/mei/hdcp: Define ME FW interface for HDCP2.2
Okay!

Commit: misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
Okay!

Commit: misc/mei/hdcp: Verify Receiver Cert and prepare km
Okay!

Commit: misc/mei/hdcp: Verify H_prime
Okay!

Commit: misc/mei/hdcp: Store the HDCP Pairing info
Okay!

Commit: misc/mei/hdcp: Initiate Locality check
Okay!

Commit: misc/mei/hdcp: Verify L_prime
Okay!

Commit: misc/mei/hdcp: Prepare Session Key
Okay!

Commit: misc/mei/hdcp: Repeater topology verification and ack
Okay!

Commit: misc/mei/hdcp: Verify M_prime
Okay!

Commit: misc/mei/hdcp: Enabling the HDCP authentication
Okay!

Commit: misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
Okay!

Commit: misc/mei/hdcp: Component framework for I915 Interface
Okay!

Commit: FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
Okay!

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915: Implement HDCP2.2
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (17 preceding siblings ...)
  2019-02-21 18:29 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2019-02-21 19:05 ` Patchwork
  2019-02-24 16:33 ` [PATCH v15 00/16] " C, Ramalingam
                   ` (4 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-02-21 19:05 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: drm/i915: Implement HDCP2.2
URL   : https://patchwork.freedesktop.org/series/57037/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5650 -> Patchwork_12276
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_12276 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_12276, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57037/revisions/1/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_12276:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_module_load@reload-with-fault-injection:
    - fi-skl-6770hq:      PASS -> DMESG-WARN +1

  * igt@pm_rpm@module-reload:
    - fi-skl-6770hq:      NOTRUN -> DMESG-WARN

  
Known issues
------------

  Here are the changes found in Patchwork_12276 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-kbl-7560u:       PASS -> INCOMPLETE [fdo#107139]

  * igt@kms_busy@basic-flip-b:
    - fi-gdg-551:         PASS -> FAIL [fdo#103182]

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       PASS -> FAIL [fdo#109485]

  * igt@kms_content_protection@atomic:
    - fi-skl-gvtdvm:      NOTRUN -> FAIL [fdo#108597] / [fdo#108739] +1
    - fi-ivb-3520m:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-whl-u:           NOTRUN -> SKIP [fdo#109271] +1
    - fi-icl-u2:          NOTRUN -> FAIL [fdo#108597] +1
    - fi-bdw-5557u:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-hsw-peppy:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-byt-n2820:       NOTRUN -> SKIP [fdo#109271] +2
    - fi-skl-6600u:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-apl-guc:         NOTRUN -> FAIL [fdo#108597] / [fdo#108739] +1

  * igt@kms_content_protection@legacy:
    - fi-cfl-guc:         NOTRUN -> SKIP [fdo#109271] +2
    - fi-skl-6770hq:      NOTRUN -> FAIL [fdo#108597] / [fdo#108739]
    - fi-bsw-kefka:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-bxt-j4205:       NOTRUN -> SKIP [fdo#109271] +2
    - fi-kbl-r:           NOTRUN -> SKIP [fdo#109271] +1
    - fi-cfl-8109u:       NOTRUN -> FAIL [fdo#108739] +1
    - fi-kbl-guc:         NOTRUN -> SKIP [fdo#109271] +5
    - fi-gdg-551:         NOTRUN -> SKIP [fdo#109271] +6
    - fi-hsw-4770:        NOTRUN -> SKIP [fdo#109271] +2
    - fi-bsw-n3050:       NOTRUN -> SKIP [fdo#109271] +2

  * igt@kms_flip@basic-flip-vs-dpms:
    - fi-skl-6770hq:      PASS -> SKIP [fdo#109271] +31

  * igt@kms_pipe_crc_basic@bad-source:
    - fi-skl-6770hq:      PASS -> DMESG-WARN [fdo#108833]

  * igt@pm_backlight@basic-brightness:
    - fi-bdw-5557u:       NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-kbl-7567u:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-guc:         NOTRUN -> SKIP [fdo#109271] +2
    - fi-cfl-8109u:       NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-8700k:       NOTRUN -> SKIP [fdo#109271] +2
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-kbl-x1275:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-7500u:       NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-apl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-skl-6770hq:      NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-skl-6260u:       NOTRUN -> SKIP [fdo#109271]
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-skl-6700k2:      NOTRUN -> SKIP [fdo#109271]

  * igt@pm_rpm@basic-pci-d3-state:
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] +6
    - fi-skl-6770hq:      NOTRUN -> SKIP [fdo#109271] +2
    - fi-kbl-8809g:       NOTRUN -> SKIP [fdo#109271] +4

  * igt@pm_rpm@basic-rte:
    - fi-skl-gvtdvm:      NOTRUN -> SKIP [fdo#109271] +3
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] +5
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] +5
    - fi-bdw-gvtdvm:      NOTRUN -> SKIP [fdo#109271] +5
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] +4

  * igt@pm_rpm@module-reload:
    - fi-blb-e6850:       NOTRUN -> SKIP [fdo#109271] +6
    - fi-ivb-3770:        NOTRUN -> SKIP [fdo#109271] +5

  * igt@pm_rps@basic-api:
    - fi-bwr-2160:        NOTRUN -> SKIP [fdo#109271] +6

  
#### Possible fixes ####

  * igt@i915_selftest@live_execlists:
    - fi-apl-guc:         INCOMPLETE [fdo#103927] / [fdo#109720] -> PASS

  * igt@kms_busy@basic-flip-a:
    - fi-gdg-551:         FAIL [fdo#103182] -> PASS

  * igt@prime_vgem@basic-fence-flip:
    - fi-ilk-650:         FAIL [fdo#104008] -> PASS

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107139]: https://bugs.freedesktop.org/show_bug.cgi?id=107139
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108597]: https://bugs.freedesktop.org/show_bug.cgi?id=108597
  [fdo#108739]: https://bugs.freedesktop.org/show_bug.cgi?id=108739
  [fdo#108833]: https://bugs.freedesktop.org/show_bug.cgi?id=108833
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109294]: https://bugs.freedesktop.org/show_bug.cgi?id=109294
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109527]: https://bugs.freedesktop.org/show_bug.cgi?id=109527
  [fdo#109528]: https://bugs.freedesktop.org/show_bug.cgi?id=109528
  [fdo#109530]: https://bugs.freedesktop.org/show_bug.cgi?id=109530
  [fdo#109567]: https://bugs.freedesktop.org/show_bug.cgi?id=109567
  [fdo#109720]: https://bugs.freedesktop.org/show_bug.cgi?id=109720


Participating hosts (44 -> 39)
------------------------------

  Additional (1): fi-icl-y 
  Missing    (6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-bdw-samus 


Build changes
-------------

    * IGT: IGT_4849 -> IGTPW_2356
    * Linux: CI_DRM_5650 -> Patchwork_12276

  CI_DRM_5650: a4c5c4791699aeebfff694c222c76abb61900fca @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2356: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2356/
  IGT_4849: e5088c8218d1c2b559a9e1645d34f929d05c3889 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12276: a0223ee5fab54c2b4555203eaddf7ea62b616c33 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

a0223ee5fab5 FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
9b65b900cd0d misc/mei/hdcp: Component framework for I915 Interface
825905dcdbc0 misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
feb33c82eea3 misc/mei/hdcp: Enabling the HDCP authentication
f5b5097eb8c9 misc/mei/hdcp: Verify M_prime
83d08f79c09a misc/mei/hdcp: Repeater topology verification and ack
529557441fa3 misc/mei/hdcp: Prepare Session Key
a634f8765faf misc/mei/hdcp: Verify L_prime
a7863139ce44 misc/mei/hdcp: Initiate Locality check
b5baa6c83cb8 misc/mei/hdcp: Store the HDCP Pairing info
9b84979b1d91 misc/mei/hdcp: Verify H_prime
ff2553c3a6f5 misc/mei/hdcp: Verify Receiver Cert and prepare km
af983c28bf34 misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
8273d681e1f3 misc/mei/hdcp: Define ME FW interface for HDCP2.2
f34e15960964 misc/mei/hdcp: Client driver for HDCP application
37c5e6646c75 mei: bus: whitelist hdcp client

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12276/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v15 04/16] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
  2019-02-21 18:11 ` [PATCH v15 04/16] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session Ramalingam C
@ 2019-02-23  0:34   ` kbuild test robot
  0 siblings, 0 replies; 31+ messages in thread
From: kbuild test robot @ 2019-02-23  0:34 UTC (permalink / raw)
  To: Ramalingam C
  Cc: daniel.vetter, intel-gfx, dri-devel, kbuild-all, tomas.winkler

[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]

Hi Ramalingam,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on v5.0-rc4 next-20190222]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Ramalingam-C/drm-i915-Implement-HDCP2-2/20190222-182139
config: x86_64-rhel-7.2 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

>> drivers/misc/mei/hdcp/mei_hdcp.c:28:10: fatal error: drm/i915_mei_hdcp_interface.h: No such file or directory
    #include <drm/i915_mei_hdcp_interface.h>
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   compilation terminated.

vim +28 drivers/misc/mei/hdcp/mei_hdcp.c

  > 28	#include <drm/i915_mei_hdcp_interface.h>
    29	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 41555 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (18 preceding siblings ...)
  2019-02-21 19:05 ` ✗ Fi.CI.BAT: failure " Patchwork
@ 2019-02-24 16:33 ` C, Ramalingam
  2019-02-24 20:14   ` Winkler, Tomas
  2019-02-25  9:01 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 (rev2) Patchwork
                   ` (3 subsequent siblings)
  23 siblings, 1 reply; 31+ messages in thread
From: C, Ramalingam @ 2019-02-24 16:33 UTC (permalink / raw)
  To: intel-gfx, dri-devel, daniel.vetter, tomas.winkler, uma.shankar

Tomas,

Could you please help to review and give final "Go" for the series?

Thanks
--Ram.

On 2/21/2019 11:41 PM, Ramalingam C wrote:
> This series enables the HDCP2.2 Type 0 for I915. The sequence for
> HDCP2.2 authentication and encryption is implemented as a generic flow
> between HDMI and DP. Encoder specific implementations are moved
> into hdcp_shim.
>
> Intel HWs supports HDCP2.2 through ME FW. Hence this series
> introduces a client driver for mei bus, so that for HDCP2.2
> authentication, HDCP2.2 stack in I915 can avail the services from
> ME FW. To enable this client driver set the config variable
> CONFIG_INTEL_MEI_HDCP.
>
> Userspace interface remains unchanged as version agnostic. When
> userspace request for HDCP enable, Kernel will detect the HDCP source
> and sink's HDCP version(1.4/2.2)capability and enable the best capable
> version for that combination.
>
> This series enables the HDCP2.2 for Type0 content streams.
>
> Test-with: <1549566452-30175-1-git-send-email-ramalingam.c@intel.com>
> So that CP will be tested on BAT machine too.
>
> Major changes in v15
>    - All I915 patches are merged. So dropping them.
>    - Few minor suggestions are incorporated at mei changes.
>
> To ease the review process, series is hosted at
> https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_v15
>
> Ramalingam C (15):
>    misc/mei/hdcp: Client driver for HDCP application
>    misc/mei/hdcp: Define ME FW interface for HDCP2.2
>    misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
>    misc/mei/hdcp: Verify Receiver Cert and prepare km
>    misc/mei/hdcp: Verify H_prime
>    misc/mei/hdcp: Store the HDCP Pairing info
>    misc/mei/hdcp: Initiate Locality check
>    misc/mei/hdcp: Verify L_prime
>    misc/mei/hdcp: Prepare Session Key
>    misc/mei/hdcp: Repeater topology verification and ack
>    misc/mei/hdcp: Verify M_prime
>    misc/mei/hdcp: Enabling the HDCP authentication
>    misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
>    misc/mei/hdcp: Component framework for I915 Interface
>    FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
>
> Tomas Winkler (1):
>    mei: bus: whitelist hdcp client
>
>   drivers/misc/mei/Kconfig         |  11 +
>   drivers/misc/mei/Makefile        |   2 +
>   drivers/misc/mei/bus-fixup.c     |  16 +
>   drivers/misc/mei/hdcp/Makefile   |   7 +
>   drivers/misc/mei/hdcp/mei_hdcp.c | 849 +++++++++++++++++++++++++++++++++++++++
>   drivers/misc/mei/hdcp/mei_hdcp.h | 377 +++++++++++++++++
>   6 files changed, 1262 insertions(+)
>   create mode 100644 drivers/misc/mei/hdcp/Makefile
>   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.c
>   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.h
>

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
  2019-02-24 16:33 ` [PATCH v15 00/16] " C, Ramalingam
@ 2019-02-24 20:14   ` Winkler, Tomas
  2019-02-25  5:12     ` C, Ramalingam
  0 siblings, 1 reply; 31+ messages in thread
From: Winkler, Tomas @ 2019-02-24 20:14 UTC (permalink / raw)
  To: C, Ramalingam, intel-gfx, dri-devel, daniel.vetter, Shankar, Uma

Have you fixed the lkp issue? 
I didn't see you pushed the code to github.
Thanks


> -----Original Message-----
> From: C, Ramalingam
> Sent: Sunday, February 24, 2019 18:33
> To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
> daniel.vetter@ffwll.ch; Winkler, Tomas <tomas.winkler@intel.com>; Shankar,
> Uma <uma.shankar@intel.com>
> Subject: Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> 
> Tomas,
> 
> Could you please help to review and give final "Go" for the series?
> 
> Thanks
> --Ram.
> 
> On 2/21/2019 11:41 PM, Ramalingam C wrote:
> > This series enables the HDCP2.2 Type 0 for I915. The sequence for
> > HDCP2.2 authentication and encryption is implemented as a generic flow
> > between HDMI and DP. Encoder specific implementations are moved into
> > hdcp_shim.
> >
> > Intel HWs supports HDCP2.2 through ME FW. Hence this series introduces
> > a client driver for mei bus, so that for HDCP2.2 authentication,
> > HDCP2.2 stack in I915 can avail the services from ME FW. To enable
> > this client driver set the config variable CONFIG_INTEL_MEI_HDCP.
> >
> > Userspace interface remains unchanged as version agnostic. When
> > userspace request for HDCP enable, Kernel will detect the HDCP source
> > and sink's HDCP version(1.4/2.2)capability and enable the best capable
> > version for that combination.
> >
> > This series enables the HDCP2.2 for Type0 content streams.
> >
> > Test-with: <1549566452-30175-1-git-send-email-ramalingam.c@intel.com>
> > So that CP will be tested on BAT machine too.
> >
> > Major changes in v15
> >    - All I915 patches are merged. So dropping them.
> >    - Few minor suggestions are incorporated at mei changes.
> >
> > To ease the review process, series is hosted at
> > https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_v15
> >
> > Ramalingam C (15):
> >    misc/mei/hdcp: Client driver for HDCP application
> >    misc/mei/hdcp: Define ME FW interface for HDCP2.2
> >    misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
> >    misc/mei/hdcp: Verify Receiver Cert and prepare km
> >    misc/mei/hdcp: Verify H_prime
> >    misc/mei/hdcp: Store the HDCP Pairing info
> >    misc/mei/hdcp: Initiate Locality check
> >    misc/mei/hdcp: Verify L_prime
> >    misc/mei/hdcp: Prepare Session Key
> >    misc/mei/hdcp: Repeater topology verification and ack
> >    misc/mei/hdcp: Verify M_prime
> >    misc/mei/hdcp: Enabling the HDCP authentication
> >    misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
> >    misc/mei/hdcp: Component framework for I915 Interface
> >    FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
> >
> > Tomas Winkler (1):
> >    mei: bus: whitelist hdcp client
> >
> >   drivers/misc/mei/Kconfig         |  11 +
> >   drivers/misc/mei/Makefile        |   2 +
> >   drivers/misc/mei/bus-fixup.c     |  16 +
> >   drivers/misc/mei/hdcp/Makefile   |   7 +
> >   drivers/misc/mei/hdcp/mei_hdcp.c | 849
> +++++++++++++++++++++++++++++++++++++++
> >   drivers/misc/mei/hdcp/mei_hdcp.h | 377 +++++++++++++++++
> >   6 files changed, 1262 insertions(+)
> >   create mode 100644 drivers/misc/mei/hdcp/Makefile
> >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.c
> >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.h
> >

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
  2019-02-24 20:14   ` Winkler, Tomas
@ 2019-02-25  5:12     ` C, Ramalingam
  2019-02-25  8:18       ` Daniel Vetter
  0 siblings, 1 reply; 31+ messages in thread
From: C, Ramalingam @ 2019-02-25  5:12 UTC (permalink / raw)
  To: Winkler, Tomas, intel-gfx, dri-devel, daniel.vetter, Shankar, Uma

Tomas,

Lkp issue is complaining about the header drm/i915_mei_hdcp_interface.h, Which is already merged in drm-tip through below commit. So don’t think this is a genuine issue. May be this build was tried in different tree, where this commit is not added yet?

commit 1626eab70ebc61d015e69a4bc3479d9228539343
Author: Ramalingam C <ramalingam.c@intel.com>
Date:   Fri Feb 15 14:04:58 2019 +0530

    drm/i915: header for i915 - MEI_HDCP interface

v15 is now part of github.

Best Regards,
Ramalingam C


> -----Original Message-----
> From: Winkler, Tomas
> Sent: Monday, February 25, 2019 1:45 AM
> To: C, Ramalingam <ramalingam.c@intel.com>; intel-gfx@lists.freedesktop.org;
> dri-devel@lists.freedesktop.org; daniel.vetter@ffwll.ch; Shankar, Uma
> <uma.shankar@intel.com>
> Subject: RE: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> 
> Have you fixed the lkp issue?
> I didn't see you pushed the code to github.
> Thanks
> 
> 
> > -----Original Message-----
> > From: C, Ramalingam
> > Sent: Sunday, February 24, 2019 18:33
> > To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
> > daniel.vetter@ffwll.ch; Winkler, Tomas <tomas.winkler@intel.com>;
> > Shankar, Uma <uma.shankar@intel.com>
> > Subject: Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> >
> > Tomas,
> >
> > Could you please help to review and give final "Go" for the series?
> >
> > Thanks
> > --Ram.
> >
> > On 2/21/2019 11:41 PM, Ramalingam C wrote:
> > > This series enables the HDCP2.2 Type 0 for I915. The sequence for
> > > HDCP2.2 authentication and encryption is implemented as a generic
> > > flow between HDMI and DP. Encoder specific implementations are moved
> > > into hdcp_shim.
> > >
> > > Intel HWs supports HDCP2.2 through ME FW. Hence this series
> > > introduces a client driver for mei bus, so that for HDCP2.2
> > > authentication,
> > > HDCP2.2 stack in I915 can avail the services from ME FW. To enable
> > > this client driver set the config variable CONFIG_INTEL_MEI_HDCP.
> > >
> > > Userspace interface remains unchanged as version agnostic. When
> > > userspace request for HDCP enable, Kernel will detect the HDCP
> > > source and sink's HDCP version(1.4/2.2)capability and enable the
> > > best capable version for that combination.
> > >
> > > This series enables the HDCP2.2 for Type0 content streams.
> > >
> > > Test-with:
> > > <1549566452-30175-1-git-send-email-ramalingam.c@intel.com>
> > > So that CP will be tested on BAT machine too.
> > >
> > > Major changes in v15
> > >    - All I915 patches are merged. So dropping them.
> > >    - Few minor suggestions are incorporated at mei changes.
> > >
> > > To ease the review process, series is hosted at
> > > https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_v15
> > >
> > > Ramalingam C (15):
> > >    misc/mei/hdcp: Client driver for HDCP application
> > >    misc/mei/hdcp: Define ME FW interface for HDCP2.2
> > >    misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
> > >    misc/mei/hdcp: Verify Receiver Cert and prepare km
> > >    misc/mei/hdcp: Verify H_prime
> > >    misc/mei/hdcp: Store the HDCP Pairing info
> > >    misc/mei/hdcp: Initiate Locality check
> > >    misc/mei/hdcp: Verify L_prime
> > >    misc/mei/hdcp: Prepare Session Key
> > >    misc/mei/hdcp: Repeater topology verification and ack
> > >    misc/mei/hdcp: Verify M_prime
> > >    misc/mei/hdcp: Enabling the HDCP authentication
> > >    misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
> > >    misc/mei/hdcp: Component framework for I915 Interface
> > >    FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
> > >
> > > Tomas Winkler (1):
> > >    mei: bus: whitelist hdcp client
> > >
> > >   drivers/misc/mei/Kconfig         |  11 +
> > >   drivers/misc/mei/Makefile        |   2 +
> > >   drivers/misc/mei/bus-fixup.c     |  16 +
> > >   drivers/misc/mei/hdcp/Makefile   |   7 +
> > >   drivers/misc/mei/hdcp/mei_hdcp.c | 849
> > +++++++++++++++++++++++++++++++++++++++
> > >   drivers/misc/mei/hdcp/mei_hdcp.h | 377 +++++++++++++++++
> > >   6 files changed, 1262 insertions(+)
> > >   create mode 100644 drivers/misc/mei/hdcp/Makefile
> > >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.c
> > >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.h
> > >

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
  2019-02-25  5:12     ` C, Ramalingam
@ 2019-02-25  8:18       ` Daniel Vetter
  2019-02-25 15:13         ` Winkler, Tomas
  0 siblings, 1 reply; 31+ messages in thread
From: Daniel Vetter @ 2019-02-25  8:18 UTC (permalink / raw)
  To: C, Ramalingam; +Cc: daniel.vetter, Winkler, Tomas, intel-gfx, dri-devel

On Mon, Feb 25, 2019 at 05:12:09AM +0000, C, Ramalingam wrote:
> Tomas,
> 
> Lkp issue is complaining about the header drm/i915_mei_hdcp_interface.h,
> Which is already merged in drm-tip through below commit. So don’t think
> this is a genuine issue. May be this build was tried in different tree,
> where this commit is not added yet?

Yeah our topic trees aren't pushed into linux-next, 0day can't find them.
Usually it will then fail to apply (and in that case it doesn't complain),
but it does complain if everything applies but doesn't build.
-Daniel

> 
> commit 1626eab70ebc61d015e69a4bc3479d9228539343
> Author: Ramalingam C <ramalingam.c@intel.com>
> Date:   Fri Feb 15 14:04:58 2019 +0530
> 
>     drm/i915: header for i915 - MEI_HDCP interface
> 
> v15 is now part of github.
> 
> Best Regards,
> Ramalingam C
> 
> 
> > -----Original Message-----
> > From: Winkler, Tomas
> > Sent: Monday, February 25, 2019 1:45 AM
> > To: C, Ramalingam <ramalingam.c@intel.com>; intel-gfx@lists.freedesktop.org;
> > dri-devel@lists.freedesktop.org; daniel.vetter@ffwll.ch; Shankar, Uma
> > <uma.shankar@intel.com>
> > Subject: RE: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> > 
> > Have you fixed the lkp issue?
> > I didn't see you pushed the code to github.
> > Thanks
> > 
> > 
> > > -----Original Message-----
> > > From: C, Ramalingam
> > > Sent: Sunday, February 24, 2019 18:33
> > > To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
> > > daniel.vetter@ffwll.ch; Winkler, Tomas <tomas.winkler@intel.com>;
> > > Shankar, Uma <uma.shankar@intel.com>
> > > Subject: Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> > >
> > > Tomas,
> > >
> > > Could you please help to review and give final "Go" for the series?
> > >
> > > Thanks
> > > --Ram.
> > >
> > > On 2/21/2019 11:41 PM, Ramalingam C wrote:
> > > > This series enables the HDCP2.2 Type 0 for I915. The sequence for
> > > > HDCP2.2 authentication and encryption is implemented as a generic
> > > > flow between HDMI and DP. Encoder specific implementations are moved
> > > > into hdcp_shim.
> > > >
> > > > Intel HWs supports HDCP2.2 through ME FW. Hence this series
> > > > introduces a client driver for mei bus, so that for HDCP2.2
> > > > authentication,
> > > > HDCP2.2 stack in I915 can avail the services from ME FW. To enable
> > > > this client driver set the config variable CONFIG_INTEL_MEI_HDCP.
> > > >
> > > > Userspace interface remains unchanged as version agnostic. When
> > > > userspace request for HDCP enable, Kernel will detect the HDCP
> > > > source and sink's HDCP version(1.4/2.2)capability and enable the
> > > > best capable version for that combination.
> > > >
> > > > This series enables the HDCP2.2 for Type0 content streams.
> > > >
> > > > Test-with:
> > > > <1549566452-30175-1-git-send-email-ramalingam.c@intel.com>
> > > > So that CP will be tested on BAT machine too.
> > > >
> > > > Major changes in v15
> > > >    - All I915 patches are merged. So dropping them.
> > > >    - Few minor suggestions are incorporated at mei changes.
> > > >
> > > > To ease the review process, series is hosted at
> > > > https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_v15
> > > >
> > > > Ramalingam C (15):
> > > >    misc/mei/hdcp: Client driver for HDCP application
> > > >    misc/mei/hdcp: Define ME FW interface for HDCP2.2
> > > >    misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
> > > >    misc/mei/hdcp: Verify Receiver Cert and prepare km
> > > >    misc/mei/hdcp: Verify H_prime
> > > >    misc/mei/hdcp: Store the HDCP Pairing info
> > > >    misc/mei/hdcp: Initiate Locality check
> > > >    misc/mei/hdcp: Verify L_prime
> > > >    misc/mei/hdcp: Prepare Session Key
> > > >    misc/mei/hdcp: Repeater topology verification and ack
> > > >    misc/mei/hdcp: Verify M_prime
> > > >    misc/mei/hdcp: Enabling the HDCP authentication
> > > >    misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
> > > >    misc/mei/hdcp: Component framework for I915 Interface
> > > >    FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
> > > >
> > > > Tomas Winkler (1):
> > > >    mei: bus: whitelist hdcp client
> > > >
> > > >   drivers/misc/mei/Kconfig         |  11 +
> > > >   drivers/misc/mei/Makefile        |   2 +
> > > >   drivers/misc/mei/bus-fixup.c     |  16 +
> > > >   drivers/misc/mei/hdcp/Makefile   |   7 +
> > > >   drivers/misc/mei/hdcp/mei_hdcp.c | 849
> > > +++++++++++++++++++++++++++++++++++++++
> > > >   drivers/misc/mei/hdcp/mei_hdcp.h | 377 +++++++++++++++++
> > > >   6 files changed, 1262 insertions(+)
> > > >   create mode 100644 drivers/misc/mei/hdcp/Makefile
> > > >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.c
> > > >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.h
> > > >
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 (rev2)
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (19 preceding siblings ...)
  2019-02-24 16:33 ` [PATCH v15 00/16] " C, Ramalingam
@ 2019-02-25  9:01 ` Patchwork
  2019-02-25  9:04 ` ✗ Fi.CI.SPARSE: " Patchwork
                   ` (2 subsequent siblings)
  23 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-02-25  9:01 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: drm/i915: Implement HDCP2.2 (rev2)
URL   : https://patchwork.freedesktop.org/series/57037/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
28035a8723cc mei: bus: whitelist hdcp client
5eb2c31723c1 misc/mei/hdcp: Client driver for HDCP application
-:82: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#82: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 89 lines checked
09a2be93b7a0 misc/mei/hdcp: Define ME FW interface for HDCP2.2
-:32: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#32: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 366 lines checked
3484221901e4 misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
750814ae1aa9 misc/mei/hdcp: Verify Receiver Cert and prepare km
334946798e8f misc/mei/hdcp: Verify H_prime
1c21f1b7045b misc/mei/hdcp: Store the HDCP Pairing info
0d73f8dd8237 misc/mei/hdcp: Initiate Locality check
0be9f3d963dd misc/mei/hdcp: Verify L_prime
e5cf396eb147 misc/mei/hdcp: Prepare Session Key
a1d45c3a48b6 misc/mei/hdcp: Repeater topology verification and ack
879ebb26ac20 misc/mei/hdcp: Verify M_prime
444c2c7be0b1 misc/mei/hdcp: Enabling the HDCP authentication
b9cb735b3ebd misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
98e90808d3b7 misc/mei/hdcp: Component framework for I915 Interface
576dc9dbdfeb FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✗ Fi.CI.SPARSE: warning for drm/i915: Implement HDCP2.2 (rev2)
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (20 preceding siblings ...)
  2019-02-25  9:01 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 (rev2) Patchwork
@ 2019-02-25  9:04 ` Patchwork
  2019-02-25  9:25 ` ✓ Fi.CI.BAT: success " Patchwork
  2019-02-25 11:11 ` ✓ Fi.CI.IGT: " Patchwork
  23 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-02-25  9:04 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: drm/i915: Implement HDCP2.2 (rev2)
URL   : https://patchwork.freedesktop.org/series/57037/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: mei: bus: whitelist hdcp client
Okay!

Commit: misc/mei/hdcp: Client driver for HDCP application
+Error in reading or end of file.

Commit: misc/mei/hdcp: Define ME FW interface for HDCP2.2
Okay!

Commit: misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
Okay!

Commit: misc/mei/hdcp: Verify Receiver Cert and prepare km
Okay!

Commit: misc/mei/hdcp: Verify H_prime
Okay!

Commit: misc/mei/hdcp: Store the HDCP Pairing info
Okay!

Commit: misc/mei/hdcp: Initiate Locality check
Okay!

Commit: misc/mei/hdcp: Verify L_prime
Okay!

Commit: misc/mei/hdcp: Prepare Session Key
Okay!

Commit: misc/mei/hdcp: Repeater topology verification and ack
Okay!

Commit: misc/mei/hdcp: Verify M_prime
Okay!

Commit: misc/mei/hdcp: Enabling the HDCP authentication
Okay!

Commit: misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
Okay!

Commit: misc/mei/hdcp: Component framework for I915 Interface
Okay!

Commit: FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
Okay!

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915: Implement HDCP2.2 (rev2)
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (21 preceding siblings ...)
  2019-02-25  9:04 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2019-02-25  9:25 ` Patchwork
  2019-02-25 11:11 ` ✓ Fi.CI.IGT: " Patchwork
  23 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-02-25  9:25 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: drm/i915: Implement HDCP2.2 (rev2)
URL   : https://patchwork.freedesktop.org/series/57037/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5657 -> Patchwork_12295
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57037/revisions/2/mbox/

Known issues
------------

  Here are the changes found in Patchwork_12295 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_basic@readonly-bsd2:
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] +78

  * igt@kms_busy@basic-flip-a:
    - fi-apl-guc:         PASS -> SKIP [fdo#109271] +5

  * igt@kms_busy@basic-flip-b:
    - fi-cfl-guc:         PASS -> SKIP [fdo#109271] +5
    - fi-skl-guc:         PASS -> SKIP [fdo#109271] +5

  * igt@kms_busy@basic-flip-c:
    - fi-byt-j1900:       NOTRUN -> SKIP [fdo#109271] / [fdo#109278]
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_chamelium@hdmi-crc-fast:
    - fi-byt-j1900:       NOTRUN -> SKIP [fdo#109271] +54

  * igt@kms_content_protection@atomic:
    - fi-skl-gvtdvm:      NOTRUN -> FAIL [fdo#108597] / [fdo#108739] +1
    - fi-ivb-3520m:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-whl-u:           NOTRUN -> SKIP [fdo#109271] +1
    - fi-icl-u2:          NOTRUN -> FAIL [fdo#108597] / [fdo#108739] +1
    - fi-bdw-5557u:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-hsw-peppy:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-byt-n2820:       NOTRUN -> SKIP [fdo#109271] +2
    - fi-kbl-7560u:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-skl-6600u:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-apl-guc:         NOTRUN -> FAIL [fdo#108597] / [fdo#108739] +1

  * igt@kms_content_protection@legacy:
    - fi-cfl-guc:         NOTRUN -> SKIP [fdo#109271] +2
    - fi-bsw-kefka:       NOTRUN -> SKIP [fdo#109271] +1
    - fi-bxt-j4205:       NOTRUN -> SKIP [fdo#109271] +2
    - fi-kbl-r:           NOTRUN -> SKIP [fdo#109271] +1
    - fi-cfl-8109u:       NOTRUN -> FAIL [fdo#108739] +1
    - fi-kbl-guc:         NOTRUN -> SKIP [fdo#109271] +5
    - fi-gdg-551:         NOTRUN -> SKIP [fdo#109271] +6
    - fi-hsw-4770:        NOTRUN -> SKIP [fdo#109271] +2
    - fi-bsw-n3050:       NOTRUN -> SKIP [fdo#109271] +2

  * igt@pm_backlight@basic-brightness:
    - fi-bdw-5557u:       NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-kbl-7567u:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-guc:         NOTRUN -> SKIP [fdo#109271] +2
    - fi-cfl-8109u:       NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-8700k:       NOTRUN -> SKIP [fdo#109271] +2
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-kbl-x1275:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-7500u:       NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-apl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-skl-6260u:       NOTRUN -> SKIP [fdo#109271]
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] / [fdo#109527]
    - fi-skl-6700k2:      NOTRUN -> SKIP [fdo#109271]

  * igt@pm_rpm@basic-pci-d3-state:
    - fi-kbl-8809g:       NOTRUN -> SKIP [fdo#109271] +4

  * igt@pm_rpm@basic-rte:
    - fi-skl-gvtdvm:      NOTRUN -> SKIP [fdo#109271] +3
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] +5
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] +5
    - fi-bdw-gvtdvm:      NOTRUN -> SKIP [fdo#109271] +5
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] +4

  * igt@pm_rpm@module-reload:
    - fi-ivb-3770:        NOTRUN -> SKIP [fdo#109271] +5

  * igt@pm_rps@basic-api:
    - fi-bwr-2160:        NOTRUN -> SKIP [fdo#109271] +6

  * igt@prime_vgem@basic-wait-default:
    - fi-kbl-guc:         PASS -> SKIP [fdo#109271] +12

  
#### Possible fixes ####

  * igt@i915_hangman@error-state-basic:
    - fi-kbl-guc:         SKIP [fdo#109271] -> PASS
    - fi-apl-guc:         SKIP [fdo#109271] -> PASS
    - fi-skl-guc:         SKIP [fdo#109271] -> PASS
    - fi-cfl-guc:         SKIP [fdo#109271] -> PASS

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-kbl-7567u:       WARN [fdo#109380] -> PASS

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       FAIL [fdo#109485] -> PASS

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
    - fi-kbl-7567u:       SKIP [fdo#109271] -> PASS +31

  * igt@prime_vgem@basic-fence-flip:
    - fi-kbl-7500u:       SKIP [fdo#109271] -> PASS +31

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#108597]: https://bugs.freedesktop.org/show_bug.cgi?id=108597
  [fdo#108739]: https://bugs.freedesktop.org/show_bug.cgi?id=108739
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109527]: https://bugs.freedesktop.org/show_bug.cgi?id=109527
  [fdo#109567]: https://bugs.freedesktop.org/show_bug.cgi?id=109567


Participating hosts (40 -> 39)
------------------------------

  Additional (2): fi-byt-j1900 fi-pnv-d510 
  Missing    (3): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-------------

    * IGT: IGT_4853 -> IGTPW_2356
    * Linux: CI_DRM_5657 -> Patchwork_12295

  CI_DRM_5657: 3dd976663b985375368c6229903a1c47971c2a71 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2356: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2356/
  IGT_4853: 8afdfd8fa9ce17043d9105dedca46ad4555fdcdb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12295: 576dc9dbdfebb3241600def7f9078c8f7abbff2c @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

576dc9dbdfeb FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
98e90808d3b7 misc/mei/hdcp: Component framework for I915 Interface
b9cb735b3ebd misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
444c2c7be0b1 misc/mei/hdcp: Enabling the HDCP authentication
879ebb26ac20 misc/mei/hdcp: Verify M_prime
a1d45c3a48b6 misc/mei/hdcp: Repeater topology verification and ack
e5cf396eb147 misc/mei/hdcp: Prepare Session Key
0be9f3d963dd misc/mei/hdcp: Verify L_prime
0d73f8dd8237 misc/mei/hdcp: Initiate Locality check
1c21f1b7045b misc/mei/hdcp: Store the HDCP Pairing info
334946798e8f misc/mei/hdcp: Verify H_prime
750814ae1aa9 misc/mei/hdcp: Verify Receiver Cert and prepare km
3484221901e4 misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
09a2be93b7a0 misc/mei/hdcp: Define ME FW interface for HDCP2.2
5eb2c31723c1 misc/mei/hdcp: Client driver for HDCP application
28035a8723cc mei: bus: whitelist hdcp client

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12295/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915: Implement HDCP2.2 (rev2)
  2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
                   ` (22 preceding siblings ...)
  2019-02-25  9:25 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-02-25 11:11 ` Patchwork
  23 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-02-25 11:11 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: drm/i915: Implement HDCP2.2 (rev2)
URL   : https://patchwork.freedesktop.org/series/57037/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5657_full -> Patchwork_12295_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Known issues
------------

  Here are the changes found in Patchwork_12295_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_busy@busy-bsd2:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109276] +7

  * igt@gem_busy@extended-semaphore-bsd1:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109275] / [fdo#109276]

  * igt@gem_ctx_isolation@vecs0-clean:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109281]

  * igt@gem_pwrite@stolen-normal:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109277] +1

  * igt@i915_query@query-topology-unsupported:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +66

  * igt@i915_suspend@shrink:
    - shard-apl:          NOTRUN -> DMESG-WARN [fdo#107886] / [fdo#109244]
    - shard-kbl:          NOTRUN -> DMESG-WARN [fdo#109244]
    - shard-snb:          NOTRUN -> DMESG-WARN [fdo#109244]
    - shard-hsw:          NOTRUN -> DMESG-WARN [fdo#109244]
    - shard-iclb:         NOTRUN -> DMESG-WARN [fdo#107886] / [fdo#109244]
    - shard-glk:          NOTRUN -> DMESG-WARN [fdo#109244]

  * igt@kms_atomic_transition@3x-modeset-transitions-fencing:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +2

  * igt@kms_atomic_transition@3x-modeset-transitions-nonblocking:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109278] +1

  * igt@kms_busy@basic-modeset-d:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_busy@extended-modeset-hang-newfb-render-e:
    - shard-kbl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
    - shard-iclb:         NOTRUN -> DMESG-WARN [fdo#107956] +1

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-apl:          PASS -> FAIL [fdo#106510] / [fdo#108145] +1

  * igt@kms_chamelium@hdmi-hpd:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109284]

  * igt@kms_cursor_crc@cursor-256x256-dpms:
    - shard-kbl:          PASS -> FAIL [fdo#103232] +1

  * igt@kms_cursor_crc@cursor-512x512-onscreen:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109279]

  * igt@kms_cursor_crc@cursor-64x21-random:
    - shard-apl:          PASS -> FAIL [fdo#103232] +5

  * igt@kms_cursor_crc@cursor-64x64-suspend:
    - shard-iclb:         NOTRUN -> FAIL [fdo#103232] +1
    - shard-apl:          PASS -> FAIL [fdo#103191] / [fdo#103232]

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109274] +3

  * igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
    - shard-glk:          NOTRUN -> FAIL [fdo#105454] / [fdo#106509]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-glk:          PASS -> FAIL [fdo#103167] +5

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-iclb:         NOTRUN -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-iclb:         PASS -> FAIL [fdo#103167] +2
    - shard-apl:          PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109280] +12

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-onoff:
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] +131

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-kbl:          NOTRUN -> SKIP [fdo#109271] +29

  * igt@kms_pipe_crc_basic@read-crc-pipe-b:
    - shard-snb:          PASS -> INCOMPLETE [fdo#105411]

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-iclb:         NOTRUN -> FAIL [fdo#108948]

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb:
    - shard-apl:          NOTRUN -> FAIL [fdo#108145] +1
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +7

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-none:
    - shard-glk:          NOTRUN -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-glk:          PASS -> FAIL [fdo#103166] +3
    - shard-apl:          PASS -> FAIL [fdo#103166] +3
    - shard-iclb:         NOTRUN -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
    - shard-apl:          NOTRUN -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
    - shard-iclb:         PASS -> FAIL [fdo#103166] +2

  * igt@kms_psr@no_drrs:
    - shard-iclb:         PASS -> FAIL [fdo#108341]

  * igt@perf@unprivileged-single-ctx-counters:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109289] +2

  * igt@pm_backlight@fade_with_suspend:
    - shard-iclb:         NOTRUN -> FAIL [fdo#107847]

  * igt@pm_lpsp@edp-native:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109301] +3

  * igt@pm_rpm@gem-execbuf-stress-pc8:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109506]

  * igt@pm_rpm@modeset-lpsp:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +29

  * igt@pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109308] +4

  * igt@pm_rpm@modeset-pc8-residency-stress:
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] +16
    - shard-iclb:         NOTRUN -> SKIP [fdo#109293] +1

  * igt@pm_rps@min-max-config-loaded:
    - shard-iclb:         NOTRUN -> FAIL [fdo#102250]

  * igt@pm_rps@reset:
    - shard-iclb:         NOTRUN -> FAIL [fdo#102250] / [fdo#108059] +1

  * igt@pm_rps@waitboost:
    - shard-hsw:          NOTRUN -> INCOMPLETE [fdo#103540]

  * igt@pm_sseu@full-enable:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109288]

  * igt@prime_nv_pcopy@test2:
    - shard-iclb:         NOTRUN -> SKIP [fdo#109291] +1

  
#### Possible fixes ####

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-snb:          INCOMPLETE [fdo#105411] -> PASS

  * igt@i915_suspend@fence-restore-untiled:
    - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
    - shard-kbl:          DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_busy@extended-pageflip-hang-newfb-render-a:
    - shard-glk:          DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
    - shard-glk:          FAIL [fdo#108145] -> PASS
    - shard-kbl:          FAIL [fdo#107725] / [fdo#108145] -> PASS

  * igt@kms_color@pipe-b-ctm-max:
    - shard-apl:          FAIL [fdo#108147] -> PASS

  * igt@kms_color@pipe-b-degamma:
    - shard-apl:          FAIL [fdo#104782] -> PASS +1

  * igt@kms_color@pipe-c-legacy-gamma:
    - shard-glk:          FAIL [fdo#104782] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-suspend:
    - shard-apl:          FAIL [fdo#103191] / [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS +2

  * igt@kms_cursor_crc@cursor-64x64-random:
    - shard-kbl:          FAIL [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-glk:          FAIL [fdo#109350] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
    - shard-glk:          FAIL [fdo#103167] -> PASS
    - shard-apl:          FAIL [fdo#103167] -> PASS +1
    - shard-kbl:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-iclb:         FAIL [fdo#103167] -> PASS +5

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-apl:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane@pixel-format-pipe-c-planes:
    - shard-glk:          FAIL [fdo#103166] -> PASS +1

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-iclb:         INCOMPLETE [fdo#107713] -> PASS

  * igt@kms_plane@plane-position-covered-pipe-a-planes:
    - shard-iclb:         FAIL [fdo#103166] -> PASS +2

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-none:
    - shard-kbl:          FAIL [fdo#103166] -> PASS
    - shard-apl:          FAIL [fdo#103166] -> PASS

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-kbl:          FAIL [fdo#109016] -> PASS

  * igt@kms_setmode@basic:
    - shard-kbl:          FAIL [fdo#99912] -> PASS

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-rpm:
    - shard-apl:          FAIL [fdo#104894] -> PASS

  * igt@perf_pmu@rc6:
    - shard-kbl:          SKIP [fdo#109271] -> PASS

  
  [fdo#102250]: https://bugs.freedesktop.org/show_bug.cgi?id=102250
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105454]: https://bugs.freedesktop.org/show_bug.cgi?id=105454
  [fdo#106509]: https://bugs.freedesktop.org/show_bug.cgi?id=106509
  [fdo#106510]: https://bugs.freedesktop.org/show_bug.cgi?id=106510
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107725]: https://bugs.freedesktop.org/show_bug.cgi?id=107725
  [fdo#107847]: https://bugs.freedesktop.org/show_bug.cgi?id=107847
  [fdo#107886]: https://bugs.freedesktop.org/show_bug.cgi?id=107886
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108059]: https://bugs.freedesktop.org/show_bug.cgi?id=108059
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108341]: https://bugs.freedesktop.org/show_bug.cgi?id=108341
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109016]: https://bugs.freedesktop.org/show_bug.cgi?id=109016
  [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109275]: https://bugs.freedesktop.org/show_bug.cgi?id=109275
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109277]: https://bugs.freedesktop.org/show_bug.cgi?id=109277
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109281]: https://bugs.freedesktop.org/show_bug.cgi?id=109281
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109288]: https://bugs.freedesktop.org/show_bug.cgi?id=109288
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293
  [fdo#109301]: https://bugs.freedesktop.org/show_bug.cgi?id=109301
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 6)
------------------------------

  Missing    (1): shard-skl 


Build changes
-------------

    * IGT: IGT_4853 -> IGTPW_2356
    * Linux: CI_DRM_5657 -> Patchwork_12295

  CI_DRM_5657: 3dd976663b985375368c6229903a1c47971c2a71 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2356: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2356/
  IGT_4853: 8afdfd8fa9ce17043d9105dedca46ad4555fdcdb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12295: 576dc9dbdfebb3241600def7f9078c8f7abbff2c @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12295/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
  2019-02-25  8:18       ` Daniel Vetter
@ 2019-02-25 15:13         ` Winkler, Tomas
  2019-02-25 17:54           ` Daniel Vetter
  0 siblings, 1 reply; 31+ messages in thread
From: Winkler, Tomas @ 2019-02-25 15:13 UTC (permalink / raw)
  To: Daniel Vetter, C, Ramalingam; +Cc: daniel.vetter, intel-gfx, dri-devel

> On Mon, Feb 25, 2019 at 05:12:09AM +0000, C, Ramalingam wrote:
> > Tomas,
> >
> > Lkp issue is complaining about the header
> > drm/i915_mei_hdcp_interface.h, Which is already merged in drm-tip
> > through below commit. So don’t think this is a genuine issue. May be
> > this build was tried in different tree, where this commit is not added yet?
> 
> Yeah our topic trees aren't pushed into linux-next, 0day can't find them.
> Usually it will then fail to apply (and in that case it doesn't complain), but it
> does complain if everything applies but doesn't build.
> -Daniel
> 
> >
> > commit 1626eab70ebc61d015e69a4bc3479d9228539343
> > Author: Ramalingam C <ramalingam.c@intel.com>
> > Date:   Fri Feb 15 14:04:58 2019 +0530
> >
> >     drm/i915: header for i915 - MEI_HDCP interface
> >
> > v15 is now part of github.

I'm okay to go with this.
Thanks
Tomas

> >
> > Best Regards,
> > Ramalingam C
> >
> >
> > > -----Original Message-----
> > > From: Winkler, Tomas
> > > Sent: Monday, February 25, 2019 1:45 AM
> > > To: C, Ramalingam <ramalingam.c@intel.com>;
> > > intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
> > > daniel.vetter@ffwll.ch; Shankar, Uma <uma.shankar@intel.com>
> > > Subject: RE: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> > >
> > > Have you fixed the lkp issue?
> > > I didn't see you pushed the code to github.
> > > Thanks
> > >
> > >
> > > > -----Original Message-----
> > > > From: C, Ramalingam
> > > > Sent: Sunday, February 24, 2019 18:33
> > > > To: intel-gfx@lists.freedesktop.org;
> > > > dri-devel@lists.freedesktop.org; daniel.vetter@ffwll.ch; Winkler,
> > > > Tomas <tomas.winkler@intel.com>; Shankar, Uma
> > > > <uma.shankar@intel.com>
> > > > Subject: Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> > > >
> > > > Tomas,
> > > >
> > > > Could you please help to review and give final "Go" for the series?
> > > >
> > > > Thanks
> > > > --Ram.
> > > >
> > > > On 2/21/2019 11:41 PM, Ramalingam C wrote:
> > > > > This series enables the HDCP2.2 Type 0 for I915. The sequence
> > > > > for
> > > > > HDCP2.2 authentication and encryption is implemented as a
> > > > > generic flow between HDMI and DP. Encoder specific
> > > > > implementations are moved into hdcp_shim.
> > > > >
> > > > > Intel HWs supports HDCP2.2 through ME FW. Hence this series
> > > > > introduces a client driver for mei bus, so that for HDCP2.2
> > > > > authentication,
> > > > > HDCP2.2 stack in I915 can avail the services from ME FW. To
> > > > > enable this client driver set the config variable
> CONFIG_INTEL_MEI_HDCP.
> > > > >
> > > > > Userspace interface remains unchanged as version agnostic. When
> > > > > userspace request for HDCP enable, Kernel will detect the HDCP
> > > > > source and sink's HDCP version(1.4/2.2)capability and enable the
> > > > > best capable version for that combination.
> > > > >
> > > > > This series enables the HDCP2.2 for Type0 content streams.
> > > > >
> > > > > Test-with:
> > > > > <1549566452-30175-1-git-send-email-ramalingam.c@intel.com>
> > > > > So that CP will be tested on BAT machine too.
> > > > >
> > > > > Major changes in v15
> > > > >    - All I915 patches are merged. So dropping them.
> > > > >    - Few minor suggestions are incorporated at mei changes.
> > > > >
> > > > > To ease the review process, series is hosted at
> > > > > https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_v15
> > > > >
> > > > > Ramalingam C (15):
> > > > >    misc/mei/hdcp: Client driver for HDCP application
> > > > >    misc/mei/hdcp: Define ME FW interface for HDCP2.2
> > > > >    misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
> > > > >    misc/mei/hdcp: Verify Receiver Cert and prepare km
> > > > >    misc/mei/hdcp: Verify H_prime
> > > > >    misc/mei/hdcp: Store the HDCP Pairing info
> > > > >    misc/mei/hdcp: Initiate Locality check
> > > > >    misc/mei/hdcp: Verify L_prime
> > > > >    misc/mei/hdcp: Prepare Session Key
> > > > >    misc/mei/hdcp: Repeater topology verification and ack
> > > > >    misc/mei/hdcp: Verify M_prime
> > > > >    misc/mei/hdcp: Enabling the HDCP authentication
> > > > >    misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
> > > > >    misc/mei/hdcp: Component framework for I915 Interface
> > > > >    FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
> > > > >
> > > > > Tomas Winkler (1):
> > > > >    mei: bus: whitelist hdcp client
> > > > >
> > > > >   drivers/misc/mei/Kconfig         |  11 +
> > > > >   drivers/misc/mei/Makefile        |   2 +
> > > > >   drivers/misc/mei/bus-fixup.c     |  16 +
> > > > >   drivers/misc/mei/hdcp/Makefile   |   7 +
> > > > >   drivers/misc/mei/hdcp/mei_hdcp.c | 849
> > > > +++++++++++++++++++++++++++++++++++++++
> > > > >   drivers/misc/mei/hdcp/mei_hdcp.h | 377 +++++++++++++++++
> > > > >   6 files changed, 1262 insertions(+)
> > > > >   create mode 100644 drivers/misc/mei/hdcp/Makefile
> > > > >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.c
> > > > >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.h
> > > > >
> >
> 
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
  2019-02-25 15:13         ` Winkler, Tomas
@ 2019-02-25 17:54           ` Daniel Vetter
  0 siblings, 0 replies; 31+ messages in thread
From: Daniel Vetter @ 2019-02-25 17:54 UTC (permalink / raw)
  To: Winkler, Tomas; +Cc: intel-gfx, dri-devel, daniel.vetter

On Mon, Feb 25, 2019 at 03:13:04PM +0000, Winkler, Tomas wrote:
> > On Mon, Feb 25, 2019 at 05:12:09AM +0000, C, Ramalingam wrote:
> > > Tomas,
> > >
> > > Lkp issue is complaining about the header
> > > drm/i915_mei_hdcp_interface.h, Which is already merged in drm-tip
> > > through below commit. So don’t think this is a genuine issue. May be
> > > this build was tried in different tree, where this commit is not added yet?
> > 
> > Yeah our topic trees aren't pushed into linux-next, 0day can't find them.
> > Usually it will then fail to apply (and in that case it doesn't complain), but it
> > does complain if everything applies but doesn't build.
> > -Daniel
> > 
> > >
> > > commit 1626eab70ebc61d015e69a4bc3479d9228539343
> > > Author: Ramalingam C <ramalingam.c@intel.com>
> > > Date:   Fri Feb 15 14:04:58 2019 +0530
> > >
> > >     drm/i915: header for i915 - MEI_HDCP interface
> > >
> > > v15 is now part of github.
> 
> I'm okay to go with this.

Ok, merged all the 15 patches into a topic branch. Assuming nothing goes
wrong I'll send a pull to Greg tomorrow. And then it's up to him to take
it for 5.1 or delay for 5.2.

Thanks a lot for patches&review.
-Daniel

> Thanks
> Tomas
> 
> > >
> > > Best Regards,
> > > Ramalingam C
> > >
> > >
> > > > -----Original Message-----
> > > > From: Winkler, Tomas
> > > > Sent: Monday, February 25, 2019 1:45 AM
> > > > To: C, Ramalingam <ramalingam.c@intel.com>;
> > > > intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
> > > > daniel.vetter@ffwll.ch; Shankar, Uma <uma.shankar@intel.com>
> > > > Subject: RE: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> > > >
> > > > Have you fixed the lkp issue?
> > > > I didn't see you pushed the code to github.
> > > > Thanks
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: C, Ramalingam
> > > > > Sent: Sunday, February 24, 2019 18:33
> > > > > To: intel-gfx@lists.freedesktop.org;
> > > > > dri-devel@lists.freedesktop.org; daniel.vetter@ffwll.ch; Winkler,
> > > > > Tomas <tomas.winkler@intel.com>; Shankar, Uma
> > > > > <uma.shankar@intel.com>
> > > > > Subject: Re: [PATCH v15 00/16] drm/i915: Implement HDCP2.2
> > > > >
> > > > > Tomas,
> > > > >
> > > > > Could you please help to review and give final "Go" for the series?
> > > > >
> > > > > Thanks
> > > > > --Ram.
> > > > >
> > > > > On 2/21/2019 11:41 PM, Ramalingam C wrote:
> > > > > > This series enables the HDCP2.2 Type 0 for I915. The sequence
> > > > > > for
> > > > > > HDCP2.2 authentication and encryption is implemented as a
> > > > > > generic flow between HDMI and DP. Encoder specific
> > > > > > implementations are moved into hdcp_shim.
> > > > > >
> > > > > > Intel HWs supports HDCP2.2 through ME FW. Hence this series
> > > > > > introduces a client driver for mei bus, so that for HDCP2.2
> > > > > > authentication,
> > > > > > HDCP2.2 stack in I915 can avail the services from ME FW. To
> > > > > > enable this client driver set the config variable
> > CONFIG_INTEL_MEI_HDCP.
> > > > > >
> > > > > > Userspace interface remains unchanged as version agnostic. When
> > > > > > userspace request for HDCP enable, Kernel will detect the HDCP
> > > > > > source and sink's HDCP version(1.4/2.2)capability and enable the
> > > > > > best capable version for that combination.
> > > > > >
> > > > > > This series enables the HDCP2.2 for Type0 content streams.
> > > > > >
> > > > > > Test-with:
> > > > > > <1549566452-30175-1-git-send-email-ramalingam.c@intel.com>
> > > > > > So that CP will be tested on BAT machine too.
> > > > > >
> > > > > > Major changes in v15
> > > > > >    - All I915 patches are merged. So dropping them.
> > > > > >    - Few minor suggestions are incorporated at mei changes.
> > > > > >
> > > > > > To ease the review process, series is hosted at
> > > > > > https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_v15
> > > > > >
> > > > > > Ramalingam C (15):
> > > > > >    misc/mei/hdcp: Client driver for HDCP application
> > > > > >    misc/mei/hdcp: Define ME FW interface for HDCP2.2
> > > > > >    misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
> > > > > >    misc/mei/hdcp: Verify Receiver Cert and prepare km
> > > > > >    misc/mei/hdcp: Verify H_prime
> > > > > >    misc/mei/hdcp: Store the HDCP Pairing info
> > > > > >    misc/mei/hdcp: Initiate Locality check
> > > > > >    misc/mei/hdcp: Verify L_prime
> > > > > >    misc/mei/hdcp: Prepare Session Key
> > > > > >    misc/mei/hdcp: Repeater topology verification and ack
> > > > > >    misc/mei/hdcp: Verify M_prime
> > > > > >    misc/mei/hdcp: Enabling the HDCP authentication
> > > > > >    misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
> > > > > >    misc/mei/hdcp: Component framework for I915 Interface
> > > > > >    FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915
> > > > > >
> > > > > > Tomas Winkler (1):
> > > > > >    mei: bus: whitelist hdcp client
> > > > > >
> > > > > >   drivers/misc/mei/Kconfig         |  11 +
> > > > > >   drivers/misc/mei/Makefile        |   2 +
> > > > > >   drivers/misc/mei/bus-fixup.c     |  16 +
> > > > > >   drivers/misc/mei/hdcp/Makefile   |   7 +
> > > > > >   drivers/misc/mei/hdcp/mei_hdcp.c | 849
> > > > > +++++++++++++++++++++++++++++++++++++++
> > > > > >   drivers/misc/mei/hdcp/mei_hdcp.h | 377 +++++++++++++++++
> > > > > >   6 files changed, 1262 insertions(+)
> > > > > >   create mode 100644 drivers/misc/mei/hdcp/Makefile
> > > > > >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.c
> > > > > >   create mode 100644 drivers/misc/mei/hdcp/mei_hdcp.h
> > > > > >
> > >
> > 
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2019-02-25 17:54 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-21 18:11 [PATCH v15 00/16] drm/i915: Implement HDCP2.2 Ramalingam C
2019-02-21 18:11 ` [PATCH v15 01/16] mei: bus: whitelist hdcp client Ramalingam C
2019-02-21 18:11 ` [PATCH v15 02/16] misc/mei/hdcp: Client driver for HDCP application Ramalingam C
2019-02-21 18:11 ` [PATCH v15 03/16] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Ramalingam C
2019-02-21 18:11 ` [PATCH v15 04/16] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session Ramalingam C
2019-02-23  0:34   ` kbuild test robot
2019-02-21 18:11 ` [PATCH v15 05/16] misc/mei/hdcp: Verify Receiver Cert and prepare km Ramalingam C
2019-02-21 18:12 ` [PATCH v15 06/16] misc/mei/hdcp: Verify H_prime Ramalingam C
2019-02-21 18:12 ` [PATCH v15 07/16] misc/mei/hdcp: Store the HDCP Pairing info Ramalingam C
2019-02-21 18:12 ` [PATCH v15 08/16] misc/mei/hdcp: Initiate Locality check Ramalingam C
2019-02-21 18:12 ` [PATCH v15 09/16] misc/mei/hdcp: Verify L_prime Ramalingam C
2019-02-21 18:12 ` [PATCH v15 10/16] misc/mei/hdcp: Prepare Session Key Ramalingam C
2019-02-21 18:12 ` [PATCH v15 11/16] misc/mei/hdcp: Repeater topology verification and ack Ramalingam C
2019-02-21 18:12 ` [PATCH v15 12/16] misc/mei/hdcp: Verify M_prime Ramalingam C
2019-02-21 18:12 ` [PATCH v15 13/16] misc/mei/hdcp: Enabling the HDCP authentication Ramalingam C
2019-02-21 18:12 ` [PATCH v15 14/16] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session Ramalingam C
2019-02-21 18:12 ` [PATCH v15 15/16] misc/mei/hdcp: Component framework for I915 Interface Ramalingam C
2019-02-21 18:12 ` [PATCH v15 16/16] FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915 Ramalingam C
2019-02-21 18:26 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 Patchwork
2019-02-21 18:29 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-02-21 19:05 ` ✗ Fi.CI.BAT: failure " Patchwork
2019-02-24 16:33 ` [PATCH v15 00/16] " C, Ramalingam
2019-02-24 20:14   ` Winkler, Tomas
2019-02-25  5:12     ` C, Ramalingam
2019-02-25  8:18       ` Daniel Vetter
2019-02-25 15:13         ` Winkler, Tomas
2019-02-25 17:54           ` Daniel Vetter
2019-02-25  9:01 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 (rev2) Patchwork
2019-02-25  9:04 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-02-25  9:25 ` ✓ Fi.CI.BAT: success " Patchwork
2019-02-25 11:11 ` ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.