Re: [Intel-gfx] [PATCH v10 24/40] misc/mei/hdcp: Define ME FW interface for HDCP2.2

2019-02-05 Thread Winkler, Tomas

> 
> >-Original Message-
> >From: C, Ramalingam
> >Sent: Thursday, January 31, 2019 12:30 PM
> >To: intel-gfx@lists.freedesktop.org; dri-de...@lists.freedesktop.org;
> >daniel.vet...@ffwll.ch; Winkler, Tomas ;
> >Shankar, Uma 
> >Cc: C, Ramalingam 
> >Subject: [PATCH v10 24/40] misc/mei/hdcp: Define ME FW interface for
> >HDCP2.2
> >
> >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.
> >
> >Signed-off-by: Ramalingam C 
> 
> Looks ok to me.
> Reviewed-by: Uma Shankar 
Acked-by Tomas Winkler 
> 
> >---
> > 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 ..582a7e27ae29
> >--- /dev/null
> >+++ b/drivers/misc/mei/hdcp/mei_hdcp.h
> >@@ -0,0 +1,366 @@
> >+/* SPDX-License-Identifier: (GPL-2.0+) */
> >+/*
> >+ * Copyright © 2017-2018 Intel Corporation
> >+ *
> >+ * Authors:
> >+ * Ramalingam C   */
> >+
> >+#ifndef __MEI_HDCP_H__
> >+#define __MEI_HDCP_H__
> >+
> >+#include 
> >+
> >+/* me_hdcp_status: Enumeration of all HDCP Status Codes */ enum
> >+me_hdcp_status {
> >+ME_HDCP_STATUS_SUCCESS  = 0x,
> >+
> >+/* 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,

Re: [Intel-gfx] [PATCH v10 24/40] misc/mei/hdcp: Define ME FW interface for HDCP2.2

2019-02-04 Thread Shankar, Uma


>-Original Message-
>From: C, Ramalingam
>Sent: Thursday, January 31, 2019 12:30 PM
>To: intel-gfx@lists.freedesktop.org; dri-de...@lists.freedesktop.org;
>daniel.vet...@ffwll.ch; Winkler, Tomas ; Shankar,
>Uma 
>Cc: C, Ramalingam 
>Subject: [PATCH v10 24/40] misc/mei/hdcp: Define ME FW interface for HDCP2.2
>
>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.
>
>Signed-off-by: Ramalingam C 

Looks ok to me.
Reviewed-by: Uma Shankar 

>---
> 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 ..582a7e27ae29
>--- /dev/null
>+++ b/drivers/misc/mei/hdcp/mei_hdcp.h
>@@ -0,0 +1,366 @@
>+/* SPDX-License-Identifier: (GPL-2.0+) */
>+/*
>+ * Copyright © 2017-2018 Intel Corporation
>+ *
>+ * Authors:
>+ * Ramalingam C   */
>+
>+#ifndef __MEI_HDCP_H__
>+#define __MEI_HDCP_H__
>+
>+#include 
>+
>+/* me_hdcp_status: Enumeration of all HDCP Status Codes */ enum
>+me_hdcp_status {
>+  ME_HDCP_STATUS_SUCCESS  = 0x,
>+
>+  /* 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   

[Intel-gfx] [PATCH v10 24/40] misc/mei/hdcp: Define ME FW interface for HDCP2.2

2019-01-30 Thread Ramalingam C
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.

Signed-off-by: Ramalingam C 
---
 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 ..582a7e27ae29
--- /dev/null
+++ b/drivers/misc/mei/hdcp/mei_hdcp.h
@@ -0,0 +1,366 @@
+/* SPDX-License-Identifier: (GPL-2.0+) */
+/*
+ * Copyright © 2017-2018 Intel Corporation
+ *
+ * Authors:
+ * Ramalingam C 
+ */
+
+#ifndef __MEI_HDCP_H__
+#define __MEI_HDCP_H__
+
+#include 
+
+/* me_hdcp_status: Enumeration of all HDCP Status Codes */
+enum me_hdcp_status {
+   ME_HDCP_STATUS_SUCCESS  = 0x,
+
+   /* 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   0x0001
+
+#define HDCP_M_LEN 16
+#define HDCP_KH_