diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0709-drm-amd-dal-Add-PreModeChange-event-to-PPLIB.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0709-drm-amd-dal-Add-PreModeChange-event-to-PPLIB.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/common/recipes-kernel/linux/files/0709-drm-amd-dal-Add-PreModeChange-event-to-PPLIB.patch b/common/recipes-kernel/linux/files/0709-drm-amd-dal-Add-PreModeChange-event-to-PPLIB.patch deleted file mode 100644 index 8cbf3b98..00000000 --- a/common/recipes-kernel/linux/files/0709-drm-amd-dal-Add-PreModeChange-event-to-PPLIB.patch +++ /dev/null @@ -1,116 +0,0 @@ -From c3eeb9ac6864b945dcb60a84847d1afe9ef59776 Mon Sep 17 00:00:00 2001 -From: Anthony Koo <Anthony.Koo@amd.com> -Date: Thu, 14 Jan 2016 14:49:08 -0500 -Subject: [PATCH 0709/1110] drm/amd/dal: Add PreModeChange event to PPLIB - -[Description] -Before this change, we only send PostModeChange event. -What happens is that PPLIB does not know we are changing -display configuration beforehand. By the time we send Post -event, it is already too late, and this may cause soft hang -waiting on SMU to transition power states. - -This issues was found specifically during S3 resume tests, -when we commit 0 targets while entering S3 state. On -resume, we re-enable the display without first telling PPLIB. - -This change adds a PreModeChange notification at the start -of dc_commit_targets. - -Signed-off-by: Anthony Koo <Anthony.Koo@amd.com> -Acked-by: Harry Wentland <harry.wentland@amd.com> ---- - drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dal_services.c | 16 ++++++++++++++++ - drivers/gpu/drm/amd/dal/dc/core/dc.c | 2 ++ - drivers/gpu/drm/amd/dal/dc/core/dc_resource.c | 6 ++++++ - drivers/gpu/drm/amd/dal/dc/dc_services.h | 3 +++ - drivers/gpu/drm/amd/dal/dc/inc/resource.h | 2 ++ - 5 files changed, 29 insertions(+) - -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dal_services.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dal_services.c -index 12b9475..b67599d 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dal_services.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dal_services.c -@@ -157,6 +157,22 @@ bool dc_service_pp_pre_dce_clock_change( - return false; - } - -+bool dc_service_pp_apply_safe_state( -+ const struct dc_context *ctx) -+{ -+#ifdef CONFIG_DRM_AMD_POWERPLAY -+ struct amdgpu_device *adev = ctx->driver_context; -+ -+ if (adev->pm.dpm_enabled) { -+ /* TODO: Does this require PreModeChange event to PPLIB? */ -+ } -+ -+ return true; -+#else -+ return false; -+#endif -+} -+ - bool dc_service_pp_apply_display_requirements( - const struct dc_context *ctx, - const struct dc_pp_display_configuration *pp_display_cfg) -diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c b/drivers/gpu/drm/amd/dal/dc/core/dc.c -index e49ec86..b68ecb7 100644 ---- a/drivers/gpu/drm/amd/dal/dc/core/dc.c -+++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c -@@ -549,6 +549,8 @@ bool dc_commit_targets( - goto fail; - } - -+ pplib_apply_safe_state(dc); -+ - if (!dal_adapter_service_is_in_accelerated_mode( - dc->res_pool.adapter_srv)) { - dc->hwss.enable_accelerated_mode(dc); -diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_resource.c b/drivers/gpu/drm/amd/dal/dc/core/dc_resource.c -index 52fcdc1..7cc4ed2 100644 ---- a/drivers/gpu/drm/amd/dal/dc/core/dc_resource.c -+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_resource.c -@@ -485,6 +485,12 @@ static void fill_display_configs( - pp_display_cfg->display_count = num_cfgs; - } - -+void pplib_apply_safe_state( -+ const struct dc *dc) -+{ -+ dc_service_pp_apply_safe_state(dc->ctx); -+} -+ - void pplib_apply_display_requirements( - const struct dc *dc, - const struct validate_context *context) -diff --git a/drivers/gpu/drm/amd/dal/dc/dc_services.h b/drivers/gpu/drm/amd/dal/dc/dc_services.h -index 907b415..b8b8b20 100644 ---- a/drivers/gpu/drm/amd/dal/dc/dc_services.h -+++ b/drivers/gpu/drm/amd/dal/dc/dc_services.h -@@ -201,6 +201,9 @@ bool dc_service_pp_get_clock_levels_by_type( - struct dc_pp_clock_levels *clk_level_info); - - -+bool dc_service_pp_apply_safe_state( -+ const struct dc_context *ctx); -+ - /* DAL calls this function to notify PP about completion of Mode Set. - * For PP it means that current DCE clocks are those which were returned - * by dc_service_pp_pre_dce_clock_change(), in the 'output' parameter. -diff --git a/drivers/gpu/drm/amd/dal/dc/inc/resource.h b/drivers/gpu/drm/amd/dal/dc/inc/resource.h -index fac4c8b..ea6be75 100644 ---- a/drivers/gpu/drm/amd/dal/dc/inc/resource.h -+++ b/drivers/gpu/drm/amd/dal/dc/inc/resource.h -@@ -61,6 +61,8 @@ bool logical_attach_surfaces_to_target( - uint8_t surface_count, - struct dc_target *dc_target); - -+void pplib_apply_safe_state(const struct dc *dc); -+ - void pplib_apply_display_requirements( - const struct dc *dc, - const struct validate_context *context); --- -2.7.4 - |