diff options
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-.patch | 61 |
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 + |