aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3483-drm-amd-display-Use-connector-list-for-finding-DPRX-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3483-drm-amd-display-Use-connector-list-for-finding-DPRX-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3483-drm-amd-display-Use-connector-list-for-finding-DPRX-.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3483-drm-amd-display-Use-connector-list-for-finding-DPRX-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3483-drm-amd-display-Use-connector-list-for-finding-DPRX-.patch
new file mode 100644
index 00000000..c1757bc7
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3483-drm-amd-display-Use-connector-list-for-finding-DPRX-.patch
@@ -0,0 +1,61 @@
+From 30cb2f6c583651634c6a7a44c9c0d83f821c7577 Mon Sep 17 00:00:00 2001
+From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Date: Tue, 20 Aug 2019 10:10:08 -0400
+Subject: [PATCH 3483/4256] drm/amd/display: Use connector list for finding
+ DPRX CRC aux
+
+[Why]
+This change is a refactor in preparation for adding locking and removing
+the requirement for a stream state on the CRTC for enabling CRC capture
+to fix igt@kms_plane_multiple@* warnings.
+
+[How]
+We can get the aux by finding the matching connector for the CRTC
+with the assumption that we're not doing cloning.
+
+Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Reviewed-by: David Francis <David.Francis@amd.com>
+---
+ .../drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c | 19 +++++++++++++++----
+ 1 file changed, 15 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
+index 54c754524d68..422d9ac3b83d 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
+@@ -102,7 +102,6 @@ int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name)
+ struct amdgpu_device *adev = crtc->dev->dev_private;
+ struct dm_crtc_state *crtc_state = to_dm_crtc_state(crtc->state);
+ struct dc_stream_state *stream_state = crtc_state->stream;
+- struct amdgpu_dm_connector *aconn;
+ struct drm_dp_aux *aux = NULL;
+ bool enable = false;
+ bool enabled = false;
+@@ -139,9 +138,21 @@ int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name)
+ * DPRX DITHER | XXXX | Enable DPRX CRC, need 'aux', set dither
+ */
+ if (dm_is_crc_source_dprx(source) ||
+- (source == AMDGPU_DM_PIPE_CRC_SOURCE_NONE &&
+- dm_is_crc_source_dprx(crtc_state->crc_src))) {
+- aconn = stream_state->link->priv;
++ (source == AMDGPU_DM_PIPE_CRC_SOURCE_NONE &&
++ dm_is_crc_source_dprx(crtc_state->crc_src))) {
++ struct amdgpu_dm_connector *aconn = NULL;
++ struct drm_connector *connector;
++ struct drm_connector_list_iter conn_iter;
++
++ drm_connector_list_iter_begin(crtc->dev, &conn_iter);
++ drm_for_each_connector_iter(connector, &conn_iter) {
++ if (!connector->state || connector->state->crtc != crtc)
++ continue;
++
++ aconn = to_amdgpu_dm_connector(connector);
++ break;
++ }
++ drm_connector_list_iter_end(&conn_iter);
+
+ if (!aconn) {
+ DRM_DEBUG_DRIVER("No amd connector matching CRTC-%d\n", crtc->index);
+--
+2.17.1
+