aboutsummaryrefslogtreecommitdiffstats
path: root/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5014-drm-amd-display-Prevent-PSR-from-being-enabled-if-in.patch
diff options
context:
space:
mode:
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.patch124
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
-