dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Ramalingam C <ramalingam.c@intel.com>
To: "Shankar, Uma" <uma.shankar@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"seanpaul@chromium.org" <seanpaul@chromium.org>,
	"daniel@ffwll.ch" <daniel@ffwll.ch>,
	"chris@chris-wilson.co.uk" <chris@chris-wilson.co.uk>,
	"jani.nikula@linux.intel.com" <jani.nikula@linux.intel.com>,
	"Winkler, Tomas" <tomas.winkler@intel.com>,
	"Usyskin, Alexander" <alexander.usyskin@intel.com>
Cc: "Vivi, Rodrigo" <rodrigo.vivi@intel.com>
Subject: Re: [PATCH v3 25/40] drm/i915: Enable and Disable HDCP2.2 port encryption
Date: Thu, 17 May 2018 18:44:07 +0530	[thread overview]
Message-ID: <34d0dba2-8bb6-9f86-3f38-738f43c4217c@intel.com> (raw)
In-Reply-To: <8dbde0b2-ea45-2ca6-3ff1-c1ccefaef18f@intel.com>



On Thursday 17 May 2018 06:31 PM, Ramalingam C wrote:
>
>
> On Monday 14 May 2018 02:53 PM, Shankar, Uma wrote:
>>
>>> -----Original Message-----
>>> From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On 
>>> Behalf Of
>>> Ramalingam C
>>> Sent: Tuesday, April 3, 2018 7:28 PM
>>> To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
>>> seanpaul@chromium.org; daniel@ffwll.ch; chris@chris-wilson.co.uk;
>>> jani.nikula@linux.intel.com; Winkler, Tomas <tomas.winkler@intel.com>;
>>> Usyskin, Alexander <alexander.usyskin@intel.com>
>>> Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com>
>>> Subject: [PATCH v3 25/40] drm/i915: Enable and Disable HDCP2.2 port 
>>> encryption
>>>
>>> Implements the enable and disable functions for HDCP2.2 encryption 
>>> of the
>>> PORT.
>>>
>>> v2:
>>>   intel_wait_for_register is used instead of wait_for. [Chris Wilson]
>>> v3:
>>>   No Changes.
>>>
>>> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
>>> ---
>>> drivers/gpu/drm/i915/intel_hdcp.c | 54
>>> +++++++++++++++++++++++++++++++++++++++
>>> 1 file changed, 54 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c
>>> b/drivers/gpu/drm/i915/intel_hdcp.c
>>> index d70320da85e4..91cac643f083 100644
>>> --- a/drivers/gpu/drm/i915/intel_hdcp.c
>>> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
>>> @@ -19,6 +19,7 @@
>>>                      (enum hdcp_physical_port) (port))
>>> #define KEY_LOAD_TRIES    5
>>> #define HDCP2_LC_RETRY_CNT        3
>>> +#define TIME_FOR_ENCRYPT_STATUS_CHANGE    32
>>>
>>> static int intel_hdcp_poll_ksv_fifo(struct intel_digital_port 
>>> *intel_dig_port,
>>>                     const struct intel_hdcp_shim *shim) @@ -
>>> 1330,3 +1331,56 @@ static int hdcp2_authenticate_sink(struct 
>>> intel_connector
>>> *connector)
>>>
>>>     return ret;
>>> }
>>> +
>>> +static int hdcp2_enable_encryption(struct intel_connector 
>>> *connector) {
>>> +    struct intel_digital_port *intel_dig_port = 
>>> conn_to_dig_port(connector);
>>> +    struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>>> +    struct intel_hdcp *hdcp = &connector->hdcp;
>>> +    enum port port = connector->encoder->port;
>>> +    int ret;
>>> +
>>> +    if (I915_READ(HDCP2_STATUS_DDI(port)) & LINK_ENCRYPTION_STATUS)
>> Print a message saying "Encryption Already enabled" .
> It doesn't serve any purpose uma. why do we need this?
>>> +        return 0;
>>> +
>>> +    if (hdcp->hdcp_shim->toggle_signalling)
>> Check for "hdcp->hdcp_shim" as well.
> Without hdcp_shim structure, we wont reach here.
>>> + hdcp->hdcp_shim->toggle_signalling(intel_dig_port, true);
>>> +
>>> +    if (I915_READ(HDCP2_STATUS_DDI(port)) & LINK_AUTH_STATUS) {
>>> +
>>> +        /* Link is Authenticated. Now set for Encryption */
>>> +        I915_WRITE(HDCP2_CTR_DDI(port),
>>> +               I915_READ(HDCP2_CTR_DDI(port)) |
>>> +               CTL_LINK_ENCRYPTION_REQ);
>>> +    }
>>> +
>>> +    ret = intel_wait_for_register(dev_priv, HDCP2_STATUS_DDI(port),
>>> +                      LINK_ENCRYPTION_STATUS,
>>> +                      LINK_ENCRYPTION_STATUS,
>>> +                      TIME_FOR_ENCRYPT_STATUS_CHANGE);
>> Print a message in case of timeout.
> Yes. Since this timeout is unexpected, debug msg would help.
Sorry my bad, caller is already handling the error case. So such debug 
msg is needed only for disable sequence.
>>
>>> +    return ret;
>>> +}
>>> +
>>> +static int hdcp2_disable_encryption(struct intel_connector *connector)
>>> +{
>>> +    struct intel_digital_port *intel_dig_port = 
>>> conn_to_dig_port(connector);
>>> +    struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>>> +    struct intel_hdcp *hdcp = &connector->hdcp;
>>> +    enum port port = connector->encoder->port;
>>> +    int ret;
>>> +
>>> +    if (!(I915_READ(HDCP2_STATUS_DDI(port)) &
>>> LINK_ENCRYPTION_STATUS))
>> Put a info message saying "Already Disabled" .
> I feel this msg wont help uma.
>>
>>> +        return 0;
>>> +
>>> +    I915_WRITE(HDCP2_CTR_DDI(port),
>>> +           I915_READ(HDCP2_CTR_DDI(port)) &
>>> ~CTL_LINK_ENCRYPTION_REQ);
>>> +
>>> +    ret = intel_wait_for_register(dev_priv, HDCP2_STATUS_DDI(port),
>>> +                      LINK_ENCRYPTION_STATUS, 0x0,
>>> +                      TIME_FOR_ENCRYPT_STATUS_CHANGE);
>> If this times out, do we still need to toggle the signalling ?
> As per the Bspec Encryption will stop in a frame time. So 32mSec 
> should be adequate.
> So we need to toggle the hdcp signaling so that panel will know that 
> unencrypted data is expected.
>
>>> +
>>> +    if (hdcp->hdcp_shim->toggle_signalling)
>> Check for validity of " hdcp->hdcp_shim".
> hdcp_shim will be valid at this point. but where as toggling function 
> is only for hdmi.
>
> --Ram
>>
>>> + hdcp->hdcp_shim->toggle_signalling(intel_dig_port, false);
>>> +
>>> +    return ret;
>>> +}
>>> -- 
>>> 2.7.4
>>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>

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

  reply	other threads:[~2018-05-17 13:14 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-03 13:57 [PATCH v3 00/40] drm/i915: Implement HDCP2.2 Ramalingam C
2018-04-03 13:57 ` [PATCH v3 01/40] drm: hdcp2.2 authentication msg definitions Ramalingam C
2018-05-09 10:01   ` Shankar, Uma
2018-05-14 15:23     ` [Intel-gfx] " Ramalingam C
2018-04-03 13:57 ` [PATCH v3 02/40] drm: HDMI and DP specific HDCP2.2 defines Ramalingam C
2018-05-09 10:06   ` Shankar, Uma
2018-05-14 16:01     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 03/40] mei: bus: whitelist hdcp client Ramalingam C
2018-04-03 13:57 ` [PATCH v3 04/40] misc/mei/hdcp: Client driver for HDCP application Ramalingam C
2018-05-09 10:07   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 05/40] misc/mei/hdcp: Notifier chain for mei cldev state change Ramalingam C
2018-04-03 15:30   ` Daniel Vetter
2018-05-16 14:54     ` Ramalingam C
2018-04-03 20:53   ` kbuild test robot
2018-04-03 23:58   ` [RFC PATCH] misc/mei/hdcp: mei_cldev_state_notify_clients() can be static kbuild test robot
2018-04-04  6:12   ` [PATCH v3 05/40] misc/mei/hdcp: Notifier chain for mei cldev state change Usyskin, Alexander
2018-05-16 13:04     ` Ramalingam C
2018-05-17  5:52       ` Usyskin, Alexander
2018-05-17  6:15         ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 06/40] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Ramalingam C
2018-04-03 13:57 ` [PATCH v3 07/40] linux/mei: Header for mei_hdcp driver interface Ramalingam C
2018-05-09 10:08   ` Shankar, Uma
2018-05-16 15:05     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 08/40] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session Ramalingam C
2018-04-03 21:20   ` [Intel-gfx] " kbuild test robot
2018-04-04  6:45   ` Usyskin, Alexander
2018-05-16 15:19     ` Ramalingam C
2018-05-17  5:56       ` Usyskin, Alexander
2018-05-17  6:08         ` Ramalingam C
2018-05-09 10:13   ` Shankar, Uma
2018-05-16 15:26     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 09/40] misc/mei/hdcp: Verify Receiver Cert and prepare km Ramalingam C
2018-04-03 21:44   ` kbuild test robot
2018-04-03 13:57 ` [PATCH v3 10/40] misc/mei/hdcp: Verify H_prime Ramalingam C
2018-04-03 22:12   ` kbuild test robot
2018-05-09 10:16   ` [Intel-gfx] " Shankar, Uma
2018-05-16 15:43     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info Ramalingam C
2018-04-03 22:34   ` kbuild test robot
2018-05-09 10:28   ` Shankar, Uma
2018-05-16 15:53     ` Ramalingam C
2018-05-17  5:59       ` Usyskin, Alexander
2018-05-17  6:03         ` C, Ramalingam
2018-05-17  8:17           ` Jani Nikula
2018-05-21 12:19             ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 12/40] misc/mei/hdcp: Initiate Locality check Ramalingam C
2018-04-03 23:02   ` kbuild test robot
2018-05-09 10:31   ` Shankar, Uma
2018-05-16 16:02     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 13/40] misc/mei/hdcp: Verify L_prime Ramalingam C
2018-05-09 10:36   ` Shankar, Uma
2018-05-16 16:05     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 14/40] misc/mei/hdcp: Prepare Session Key Ramalingam C
2018-05-09 10:59   ` Shankar, Uma
2018-05-16 16:10     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 15/40] misc/mei/hdcp: Repeater topology verifcation and ack Ramalingam C
2018-05-09 11:04   ` Shankar, Uma
2018-05-16 16:32     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 16/40] misc/mei/hdcp: Verify M_prime Ramalingam C
2018-05-09 13:50   ` Shankar, Uma
2018-05-16 16:32     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 17/40] misc/mei/hdcp: Enabling the HDCP authentication Ramalingam C
2018-05-09 13:55   ` Shankar, Uma
2018-05-16 16:40     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 18/40] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session Ramalingam C
2018-05-09 14:02   ` [Intel-gfx] " Shankar, Uma
2018-05-16 16:41     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 19/40] drm/i915: wrapping all hdcp var into intel_hdcp Ramalingam C
2018-05-09 14:11   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 20/40] drm/i915: Define HDCP2.2 related variables Ramalingam C
2018-04-03 20:27   ` kbuild test robot
2018-05-09 14:23   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 21/40] drm/i915: Define Intel HDCP2.2 registers Ramalingam C
2018-05-09 14:59   ` Shankar, Uma
2018-05-17 10:24     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 22/40] drm/i915: Wrappers for mei HDCP2.2 services Ramalingam C
2018-05-09 15:10   ` Shankar, Uma
2018-05-17 10:40     ` [Intel-gfx] " Ramalingam C
2018-04-03 13:57 ` [PATCH v3 23/40] drm/i915: Implement HDCP2.2 receiver authentication Ramalingam C
2018-05-09 15:20   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 24/40] drm/i915: Implement HDCP2.2 repeater authentication Ramalingam C
2018-04-04  1:11   ` kbuild test robot
2018-05-14  9:08   ` Shankar, Uma
2018-05-17 12:38     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 25/40] drm/i915: Enable and Disable HDCP2.2 port encryption Ramalingam C
2018-05-14  9:23   ` Shankar, Uma
2018-05-17 13:01     ` Ramalingam C
2018-05-17 13:14       ` Ramalingam C [this message]
2018-04-03 13:57 ` [PATCH v3 26/40] drm/i915: Implement HDCP2.2 En/Dis-able Ramalingam C
2018-05-14  9:30   ` Shankar, Uma
2018-05-17 13:16     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 27/40] drm/i915: Implement HDCP2.2 link integrity check Ramalingam C
2018-05-14  9:45   ` Shankar, Uma
2018-05-17 13:31     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 28/40] drm/i915: Handle HDCP2.2 downstream topology change Ramalingam C
2018-05-18 12:09   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 29/40] drm/i915: Pullout the bksv read and validation Ramalingam C
2018-04-03 13:57 ` [PATCH v3 30/40] drm/i915: Initialize HDCP2.2 and its MEI interface Ramalingam C
2018-05-18 12:33   ` [Intel-gfx] " Shankar, Uma
2018-05-18 16:29     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 31/40] drm/i915: Schedule hdcp_check_link in _intel_hdcp_enable Ramalingam C
2018-05-18 12:37   ` [Intel-gfx] " Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 32/40] drm/i915: Enable superior HDCP ver that is capable Ramalingam C
2018-05-18 12:49   ` [Intel-gfx] " Shankar, Uma
2018-05-21  8:29     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 33/40] drm/i915: Enable HDCP1.4 incase of HDCP2.2 failure Ramalingam C
2018-05-18 12:52   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 34/40] drm/i915: hdcp_check_link only on CP_IRQ Ramalingam C
2018-05-18 12:55   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 35/40] drm/i915: Check HDCP 1.4 and 2.2 link " Ramalingam C
2018-05-18 15:59   ` Shankar, Uma
2018-05-21  8:37     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 36/40] drm/i915: Implement gmbus burst read Ramalingam C
2018-04-03 16:40   ` Daniel Vetter
2018-04-05  9:12     ` Jani Nikula
2018-04-05 13:44       ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 37/40] drm/i915: Implement the HDCP2.2 support for DP Ramalingam C
2018-04-03 19:57   ` kbuild test robot
2018-04-03 21:16   ` kbuild test robot
2018-05-18 16:15   ` Shankar, Uma
2018-05-21  8:49     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 38/40] drm/i915: Implement the HDCP2.2 support for HDMI Ramalingam C
2018-05-18 16:29   ` Shankar, Uma
2018-05-21  9:08     ` [Intel-gfx] " Ramalingam C
2018-04-03 13:57 ` [PATCH v3 39/40] drm/i915: Add HDCP2.2 support for DP connectors Ramalingam C
2018-05-18 16:37   ` [Intel-gfx] " Shankar, Uma
2018-05-21  9:14     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 40/40] drm/i915: Add HDCP2.2 support for HDMI connectors Ramalingam C
2018-05-18 16:38   ` [Intel-gfx] " Shankar, Uma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=34d0dba2-8bb6-9f86-3f38-738f43c4217c@intel.com \
    --to=ramalingam.c@intel.com \
    --cc=alexander.usyskin@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=seanpaul@chromium.org \
    --cc=tomas.winkler@intel.com \
    --cc=uma.shankar@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).