From: Ramalingam C <ramalingam.c@intel.com>
To: Anshuman Gupta <anshuman.gupta@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v2] drm/i915/hdcp: restore hdcp state same as previous
Date: Thu, 9 Jan 2020 18:57:27 +0530 [thread overview]
Message-ID: <20200109132727.GC32180@intel.com> (raw)
In-Reply-To: <20200109125508.19601-1-anshuman.gupta@intel.com>
On 2020-01-09 at 18:25:08 +0530, Anshuman Gupta wrote:
> When port is disabled due to modeset or DPMS off actually
> it disables the HDCP encryption keeping its state to
s/state/"content protection property as"
> CP_ENABLED.
> this doesn't enable HDCP again while port
> gets enable again.
Since the content protection is left at ENABLED state by mistake at next
DDI enable flow HDCP auth is not attempted.
> HDCP state should set accordingly
content protection property state should be updated as per port
authentication state.
> when port is disabled.
>
> v2: Incorporated the necessary locking and making sure
> when user explicitly set HDCP to UNDESRIED it should
> make HDCP to desired while disabling DDI. (Ram)
Need to rephrase this too.
>
> CC: Ramalingam C <ramalingam.c@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display_types.h | 1 +
> drivers/gpu/drm/i915/display/intel_hdcp.c | 12 +++++++++++-
> 2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 630a94892b7b..f2552a52f26a 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -344,6 +344,7 @@ struct intel_hdcp {
> u64 value;
> struct delayed_work check_work;
> struct work_struct prop_work;
> + bool is_hdcp_undesired;
small comment on why this is needed now would be good.
/* Indicates whether HDCP is UNDESIERD by userspace */
>
> /* HDCP1.4 Encryption status */
> bool hdcp_encrypted;
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 0fdbd39f6641..507056aab33b 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -2002,11 +2002,17 @@ int intel_hdcp_disable(struct intel_connector *connector)
> mutex_lock(&hdcp->mutex);
>
> if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
> - hdcp->value = DRM_MODE_CONTENT_PROTECTION_UNDESIRED;
> if (hdcp->hdcp2_encrypted)
> ret = _intel_hdcp2_disable(connector);
> else if (hdcp->hdcp_encrypted)
> ret = _intel_hdcp_disable(connector);
> +
> + if (hdcp->is_hdcp_undesired) {
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_UNDESIRED;
> + } else {
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> + schedule_work(&hdcp->prop_work);
> + }
> }
>
> mutex_unlock(&hdcp->mutex);
> @@ -2044,6 +2050,7 @@ void intel_hdcp_atomic_check(struct drm_connector *connector,
> {
> u64 old_cp = old_state->content_protection;
> u64 new_cp = new_state->content_protection;
> + struct intel_connector *intel_conn = to_intel_connector(connector);
> struct drm_crtc_state *crtc_state;
>
> if (!new_state->crtc) {
> @@ -2069,6 +2076,9 @@ void intel_hdcp_atomic_check(struct drm_connector *connector,
> return;
> }
>
> + if (new_cp == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
> + intel_conn->hdcp.is_hdcp_undesired = true;
This flag will be always left at true. reset it to false as soon as used
at intel_hdcp_disable()
-Ram
> +
> crtc_state = drm_atomic_get_new_crtc_state(new_state->state,
> new_state->crtc);
> crtc_state->mode_changed = true;
> --
> 2.24.0
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2020-01-09 13:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-09 12:55 [Intel-gfx] [PATCH v2] drm/i915/hdcp: restore hdcp state same as previous Anshuman Gupta
2020-01-09 13:27 ` Ramalingam C [this message]
2020-01-09 21:19 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
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=20200109132727.GC32180@intel.com \
--to=ramalingam.c@intel.com \
--cc=anshuman.gupta@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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 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.