[PATCH v14 15/32] drm/i915: Fix KBL HDCP2.2 encrypt status signalling

2019-02-16 Thread Ramalingam C via dri-devel
HDCP transmitter is supposed to indicate the HDCP encryption status of the link through enc_en signals in a window of time called "window of opportunity" defined by HDCP HDMI spec. But on KBL this timing of signalling has an issue. To fix the issue this WA of resetting the signalling is required.

[PATCH v14 12/32] drm/i915: Implement the HDCP2.2 support for DP

2019-02-16 Thread Ramalingam C via dri-devel
Implements the DP adaptation specific HDCP2.2 functions. These functions perform the DPCD read and write for communicating the HDCP2.2 auth message back and forth. v2: wait for cp_irq is merged with this patch. Rebased. v3: wait_queue is used for wait for cp_irq [Chris Wilson] v4: Style

[PATCH v14 19/32] misc/mei/hdcp: Define ME FW interface for HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 26/32] misc/mei/hdcp: Prepare Session Key

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 28/32] misc/mei/hdcp: Verify M_prime

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 21/32] misc/mei/hdcp: Verify Receiver Cert and prepare km

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 33/35] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 09/32] drm/i915: Implement HDCP2.2 link integrity check

2019-02-16 Thread Ramalingam C via dri-devel
Implements the link integrity check once in 500mSec. Once encryption is enabled, an ongoing Link Integrity Check is performed by the HDCP Receiver to check that cipher synchronization is maintained between the HDCP Transmitter and the HDCP Receiver. On the detection of synchronization lost, the

[PATCH v14 18/32] misc/mei/hdcp: Client driver for HDCP application

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 25/32] misc/mei/hdcp: Verify L_prime

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 01/32] drm/i915: Gathering the HDCP1.4 routines together

2019-02-16 Thread Ramalingam C via dri-devel
All HDCP1.4 routines are gathered together, followed by the generic functions those can be extended for HDCP2.2 too. Signed-off-by: Ramalingam C Acked-by: Daniel Vetter Reviewed-by: Uma Shankar Reviewed-by: Tomas Winkler --- drivers/gpu/drm/i915/intel_hdcp.c | 118

[PATCH v14 20/32] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 30/35] misc/mei/hdcp: Repeater topology verification and ack

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 14/32] drm/i915: CP_IRQ handling for DP HDCP2.2 msgs

2019-02-16 Thread Ramalingam C via dri-devel
Implements the Waitqueue is created to wait for CP_IRQ Signaling the CP_IRQ arrival through atomic variable. For applicable DP HDCP2.2 msgs read wait for CP_IRQ. As per HDCP2.2 spec "HDCP Transmitters must process CP_IRQ interrupts when they are received from HDCP

[PATCH v14 31/35] misc/mei/hdcp: Verify M_prime

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 07/35] drm/i915: Enable and Disable of HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
Considering that HDCP2.2 is more secure than HDCP1.4, When a setup supports HDCP2.2 and HDCP1.4, HDCP2.2 will be enabled. When HDCP2.2 enabling fails and HDCP1.4 is supported, HDCP1.4 is enabled. This change implements a sequence of enabling and disabling of HDCP2.2 authentication and HDCP2.2

[PATCH v14 24/32] misc/mei/hdcp: Initiate Locality check

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 35/35] FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915

2019-02-16 Thread Ramalingam C via dri-devel
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 --- drivers/misc/mei/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/misc/mei/Kconfig

[PATCH v14 30/32] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 02/35] drm: enum port definition is moved into i915_drm.h

2019-02-16 Thread Ramalingam C via dri-devel
For the reusability of the enum port in other driver modules (like mei_hdcp), enum port definition is moved from I915 local header intel_display.h to drm/i915_drm.h Signed-off-by: Ramalingam C Acked-by: Daniel Vetter --- drivers/gpu/drm/i915/intel_display.h | 16 +---

[PATCH v14 08/35] drm/i915: Implement HDCP2.2 receiver authentication

2019-02-16 Thread Ramalingam C via dri-devel
Implements HDCP2.2 authentication for hdcp2.2 receivers, with following steps: Authentication and Key exchange (AKE). Locality Check (LC). Session Key Exchange(SKE). DP Errata for stream type configuration for receivers. At AKE, the HDCP Receiver’s public key

[PATCH v14 34/35] misc/mei/hdcp: Component framework for I915 Interface

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 25/35] misc/mei/hdcp: Verify H_prime

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 32/32] FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915

2019-02-16 Thread Ramalingam C via dri-devel
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 --- drivers/misc/mei/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/misc/mei/Kconfig

[PATCH v14 05/32] drm/i915: Enable and Disable of HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
Considering that HDCP2.2 is more secure than HDCP1.4, When a setup supports HDCP2.2 and HDCP1.4, HDCP2.2 will be enabled. When HDCP2.2 enabling fails and HDCP1.4 is supported, HDCP1.4 is enabled. This change implements a sequence of enabling and disabling of HDCP2.2 authentication and HDCP2.2

[PATCH v14 20/35] mei: bus: export to_mei_cl_device for mei client device drivers

2019-02-16 Thread Ramalingam C via dri-devel
From: Tomas Winkler Export to_mei_cl_device macro, it is needed also in mei client drivers. Signed-off-by: Tomas Winkler Signed-off-by: Ramalingam C --- drivers/misc/mei/bus.c | 1 - include/linux/mei_cl_bus.h | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git

[PATCH v14 04/35] drm/i915: Initialize HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
Add the HDCP2.2 initialization to the existing HDCP1.4 stack. v2: mei interface handle is protected with mutex. [Chris Wilson] v3: Notifiers are used for the mei interface state. v4: Poll for mei client device state Error msg for out of mem [Uma] Inline req for init function removed

[PATCH v14 29/35] misc/mei/hdcp: Prepare Session Key

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 16/35] drm/i915: Implement the HDCP2.2 support for HDMI

2019-02-16 Thread Ramalingam C via dri-devel
Implements the HDMI adaptation specific HDCP2.2 operations. Basically these are DDC read and write for authenticating through HDCP2.2 messages. v2: Rebased. v3: No more special handling of Gmbus burst read for AKE_SEND_CERT. Style fixed with few naming. [Uma] %s/PARING/PAIRING v4: msg_sz

[PATCH v14 13/35] drm/i915: Handle HDCP2.2 downstream topology change

2019-02-16 Thread Ramalingam C via dri-devel
When repeater notifies a downstream topology change, this patch reauthenticate the repeater alone without disabling the hdcp encryption. If that fails then complete reauthentication is executed. v2: Rebased. v3: Typo in commit msg is fixed [Uma] v4: Rebased as part of patch reordering.

[PATCH v14 28/35] misc/mei/hdcp: Verify L_prime

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 32/35] misc/mei/hdcp: Enabling the HDCP authentication

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 26/35] misc/mei/hdcp: Store the HDCP Pairing info

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 14/35] drm: removing the DP Errata msg and its msg id

2019-02-16 Thread Ramalingam C via dri-devel
Since DP ERRATA message is not defined at spec, those structure definition is removed from drm_hdcp.h Signed-off-by: Ramalingam C Suggested-by: Daniel Vetter Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar --- include/drm/drm_hdcp.h | 6 -- 1 file changed, 6 deletions(-) diff --git

[PATCH v14 05/35] drm/i915: MEI interface definition

2019-02-16 Thread Ramalingam C via dri-devel
Defining the mei-i915 interface functions and initialization of the interface. v2: Adjust to the new interface changes. [Tomas] Added further debug logs for the failures at MEI i/f. port in hdcp_port data is equipped to handle -ve values. v3: mei comp is matched for global i915 comp

[PATCH v14 27/35] misc/mei/hdcp: Initiate Locality check

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 22/35] misc/mei/hdcp: Define ME FW interface for HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 06/35] drm/i915: hdcp1.4 CP_IRQ handling and SW encryption tracking

2019-02-16 Thread Ramalingam C via dri-devel
"hdcp_encrypted" flag is defined to denote the HDCP1.4 encryption status. This SW tracking is used to determine the need for real hdcp1.4 disable and hdcp_check_link upon CP_IRQ. On CP_IRQ we filter the CP_IRQ related to the states like Link failure and reauthentication req etc and handle them in

[PATCH v14 12/35] drm/i915: Implement HDCP2.2 link integrity check

2019-02-16 Thread Ramalingam C via dri-devel
Implements the link integrity check once in 500mSec. Once encryption is enabled, an ongoing Link Integrity Check is performed by the HDCP Receiver to check that cipher synchronization is maintained between the HDCP Transmitter and the HDCP Receiver. On the detection of synchronization lost, the

[PATCH v14 17/35] drm/i915: CP_IRQ handling for DP HDCP2.2 msgs

2019-02-16 Thread Ramalingam C via dri-devel
Implements the Waitqueue is created to wait for CP_IRQ Signaling the CP_IRQ arrival through atomic variable. For applicable DP HDCP2.2 msgs read wait for CP_IRQ. As per HDCP2.2 spec "HDCP Transmitters must process CP_IRQ interrupts when they are received from HDCP

[PATCH v14 07/32] drm/i915: Implement HDCP2.2 repeater authentication

2019-02-16 Thread Ramalingam C via dri-devel
Implements the HDCP2.2 repeaters authentication steps such as verifying the downstream topology and sending stream management information. v2: Rebased. v3: -EINVAL is returned for topology error and rollover scenario. Endianness conversion func from drm_hdcp.h is used [Uma] v4: Rebased as

[PATCH v14 03/35] drm: header for i915 - MEI_HDCP interface

2019-02-16 Thread Ramalingam C via dri-devel
Header defines the interface for the I915 and MEI_HDCP drivers. This interface is specific to the usage of mei_hdcp from gen9+ platforms for ME FW based HDCP2.2 services. And Generic HDCP2.2 protocol specific definitions are added at drm/drm_hdcp.h. v2: Commit msg is enhanced [Daniel] v3:

[PATCH v14 21/35] misc/mei/hdcp: Client driver for HDCP application

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 19/35] mei: bus: whitelist hdcp client

2019-02-16 Thread Ramalingam C via dri-devel
From: Tomas Winkler Whitelist HDCP client for in kernel drm use v2: Rebased. Signed-off-by: Tomas Winkler Signed-off-by: Ramalingam C --- drivers/misc/mei/bus-fixup.c | 16 1 file changed, 16 insertions(+) diff --git a/drivers/misc/mei/bus-fixup.c

[PATCH v14 09/35] drm: helper functions for hdcp2 seq_num to from u32

2019-02-16 Thread Ramalingam C via dri-devel
Library functions for endianness are aligned for 16/32/64 bits. But hdcp sequence numbers are 24bits(big endian). So for their conversion to and from u32 helper functions are developed. v2: Comment is updated. [Daniel] Reviewed-by Uma. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter

[PATCH v14 10/35] drm/i915: Implement HDCP2.2 repeater authentication

2019-02-16 Thread Ramalingam C via dri-devel
Implements the HDCP2.2 repeaters authentication steps such as verifying the downstream topology and sending stream management information. v2: Rebased. v3: -EINVAL is returned for topology error and rollover scenario. Endianness conversion func from drm_hdcp.h is used [Uma] v4: Rebased as

[PATCH v14 23/35] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 18/35] drm/i915: Fix KBL HDCP2.2 encrypt status signalling

2019-02-16 Thread Ramalingam C via dri-devel
HDCP transmitter is supposed to indicate the HDCP encryption status of the link through enc_en signals in a window of time called "window of opportunity" defined by HDCP HDMI spec. But on KBL this timing of signalling has an issue. To fix the issue this WA of resetting the signalling is required.

[PATCH v14 04/32] drm/i915: hdcp1.4 CP_IRQ handling and SW encryption tracking

2019-02-16 Thread Ramalingam C via dri-devel
"hdcp_encrypted" flag is defined to denote the HDCP1.4 encryption status. This SW tracking is used to determine the need for real hdcp1.4 disable and hdcp_check_link upon CP_IRQ. On CP_IRQ we filter the CP_IRQ related to the states like Link failure and reauthentication req etc and handle them in

[PATCH v14 11/35] drm: HDCP2.2 link check period

2019-02-16 Thread Ramalingam C via dri-devel
Time period for HDCP2.2 link check. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar --- include/drm/drm_hdcp.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h index 7260b31af276..d4e98b11b4aa 100644 ---

[PATCH v14 24/35] misc/mei/hdcp: Verify Receiver Cert and prepare km

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 11/32] drm: removing the DP Errata msg and its msg id

2019-02-16 Thread Ramalingam C via dri-devel
Since DP ERRATA message is not defined at spec, those structure definition is removed from drm_hdcp.h Signed-off-by: Ramalingam C Suggested-by: Daniel Vetter Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar --- include/drm/drm_hdcp.h | 6 -- 1 file changed, 6 deletions(-) diff --git

[PATCH v14 00/35] drm/i915: Implement HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 01/35] drm/i915: Gathering the HDCP1.4 routines together

2019-02-16 Thread Ramalingam C via dri-devel
All HDCP1.4 routines are gathered together, followed by the generic functions those can be extended for HDCP2.2 too. Signed-off-by: Ramalingam C Acked-by: Daniel Vetter Reviewed-by: Uma Shankar Reviewed-by: Tomas Winkler --- drivers/gpu/drm/i915/intel_hdcp.c | 118

[PATCH v14 31/33] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 27/33] misc/mei/hdcp: Prepare Session Key

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 28/33] misc/mei/hdcp: Repeater topology verification and ack

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 30/33] misc/mei/hdcp: Enabling the HDCP authentication

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 29/33] misc/mei/hdcp: Verify M_prime

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 32/33] misc/mei/hdcp: Component framework for I915 Interface

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 33/33] FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915

2019-02-16 Thread Ramalingam C via dri-devel
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 --- drivers/misc/mei/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/misc/mei/Kconfig

[PATCH v14 14/33] drm/i915: Implement the HDCP2.2 support for HDMI

2019-02-16 Thread Ramalingam C via dri-devel
Implements the HDMI adaptation specific HDCP2.2 operations. Basically these are DDC read and write for authenticating through HDCP2.2 messages. v2: Rebased. v3: No more special handling of Gmbus burst read for AKE_SEND_CERT. Style fixed with few naming. [Uma] %s/PARING/PAIRING v4: msg_sz

[PATCH v14 26/33] misc/mei/hdcp: Verify L_prime

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 02/33] drm/audio: declaration of struct device

2019-02-16 Thread Ramalingam C via dri-devel
Header has used the references to struct device without it definition or declaration. Hence resulting in compilation warning such as "'struct device' declared inside parameter list..." This changes adds a declaration to struct device in the header to avoid any such warnings. Signed-off-by:

[PATCH v14 25/33] misc/mei/hdcp: Initiate Locality check

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 00/33] drm/i915: Implement HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 06/33] drm/i915: Enable and Disable of HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
Considering that HDCP2.2 is more secure than HDCP1.4, When a setup supports HDCP2.2 and HDCP1.4, HDCP2.2 will be enabled. When HDCP2.2 enabling fails and HDCP1.4 is supported, HDCP1.4 is enabled. This change implements a sequence of enabling and disabling of HDCP2.2 authentication and HDCP2.2

[PATCH v14 09/33] drm: HDCP2.2 link check period

2019-02-16 Thread Ramalingam C via dri-devel
Time period for HDCP2.2 link check. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar --- include/drm/drm_hdcp.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h index 7260b31af276..d4e98b11b4aa 100644 ---

[PATCH v14 15/33] drm/i915: CP_IRQ handling for DP HDCP2.2 msgs

2019-02-16 Thread Ramalingam C via dri-devel
Implements the Waitqueue is created to wait for CP_IRQ Signaling the CP_IRQ arrival through atomic variable. For applicable DP HDCP2.2 msgs read wait for CP_IRQ. As per HDCP2.2 spec "HDCP Transmitters must process CP_IRQ interrupts when they are received from HDCP

[PATCH v14 03/33] drm/i915: Initialize HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
Add the HDCP2.2 initialization to the existing HDCP1.4 stack. v2: mei interface handle is protected with mutex. [Chris Wilson] v3: Notifiers are used for the mei interface state. v4: Poll for mei client device state Error msg for out of mem [Uma] Inline req for init function removed

[PATCH v14 22/33] misc/mei/hdcp: Verify Receiver Cert and prepare km

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 19/33] misc/mei/hdcp: Client driver for HDCP application

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 18/33] mei: bus: export to_mei_cl_device for mei client device drivers

2019-02-16 Thread Ramalingam C via dri-devel
From: Tomas Winkler Export to_mei_cl_device macro, it is needed also in mei client drivers. Signed-off-by: Tomas Winkler Signed-off-by: Ramalingam C --- drivers/misc/mei/bus.c | 1 - include/linux/mei_cl_bus.h | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git

[PATCH v14 04/33] drm/i915: MEI interface implementation

2019-02-16 Thread Ramalingam C via dri-devel
Defining the mei-i915 interface functions and initialization of the interface. v2: Adjust to the new interface changes. [Tomas] Added further debug logs for the failures at MEI i/f. port in hdcp_port data is equipped to handle -ve values. v3: mei comp is matched for global i915 comp

[PATCH v14 17/33] mei: bus: whitelist hdcp client

2019-02-16 Thread Ramalingam C via dri-devel
From: Tomas Winkler Whitelist HDCP client for in kernel drm use v2: Rebased. Signed-off-by: Tomas Winkler Signed-off-by: Ramalingam C --- drivers/misc/mei/bus-fixup.c | 16 1 file changed, 16 insertions(+) diff --git a/drivers/misc/mei/bus-fixup.c

[PATCH v14 23/33] misc/mei/hdcp: Verify H_prime

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 11/33] drm/i915: Handle HDCP2.2 downstream topology change

2019-02-16 Thread Ramalingam C via dri-devel
When repeater notifies a downstream topology change, this patch reauthenticate the repeater alone without disabling the hdcp encryption. If that fails then complete reauthentication is executed. v2: Rebased. v3: Typo in commit msg is fixed [Uma] v4: Rebased as part of patch reordering.

[PATCH v14 13/33] drm/i915: Implement the HDCP2.2 support for DP

2019-02-16 Thread Ramalingam C via dri-devel
Implements the DP adaptation specific HDCP2.2 functions. These functions perform the DPCD read and write for communicating the HDCP2.2 auth message back and forth. v2: wait for cp_irq is merged with this patch. Rebased. v3: wait_queue is used for wait for cp_irq [Chris Wilson] v4: Style

[PATCH v14 12/33] drm: removing the DP Errata msg and its msg id

2019-02-16 Thread Ramalingam C via dri-devel
Since DP ERRATA message is not defined at spec, those structure definition is removed from drm_hdcp.h Signed-off-by: Ramalingam C Suggested-by: Daniel Vetter Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar --- include/drm/drm_hdcp.h | 6 -- 1 file changed, 6 deletions(-) diff --git

[PATCH v14 20/33] misc/mei/hdcp: Define ME FW interface for HDCP2.2

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 16/33] drm/i915: Fix KBL HDCP2.2 encrypt status signalling

2019-02-16 Thread Ramalingam C via dri-devel
HDCP transmitter is supposed to indicate the HDCP encryption status of the link through enc_en signals in a window of time called "window of opportunity" defined by HDCP HDMI spec. But on KBL this timing of signalling has an issue. To fix the issue this WA of resetting the signalling is required.

[PATCH v14 07/33] drm/i915: Implement HDCP2.2 receiver authentication

2019-02-16 Thread Ramalingam C via dri-devel
Implements HDCP2.2 authentication for hdcp2.2 receivers, with following steps: Authentication and Key exchange (AKE). Locality Check (LC). Session Key Exchange(SKE). DP Errata for stream type configuration for receivers. At AKE, the HDCP Receiver’s public key

[PATCH v14 08/33] drm/i915: Implement HDCP2.2 repeater authentication

2019-02-16 Thread Ramalingam C via dri-devel
Implements the HDCP2.2 repeaters authentication steps such as verifying the downstream topology and sending stream management information. v2: Rebased. v3: -EINVAL is returned for topology error and rollover scenario. Endianness conversion func from drm_hdcp.h is used [Uma] v4: Rebased as

[PATCH v14 05/33] drm/i915: hdcp1.4 CP_IRQ handling and SW encryption tracking

2019-02-16 Thread Ramalingam C via dri-devel
"hdcp_encrypted" flag is defined to denote the HDCP1.4 encryption status. This SW tracking is used to determine the need for real hdcp1.4 disable and hdcp_check_link upon CP_IRQ. On CP_IRQ we filter the CP_IRQ related to the states like Link failure and reauthentication req etc and handle them in

[PATCH v14 21/33] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14 10/33] drm/i915: Implement HDCP2.2 link integrity check

2019-02-16 Thread Ramalingam C via dri-devel
Implements the link integrity check once in 500mSec. Once encryption is enabled, an ongoing Link Integrity Check is performed by the HDCP Receiver to check that cipher synchronization is maintained between the HDCP Transmitter and the HDCP Receiver. On the detection of synchronization lost, the

[PATCH v14 01/33] drm/i915: Gathering the HDCP1.4 routines together

2019-02-16 Thread Ramalingam C via dri-devel
All HDCP1.4 routines are gathered together, followed by the generic functions those can be extended for HDCP2.2 too. Signed-off-by: Ramalingam C Acked-by: Daniel Vetter Reviewed-by: Uma Shankar Reviewed-by: Tomas Winkler --- drivers/gpu/drm/i915/intel_hdcp.c | 118

[PATCH v14 24/33] misc/mei/hdcp: Store the HDCP Pairing info

2019-02-16 Thread Ramalingam C via dri-devel
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

[PATCH v14] drm/audio: declaration of struct device

2019-02-16 Thread Ramalingam C via dri-devel
Header has used the references to struct device without it definition or declaration. Hence the warning of "struct device declared inside parameter list..." This changes adds a declaration to struct device in the header to avoid any such warnings. Signed-off-by: Ramalingam C ---

[PATCH] drm/audio: declaration of struct device

2019-02-16 Thread Ramalingam C via dri-devel
Header has used the references to struct device without it definition or declaration. Hence resulting in compilation warning such as "'struct device' declared inside parameter list..." This changes adds a declaration to struct device in the header to avoid any such warnings. Signed-off-by:

[PATCH v14 29/32] misc/mei/hdcp: Enabling the HDCP authentication

2019-02-15 Thread Ramalingam C via dri-devel
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

[PATCH v14 27/32] misc/mei/hdcp: Repeater topology verification and ack

2019-02-15 Thread Ramalingam C via dri-devel
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

[PATCH v14 31/32] misc/mei/hdcp: Component framework for I915 Interface

2019-02-15 Thread Ramalingam C via dri-devel
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

[PATCH v14 00/32] drm/i915: Implement HDCP2.2

2019-02-15 Thread Ramalingam C via dri-devel
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

[PATCH v14 22/32] misc/mei/hdcp: Verify H_prime

2019-02-15 Thread Ramalingam C via dri-devel
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

[PATCH v14 08/32] drm: HDCP2.2 link check period

2019-02-15 Thread Ramalingam C via dri-devel
Time period for HDCP2.2 link check. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar --- include/drm/drm_hdcp.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h index 7260b31af276..d4e98b11b4aa 100644 ---

[PATCH v14 03/32] drm/i915: MEI interface implementation

2019-02-15 Thread Ramalingam C via dri-devel
Defining the mei-i915 interface functions and initialization of the interface. v2: Adjust to the new interface changes. [Tomas] Added further debug logs for the failures at MEI i/f. port in hdcp_port data is equipped to handle -ve values. v3: mei comp is matched for global i915 comp

[PATCH v14 17/32] mei: bus: export to_mei_cl_device for mei client device drivers

2019-02-15 Thread Ramalingam C via dri-devel
From: Tomas Winkler Export to_mei_cl_device macro, it is needed also in mei client drivers. Signed-off-by: Tomas Winkler Signed-off-by: Ramalingam C --- drivers/misc/mei/bus.c | 1 - include/linux/mei_cl_bus.h | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git

[PATCH v14 06/32] drm/i915: Implement HDCP2.2 receiver authentication

2019-02-15 Thread Ramalingam C via dri-devel
Implements HDCP2.2 authentication for hdcp2.2 receivers, with following steps: Authentication and Key exchange (AKE). Locality Check (LC). Session Key Exchange(SKE). DP Errata for stream type configuration for receivers. At AKE, the HDCP Receiver’s public key

[PATCH v14 16/32] mei: bus: whitelist hdcp client

2019-02-15 Thread Ramalingam C via dri-devel
From: Tomas Winkler Whitelist HDCP client for in kernel drm use v2: Rebased. Signed-off-by: Tomas Winkler Signed-off-by: Ramalingam C --- drivers/misc/mei/bus-fixup.c | 16 1 file changed, 16 insertions(+) diff --git a/drivers/misc/mei/bus-fixup.c

  1   2   >