diff options
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5014-drm-amd-display-Prevent-PSR-from-being-enabled-if-in.patch')
-rw-r--r-- | meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5014-drm-amd-display-Prevent-PSR-from-being-enabled-if-in.patch | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5014-drm-amd-display-Prevent-PSR-from-being-enabled-if-in.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5014-drm-amd-display-Prevent-PSR-from-being-enabled-if-in.patch deleted file mode 100644 index 868a5f56..00000000 --- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5014-drm-amd-display-Prevent-PSR-from-being-enabled-if-in.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 8758419d5f7103cc56263e2cc8675f5e18060aeb Mon Sep 17 00:00:00 2001 -From: Anthony Koo <Anthony.Koo@amd.com> -Date: Tue, 17 Jul 2018 09:43:44 -0400 -Subject: [PATCH 5014/5725] drm/amd/display: Prevent PSR from being enabled if - initialization fails - -[Why] -PSR_SET command is sent to the microcontroller in order to initialize -parameters needed for PSR feature, such as telling the microcontroller -which pipe is driving the PSR supported panel. When this command is -skipped or fails, the microcontroller may program the wrong thing if -driver tries to enable PSR. - -[How] -If PSR_SET fails, do not set psr_enable flag to indicate the feature is -not yet initialized. - -Signed-off-by: Anthony Koo <Anthony.Koo@amd.com> -Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> -Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c | 38 ++++++++++++++++----------- - drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h | 2 +- - 2 files changed, 24 insertions(+), 16 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c b/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c -index 062a465..ca7989e 100644 ---- a/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c -+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c -@@ -150,7 +150,7 @@ static void dce_dmcu_set_psr_enable(struct dmcu *dmcu, bool enable, bool wait) - } - } - --static void dce_dmcu_setup_psr(struct dmcu *dmcu, -+static bool dce_dmcu_setup_psr(struct dmcu *dmcu, - struct dc_link *link, - struct psr_context *psr_context) - { -@@ -261,6 +261,8 @@ static void dce_dmcu_setup_psr(struct dmcu *dmcu, - - /* notifyDMCUMsg */ - REG_UPDATE(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 1); -+ -+ return true; - } - - static bool dce_is_dmcu_initialized(struct dmcu *dmcu) -@@ -545,24 +547,25 @@ static void dcn10_dmcu_set_psr_enable(struct dmcu *dmcu, bool enable, bool wait) - * least a few frames. Should never hit the max retry assert below. - */ - if (wait == true) { -- for (retryCount = 0; retryCount <= 1000; retryCount++) { -- dcn10_get_dmcu_psr_state(dmcu, &psr_state); -- if (enable) { -- if (psr_state != 0) -- break; -- } else { -- if (psr_state == 0) -- break; -+ for (retryCount = 0; retryCount <= 1000; retryCount++) { -+ dcn10_get_dmcu_psr_state(dmcu, &psr_state); -+ if (enable) { -+ if (psr_state != 0) -+ break; -+ } else { -+ if (psr_state == 0) -+ break; -+ } -+ udelay(500); - } -- udelay(500); -- } - -- /* assert if max retry hit */ -- ASSERT(retryCount <= 1000); -+ /* assert if max retry hit */ -+ if (retryCount >= 1000) -+ ASSERT(0); - } - } - --static void dcn10_dmcu_setup_psr(struct dmcu *dmcu, -+static bool dcn10_dmcu_setup_psr(struct dmcu *dmcu, - struct dc_link *link, - struct psr_context *psr_context) - { -@@ -577,7 +580,7 @@ static void dcn10_dmcu_setup_psr(struct dmcu *dmcu, - - /* If microcontroller is not running, do nothing */ - if (dmcu->dmcu_state != DMCU_RUNNING) -- return; -+ return false; - - link->link_enc->funcs->psr_program_dp_dphy_fast_training(link->link_enc, - psr_context->psrExitLinkTrainingRequired); -@@ -677,6 +680,11 @@ static void dcn10_dmcu_setup_psr(struct dmcu *dmcu, - - /* notifyDMCUMsg */ - REG_UPDATE(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 1); -+ -+ /* waitDMCUReadyForCmd */ -+ REG_WAIT(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 0, 1, 10000); -+ -+ return true; - } - - static void dcn10_psr_wait_loop( -diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h -index de60f94..4550747 100644 ---- a/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h -+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h -@@ -48,7 +48,7 @@ struct dmcu_funcs { - const char *src, - unsigned int bytes); - void (*set_psr_enable)(struct dmcu *dmcu, bool enable, bool wait); -- void (*setup_psr)(struct dmcu *dmcu, -+ bool (*setup_psr)(struct dmcu *dmcu, - struct dc_link *link, - struct psr_context *psr_context); - void (*get_psr_state)(struct dmcu *dmcu, uint32_t *psr_state); --- -2.7.4 - |