From: Mark Yacoub <markyacoub@chromium.org>
To: quic_khsieh@quicinc.com, linux-arm-msm@vger.kernel.org,
dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
intel-gfx@lists.freedesktop.org
Cc: quic_sbillaka@quicinc.com, konrad.dybcio@somainline.org,
bjorn.andersson@linaro.org, krzysztof.kozlowski+dt@linaro.org,
airlied@gmail.com, hbh25y@gmail.com, marex@denx.de,
abhinavk@codeaurora.org, javierm@redhat.com, agross@kernel.org,
quic_jesszhan@quicinc.com, daniel@ffwll.ch,
Jani Nikula <jani.nikula@intel.com>,
lucas.demarchi@intel.com, quic_abhinavk@quicinc.com,
swboyd@chromium.org, robh+dt@kernel.org,
christophe.jaillet@wanadoo.fr, maxime@cerno.tech,
rodrigo.vivi@intel.com, johan+linaro@kernel.org,
markyacoub@chromium.org, andersson@kernel.org,
dianders@chromium.org, tzimmermann@suse.de,
dmitry.baryshkov@linaro.org, seanpaul@chromium.org
Subject: [Intel-gfx] [PATCH v6 02/10] drm/hdcp: Avoid changing crtc state in hdcp atomic check
Date: Wed, 18 Jan 2023 19:30:07 +0000 [thread overview]
Message-ID: <20230118193015.911074-3-markyacoub@google.com> (raw)
In-Reply-To: <20230118193015.911074-1-markyacoub@google.com>
From: Sean Paul <seanpaul@chromium.org>
Instead of forcing a modeset in the hdcp atomic check, simply return
true if the content protection value is changing and let the driver
decide whether a modeset is required or not.
Acked-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Mark Yacoub <markyacoub@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-3-sean@poorly.run #v1
Link: https://patchwork.freedesktop.org/patch/msgid/20210915203834.1439-3-sean@poorly.run #v2
Link: https://patchwork.freedesktop.org/patch/msgid/20211001151145.55916-3-sean@poorly.run #v3
Link: https://patchwork.freedesktop.org/patch/msgid/20211105030434.2828845-3-sean@poorly.run #v4
Link: https://patchwork.freedesktop.org/patch/msgid/20220411204741.1074308-3-sean@poorly.run #v5
Changes in v2:
-None
Changes in v3:
-None
Changes in v4:
-None
Changes in v5:
-None
Changes in V6:
-Rebase: modifications in drm_hdcp_helper.c instead of drm_hdcp.c
---
drivers/gpu/drm/display/drm_hdcp_helper.c | 33 +++++++++++++++------
drivers/gpu/drm/i915/display/intel_atomic.c | 6 ++--
include/drm/display/drm_hdcp_helper.h | 2 +-
3 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/display/drm_hdcp_helper.c b/drivers/gpu/drm/display/drm_hdcp_helper.c
index 7d910523b05f..a3896b0904b5 100644
--- a/drivers/gpu/drm/display/drm_hdcp_helper.c
+++ b/drivers/gpu/drm/display/drm_hdcp_helper.c
@@ -428,11 +428,14 @@ EXPORT_SYMBOL(drm_hdcp_update_content_protection);
* @connector: drm_connector on which content protection state needs an update
*
* This function can be used by display drivers to perform an atomic check on the
- * hdcp state elements. If hdcp state has changed, this function will set
- * mode_changed on the crtc driving the connector so it can update its hardware
- * to match the hdcp state.
+ * hdcp state elements. If hdcp state has changed in a manner which requires the
+ * driver to enable or disable content protection, this function will return
+ * true.
+ *
+ * Returns:
+ * true if the driver must enable/disable hdcp, false otherwise
*/
-void drm_hdcp_atomic_check(struct drm_connector *connector,
+bool drm_hdcp_atomic_check(struct drm_connector *connector,
struct drm_atomic_state *state)
{
struct drm_connector_state *new_conn_state, *old_conn_state;
@@ -450,10 +453,12 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
* If the connector is being disabled with CP enabled, mark it
* desired so it's re-enabled when the connector is brought back
*/
- if (old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED)
+ if (old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
new_conn_state->content_protection =
DRM_MODE_CONTENT_PROTECTION_DESIRED;
- return;
+ return true;
+ }
+ return false;
}
new_crtc_state =
@@ -465,9 +470,19 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
*/
if (drm_atomic_crtc_needs_modeset(new_crtc_state) &&
(old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED &&
- new_hdcp != DRM_MODE_CONTENT_PROTECTION_UNDESIRED))
+ new_hdcp != DRM_MODE_CONTENT_PROTECTION_UNDESIRED)) {
new_conn_state->content_protection =
DRM_MODE_CONTENT_PROTECTION_DESIRED;
+ return true;
+ }
+
+ /*
+ * Coming back from disable or changing CRTC with DESIRED state requires
+ * that the driver try CP enable.
+ */
+ if (new_hdcp == DRM_MODE_CONTENT_PROTECTION_DESIRED &&
+ new_conn_state->crtc != old_conn_state->crtc)
+ return true;
/*
* Nothing to do if content type is unchanged and one of:
@@ -482,9 +497,9 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
new_hdcp == DRM_MODE_CONTENT_PROTECTION_DESIRED)) {
if (old_conn_state->hdcp_content_type ==
new_conn_state->hdcp_content_type)
- return;
+ return false;
}
- new_crtc_state->mode_changed = true;
+ return true;
}
EXPORT_SYMBOL(drm_hdcp_atomic_check);
diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c
index 8a473199c4bf..a2067cbae2d5 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic.c
@@ -123,8 +123,6 @@ int intel_digital_connector_atomic_check(struct drm_connector *conn,
to_intel_digital_connector_state(old_state);
struct drm_crtc_state *crtc_state;
- drm_hdcp_atomic_check(conn, state);
-
if (!new_state->crtc)
return 0;
@@ -140,8 +138,8 @@ int intel_digital_connector_atomic_check(struct drm_connector *conn,
new_conn_state->base.picture_aspect_ratio != old_conn_state->base.picture_aspect_ratio ||
new_conn_state->base.content_type != old_conn_state->base.content_type ||
new_conn_state->base.scaling_mode != old_conn_state->base.scaling_mode ||
- new_conn_state->base.privacy_screen_sw_state != old_conn_state->base.privacy_screen_sw_state ||
- !drm_connector_atomic_hdr_metadata_equal(old_state, new_state))
+ !drm_connector_atomic_hdr_metadata_equal(old_state, new_state) ||
+ drm_hdcp_atomic_check(conn, state))
crtc_state->mode_changed = true;
return 0;
diff --git a/include/drm/display/drm_hdcp_helper.h b/include/drm/display/drm_hdcp_helper.h
index dd02b2e72a50..cb2cc5002f65 100644
--- a/include/drm/display/drm_hdcp_helper.h
+++ b/include/drm/display/drm_hdcp_helper.h
@@ -19,7 +19,7 @@ int drm_hdcp_check_ksvs_revoked(struct drm_device *dev, u8 *ksvs, u32 ksv_count)
int drm_connector_attach_content_protection_property(struct drm_connector *connector,
bool hdcp_content_type);
void drm_hdcp_update_content_protection(struct drm_connector *connector, u64 val);
-void drm_hdcp_atomic_check(struct drm_connector *connector,
+bool drm_hdcp_atomic_check(struct drm_connector *connector,
struct drm_atomic_state *state);
#endif
--
2.39.0.246.g2a6d74b583-goog
WARNING: multiple messages have this Message-ID (diff)
From: Mark Yacoub <markyacoub@chromium.org>
To: quic_khsieh@quicinc.com, linux-arm-msm@vger.kernel.org,
dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
intel-gfx@lists.freedesktop.org
Cc: robdclark@gmail.com, quic_abhinavk@quicinc.com,
dmitry.baryshkov@linaro.org, sean@poorly.run, airlied@gmail.com,
daniel@ffwll.ch, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, agross@kernel.org,
andersson@kernel.org, konrad.dybcio@somainline.org,
jani.nikula@linux.intel.com, joonas.lahtinen@linux.intel.com,
rodrigo.vivi@intel.com, tvrtko.ursulin@linux.intel.com,
markyacoub@chromium.org, tzimmermann@suse.de,
ville.syrjala@linux.intel.com, stanislav.lisovskiy@intel.com,
matthew.d.roper@intel.com, imre.deak@intel.com,
lucas.demarchi@intel.com, manasi.d.navare@intel.com,
swati2.sharma@intel.com, bhanuprakash.modem@intel.com,
javierm@redhat.com, jose.souza@intel.com, lyude@redhat.com,
hbh25y@gmail.com, arun.r.murthy@intel.com,
ashutosh.dixit@intel.com, ankit.k.nautiyal@intel.com,
maxime@cerno.tech, swboyd@chromium.org,
christophe.jaillet@wanadoo.fr, quic_sbillaka@quicinc.com,
johan+linaro@kernel.org, dianders@chromium.org, marex@denx.de,
quic_jesszhan@quicinc.com, bjorn.andersson@linaro.org,
abhinavk@codeaurora.org, seanpaul@chromium.org,
Jani Nikula <jani.nikula@intel.com>
Subject: [PATCH v6 02/10] drm/hdcp: Avoid changing crtc state in hdcp atomic check
Date: Wed, 18 Jan 2023 19:30:07 +0000 [thread overview]
Message-ID: <20230118193015.911074-3-markyacoub@google.com> (raw)
In-Reply-To: <20230118193015.911074-1-markyacoub@google.com>
From: Sean Paul <seanpaul@chromium.org>
Instead of forcing a modeset in the hdcp atomic check, simply return
true if the content protection value is changing and let the driver
decide whether a modeset is required or not.
Acked-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Mark Yacoub <markyacoub@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-3-sean@poorly.run #v1
Link: https://patchwork.freedesktop.org/patch/msgid/20210915203834.1439-3-sean@poorly.run #v2
Link: https://patchwork.freedesktop.org/patch/msgid/20211001151145.55916-3-sean@poorly.run #v3
Link: https://patchwork.freedesktop.org/patch/msgid/20211105030434.2828845-3-sean@poorly.run #v4
Link: https://patchwork.freedesktop.org/patch/msgid/20220411204741.1074308-3-sean@poorly.run #v5
Changes in v2:
-None
Changes in v3:
-None
Changes in v4:
-None
Changes in v5:
-None
Changes in V6:
-Rebase: modifications in drm_hdcp_helper.c instead of drm_hdcp.c
---
drivers/gpu/drm/display/drm_hdcp_helper.c | 33 +++++++++++++++------
drivers/gpu/drm/i915/display/intel_atomic.c | 6 ++--
include/drm/display/drm_hdcp_helper.h | 2 +-
3 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/display/drm_hdcp_helper.c b/drivers/gpu/drm/display/drm_hdcp_helper.c
index 7d910523b05f..a3896b0904b5 100644
--- a/drivers/gpu/drm/display/drm_hdcp_helper.c
+++ b/drivers/gpu/drm/display/drm_hdcp_helper.c
@@ -428,11 +428,14 @@ EXPORT_SYMBOL(drm_hdcp_update_content_protection);
* @connector: drm_connector on which content protection state needs an update
*
* This function can be used by display drivers to perform an atomic check on the
- * hdcp state elements. If hdcp state has changed, this function will set
- * mode_changed on the crtc driving the connector so it can update its hardware
- * to match the hdcp state.
+ * hdcp state elements. If hdcp state has changed in a manner which requires the
+ * driver to enable or disable content protection, this function will return
+ * true.
+ *
+ * Returns:
+ * true if the driver must enable/disable hdcp, false otherwise
*/
-void drm_hdcp_atomic_check(struct drm_connector *connector,
+bool drm_hdcp_atomic_check(struct drm_connector *connector,
struct drm_atomic_state *state)
{
struct drm_connector_state *new_conn_state, *old_conn_state;
@@ -450,10 +453,12 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
* If the connector is being disabled with CP enabled, mark it
* desired so it's re-enabled when the connector is brought back
*/
- if (old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED)
+ if (old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
new_conn_state->content_protection =
DRM_MODE_CONTENT_PROTECTION_DESIRED;
- return;
+ return true;
+ }
+ return false;
}
new_crtc_state =
@@ -465,9 +470,19 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
*/
if (drm_atomic_crtc_needs_modeset(new_crtc_state) &&
(old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED &&
- new_hdcp != DRM_MODE_CONTENT_PROTECTION_UNDESIRED))
+ new_hdcp != DRM_MODE_CONTENT_PROTECTION_UNDESIRED)) {
new_conn_state->content_protection =
DRM_MODE_CONTENT_PROTECTION_DESIRED;
+ return true;
+ }
+
+ /*
+ * Coming back from disable or changing CRTC with DESIRED state requires
+ * that the driver try CP enable.
+ */
+ if (new_hdcp == DRM_MODE_CONTENT_PROTECTION_DESIRED &&
+ new_conn_state->crtc != old_conn_state->crtc)
+ return true;
/*
* Nothing to do if content type is unchanged and one of:
@@ -482,9 +497,9 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
new_hdcp == DRM_MODE_CONTENT_PROTECTION_DESIRED)) {
if (old_conn_state->hdcp_content_type ==
new_conn_state->hdcp_content_type)
- return;
+ return false;
}
- new_crtc_state->mode_changed = true;
+ return true;
}
EXPORT_SYMBOL(drm_hdcp_atomic_check);
diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c
index 8a473199c4bf..a2067cbae2d5 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic.c
@@ -123,8 +123,6 @@ int intel_digital_connector_atomic_check(struct drm_connector *conn,
to_intel_digital_connector_state(old_state);
struct drm_crtc_state *crtc_state;
- drm_hdcp_atomic_check(conn, state);
-
if (!new_state->crtc)
return 0;
@@ -140,8 +138,8 @@ int intel_digital_connector_atomic_check(struct drm_connector *conn,
new_conn_state->base.picture_aspect_ratio != old_conn_state->base.picture_aspect_ratio ||
new_conn_state->base.content_type != old_conn_state->base.content_type ||
new_conn_state->base.scaling_mode != old_conn_state->base.scaling_mode ||
- new_conn_state->base.privacy_screen_sw_state != old_conn_state->base.privacy_screen_sw_state ||
- !drm_connector_atomic_hdr_metadata_equal(old_state, new_state))
+ !drm_connector_atomic_hdr_metadata_equal(old_state, new_state) ||
+ drm_hdcp_atomic_check(conn, state))
crtc_state->mode_changed = true;
return 0;
diff --git a/include/drm/display/drm_hdcp_helper.h b/include/drm/display/drm_hdcp_helper.h
index dd02b2e72a50..cb2cc5002f65 100644
--- a/include/drm/display/drm_hdcp_helper.h
+++ b/include/drm/display/drm_hdcp_helper.h
@@ -19,7 +19,7 @@ int drm_hdcp_check_ksvs_revoked(struct drm_device *dev, u8 *ksvs, u32 ksv_count)
int drm_connector_attach_content_protection_property(struct drm_connector *connector,
bool hdcp_content_type);
void drm_hdcp_update_content_protection(struct drm_connector *connector, u64 val);
-void drm_hdcp_atomic_check(struct drm_connector *connector,
+bool drm_hdcp_atomic_check(struct drm_connector *connector,
struct drm_atomic_state *state);
#endif
--
2.39.0.246.g2a6d74b583-goog
WARNING: multiple messages have this Message-ID (diff)
From: Mark Yacoub <markyacoub@chromium.org>
To: quic_khsieh@quicinc.com, linux-arm-msm@vger.kernel.org,
dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
intel-gfx@lists.freedesktop.org
Cc: quic_sbillaka@quicinc.com, konrad.dybcio@somainline.org,
jose.souza@intel.com, bjorn.andersson@linaro.org,
krzysztof.kozlowski+dt@linaro.org, hbh25y@gmail.com,
marex@denx.de, ashutosh.dixit@intel.com, sean@poorly.run,
abhinavk@codeaurora.org, javierm@redhat.com,
arun.r.murthy@intel.com, stanislav.lisovskiy@intel.com,
agross@kernel.org, quic_jesszhan@quicinc.com,
ankit.k.nautiyal@intel.com, Jani Nikula <jani.nikula@intel.com>,
lucas.demarchi@intel.com, quic_abhinavk@quicinc.com,
swboyd@chromium.org, robh+dt@kernel.org,
christophe.jaillet@wanadoo.fr, maxime@cerno.tech,
rodrigo.vivi@intel.com, johan+linaro@kernel.org,
tvrtko.ursulin@linux.intel.com, markyacoub@chromium.org,
andersson@kernel.org, dianders@chromium.org,
swati2.sharma@intel.com, manasi.d.navare@intel.com,
tzimmermann@suse.de, bhanuprakash.modem@intel.com,
dmitry.baryshkov@linaro.org, seanpaul@chromium.org
Subject: [PATCH v6 02/10] drm/hdcp: Avoid changing crtc state in hdcp atomic check
Date: Wed, 18 Jan 2023 19:30:07 +0000 [thread overview]
Message-ID: <20230118193015.911074-3-markyacoub@google.com> (raw)
In-Reply-To: <20230118193015.911074-1-markyacoub@google.com>
From: Sean Paul <seanpaul@chromium.org>
Instead of forcing a modeset in the hdcp atomic check, simply return
true if the content protection value is changing and let the driver
decide whether a modeset is required or not.
Acked-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Mark Yacoub <markyacoub@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210913175747.47456-3-sean@poorly.run #v1
Link: https://patchwork.freedesktop.org/patch/msgid/20210915203834.1439-3-sean@poorly.run #v2
Link: https://patchwork.freedesktop.org/patch/msgid/20211001151145.55916-3-sean@poorly.run #v3
Link: https://patchwork.freedesktop.org/patch/msgid/20211105030434.2828845-3-sean@poorly.run #v4
Link: https://patchwork.freedesktop.org/patch/msgid/20220411204741.1074308-3-sean@poorly.run #v5
Changes in v2:
-None
Changes in v3:
-None
Changes in v4:
-None
Changes in v5:
-None
Changes in V6:
-Rebase: modifications in drm_hdcp_helper.c instead of drm_hdcp.c
---
drivers/gpu/drm/display/drm_hdcp_helper.c | 33 +++++++++++++++------
drivers/gpu/drm/i915/display/intel_atomic.c | 6 ++--
include/drm/display/drm_hdcp_helper.h | 2 +-
3 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/display/drm_hdcp_helper.c b/drivers/gpu/drm/display/drm_hdcp_helper.c
index 7d910523b05f..a3896b0904b5 100644
--- a/drivers/gpu/drm/display/drm_hdcp_helper.c
+++ b/drivers/gpu/drm/display/drm_hdcp_helper.c
@@ -428,11 +428,14 @@ EXPORT_SYMBOL(drm_hdcp_update_content_protection);
* @connector: drm_connector on which content protection state needs an update
*
* This function can be used by display drivers to perform an atomic check on the
- * hdcp state elements. If hdcp state has changed, this function will set
- * mode_changed on the crtc driving the connector so it can update its hardware
- * to match the hdcp state.
+ * hdcp state elements. If hdcp state has changed in a manner which requires the
+ * driver to enable or disable content protection, this function will return
+ * true.
+ *
+ * Returns:
+ * true if the driver must enable/disable hdcp, false otherwise
*/
-void drm_hdcp_atomic_check(struct drm_connector *connector,
+bool drm_hdcp_atomic_check(struct drm_connector *connector,
struct drm_atomic_state *state)
{
struct drm_connector_state *new_conn_state, *old_conn_state;
@@ -450,10 +453,12 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
* If the connector is being disabled with CP enabled, mark it
* desired so it's re-enabled when the connector is brought back
*/
- if (old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED)
+ if (old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
new_conn_state->content_protection =
DRM_MODE_CONTENT_PROTECTION_DESIRED;
- return;
+ return true;
+ }
+ return false;
}
new_crtc_state =
@@ -465,9 +470,19 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
*/
if (drm_atomic_crtc_needs_modeset(new_crtc_state) &&
(old_hdcp == DRM_MODE_CONTENT_PROTECTION_ENABLED &&
- new_hdcp != DRM_MODE_CONTENT_PROTECTION_UNDESIRED))
+ new_hdcp != DRM_MODE_CONTENT_PROTECTION_UNDESIRED)) {
new_conn_state->content_protection =
DRM_MODE_CONTENT_PROTECTION_DESIRED;
+ return true;
+ }
+
+ /*
+ * Coming back from disable or changing CRTC with DESIRED state requires
+ * that the driver try CP enable.
+ */
+ if (new_hdcp == DRM_MODE_CONTENT_PROTECTION_DESIRED &&
+ new_conn_state->crtc != old_conn_state->crtc)
+ return true;
/*
* Nothing to do if content type is unchanged and one of:
@@ -482,9 +497,9 @@ void drm_hdcp_atomic_check(struct drm_connector *connector,
new_hdcp == DRM_MODE_CONTENT_PROTECTION_DESIRED)) {
if (old_conn_state->hdcp_content_type ==
new_conn_state->hdcp_content_type)
- return;
+ return false;
}
- new_crtc_state->mode_changed = true;
+ return true;
}
EXPORT_SYMBOL(drm_hdcp_atomic_check);
diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c
index 8a473199c4bf..a2067cbae2d5 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic.c
@@ -123,8 +123,6 @@ int intel_digital_connector_atomic_check(struct drm_connector *conn,
to_intel_digital_connector_state(old_state);
struct drm_crtc_state *crtc_state;
- drm_hdcp_atomic_check(conn, state);
-
if (!new_state->crtc)
return 0;
@@ -140,8 +138,8 @@ int intel_digital_connector_atomic_check(struct drm_connector *conn,
new_conn_state->base.picture_aspect_ratio != old_conn_state->base.picture_aspect_ratio ||
new_conn_state->base.content_type != old_conn_state->base.content_type ||
new_conn_state->base.scaling_mode != old_conn_state->base.scaling_mode ||
- new_conn_state->base.privacy_screen_sw_state != old_conn_state->base.privacy_screen_sw_state ||
- !drm_connector_atomic_hdr_metadata_equal(old_state, new_state))
+ !drm_connector_atomic_hdr_metadata_equal(old_state, new_state) ||
+ drm_hdcp_atomic_check(conn, state))
crtc_state->mode_changed = true;
return 0;
diff --git a/include/drm/display/drm_hdcp_helper.h b/include/drm/display/drm_hdcp_helper.h
index dd02b2e72a50..cb2cc5002f65 100644
--- a/include/drm/display/drm_hdcp_helper.h
+++ b/include/drm/display/drm_hdcp_helper.h
@@ -19,7 +19,7 @@ int drm_hdcp_check_ksvs_revoked(struct drm_device *dev, u8 *ksvs, u32 ksv_count)
int drm_connector_attach_content_protection_property(struct drm_connector *connector,
bool hdcp_content_type);
void drm_hdcp_update_content_protection(struct drm_connector *connector, u64 val);
-void drm_hdcp_atomic_check(struct drm_connector *connector,
+bool drm_hdcp_atomic_check(struct drm_connector *connector,
struct drm_atomic_state *state);
#endif
--
2.39.0.246.g2a6d74b583-goog
next prev parent reply other threads:[~2023-01-18 19:30 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-18 19:30 [Intel-gfx] [PATCH v6 00/10] drm/hdcp: Pull HDCP auth/exchange/check into helpers Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 01/10] drm/hdcp: Add drm_hdcp_atomic_check() Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-19 10:37 ` Krzysztof Kozlowski
2023-01-19 10:37 ` Krzysztof Kozlowski
2023-01-20 15:32 ` [Intel-gfx] " Sean Paul
2023-01-20 15:32 ` Sean Paul
2023-01-20 15:32 ` Sean Paul
2023-01-20 20:33 ` [Intel-gfx] " Dmitry Baryshkov
2023-01-20 20:33 ` Dmitry Baryshkov
2023-01-20 20:33 ` Dmitry Baryshkov
2023-01-19 11:41 ` [Intel-gfx] " Dmitry Baryshkov
2023-01-19 11:41 ` Dmitry Baryshkov
2023-01-19 11:41 ` Dmitry Baryshkov
2023-03-10 5:30 ` [Intel-gfx] " Kandpal, Suraj
2023-03-10 5:30 ` Kandpal, Suraj
2023-03-10 5:30 ` Kandpal, Suraj
2023-01-18 19:30 ` Mark Yacoub [this message]
2023-01-18 19:30 ` [PATCH v6 02/10] drm/hdcp: Avoid changing crtc state in hdcp atomic check Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-19 11:45 ` [Intel-gfx] " Dmitry Baryshkov
2023-01-19 11:45 ` Dmitry Baryshkov
2023-01-19 11:45 ` Dmitry Baryshkov
2023-03-10 6:00 ` [Intel-gfx] " Kandpal, Suraj
2023-03-10 6:00 ` Kandpal, Suraj
2023-03-10 6:00 ` Kandpal, Suraj
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 03/10] drm/hdcp: Update property value on content type and user changes Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 04/10] drm/hdcp: Expand HDCP helper library for enable/disable/check Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-19 12:54 ` [Intel-gfx] " Dmitry Baryshkov
2023-01-19 12:54 ` Dmitry Baryshkov
2023-01-19 12:54 ` Dmitry Baryshkov
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 05/10] drm/i915/hdcp: Consolidate HDCP setup/state cache Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 06/10] drm/i915/hdcp: Retain hdcp_capable return codes Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-03-10 8:25 ` [Intel-gfx] " Kandpal, Suraj
2023-03-10 8:25 ` Kandpal, Suraj
2023-03-10 8:25 ` Kandpal, Suraj
2023-03-23 7:17 ` [Intel-gfx] " Kandpal, Suraj
2023-03-23 7:17 ` Kandpal, Suraj
2023-03-23 7:17 ` Kandpal, Suraj
2023-03-24 19:27 ` [Intel-gfx] " Mark Yacoub
2023-03-24 19:27 ` Mark Yacoub
2023-03-24 19:27 ` Mark Yacoub
2023-03-28 5:52 ` [Intel-gfx] " Kandpal, Suraj
2023-03-28 5:52 ` Kandpal, Suraj
2023-03-28 5:52 ` Kandpal, Suraj
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 07/10] drm/i915/hdcp: Use HDCP helpers for i915 Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-31 17:16 ` [Intel-gfx] " Rodrigo Vivi
2023-01-31 17:16 ` Rodrigo Vivi
2023-01-31 17:16 ` Rodrigo Vivi
2023-01-31 17:23 ` Rodrigo Vivi
2023-01-31 17:23 ` Rodrigo Vivi
2023-01-31 17:23 ` Rodrigo Vivi
2023-03-14 5:54 ` Kandpal, Suraj
2023-03-14 5:54 ` Kandpal, Suraj
2023-03-14 5:54 ` Kandpal, Suraj
2023-03-24 19:34 ` Mark Yacoub
2023-03-24 19:34 ` Mark Yacoub
2023-03-24 19:34 ` Mark Yacoub
2023-03-28 6:12 ` Kandpal, Suraj
2023-03-28 6:12 ` Kandpal, Suraj
2023-03-28 6:12 ` Kandpal, Suraj
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 08/10] dt-bindings: msm/dp: Add bindings for HDCP registers Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-19 1:16 ` [Intel-gfx] " Rob Herring
2023-01-19 1:16 ` Rob Herring
2023-01-19 1:16 ` Rob Herring
2023-01-19 7:48 ` [Intel-gfx] " Johan Hovold
2023-01-19 7:48 ` Johan Hovold
2023-01-19 7:48 ` Johan Hovold
2023-01-19 8:36 ` [Intel-gfx] " Dmitry Baryshkov
2023-01-19 8:36 ` Dmitry Baryshkov
2023-01-19 8:36 ` Dmitry Baryshkov
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 09/10] arm64: dts: qcom: sc7180: Add support for HDCP in dp-controller Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-19 1:32 ` [Intel-gfx] " Abhinav Kumar
2023-01-19 1:32 ` Abhinav Kumar
2023-01-19 1:32 ` Abhinav Kumar
2023-01-19 8:40 ` [Intel-gfx] " Dmitry Baryshkov
2023-01-19 8:40 ` Dmitry Baryshkov
2023-01-19 8:40 ` Dmitry Baryshkov
2023-01-19 10:35 ` Krzysztof Kozlowski
2023-01-19 10:35 ` Krzysztof Kozlowski
2023-01-20 15:54 ` [Intel-gfx] " Sean Paul
2023-01-20 15:54 ` Sean Paul
2023-01-20 15:54 ` Sean Paul
2023-01-21 10:16 ` [Intel-gfx] " Dmitry Baryshkov
2023-01-21 10:16 ` Dmitry Baryshkov
2023-01-21 10:16 ` Dmitry Baryshkov
2023-01-21 19:06 ` Krzysztof Kozlowski
2023-01-21 19:06 ` Krzysztof Kozlowski
2023-01-18 19:30 ` [Intel-gfx] [PATCH v6 10/10] drm/msm: Implement HDCP 1.x using the new drm HDCP helpers Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-18 19:30 ` Mark Yacoub
2023-01-19 11:35 ` [Intel-gfx] " Dmitry Baryshkov
2023-01-19 11:35 ` Dmitry Baryshkov
2023-01-19 11:35 ` Dmitry Baryshkov
2023-01-19 0:57 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/hdcp: Pull HDCP auth/exchange/check into helpers (rev6) 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=20230118193015.911074-3-markyacoub@google.com \
--to=markyacoub@chromium.org \
--cc=abhinavk@codeaurora.org \
--cc=agross@kernel.org \
--cc=airlied@gmail.com \
--cc=andersson@kernel.org \
--cc=bjorn.andersson@linaro.org \
--cc=christophe.jaillet@wanadoo.fr \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=hbh25y@gmail.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=javierm@redhat.com \
--cc=johan+linaro@kernel.org \
--cc=konrad.dybcio@somainline.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lucas.demarchi@intel.com \
--cc=marex@denx.de \
--cc=maxime@cerno.tech \
--cc=quic_abhinavk@quicinc.com \
--cc=quic_jesszhan@quicinc.com \
--cc=quic_khsieh@quicinc.com \
--cc=quic_sbillaka@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=rodrigo.vivi@intel.com \
--cc=seanpaul@chromium.org \
--cc=swboyd@chromium.org \
--cc=tzimmermann@suse.de \
/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.