summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/display/dmub/src
diff options
context:
space:
mode:
authorAlvin Lee <alvin.lee2@amd.com>2020-09-26 12:46:34 -0400
committerAlex Deucher <alexander.deucher@amd.com>2020-10-05 15:17:32 -0400
commit9485af4e4d88806d27c0ceaab1e7c56619a6f7bd (patch)
tree74218c2aa047faa055f871fcac3ba389f19f112a /drivers/gpu/drm/amd/display/dmub/src
parent480c5b8ff8757405e07ba938f5c565ecdf38d981 (diff)
downloadlinux-9485af4e4d88806d27c0ceaab1e7c56619a6f7bd.tar.gz
linux-9485af4e4d88806d27c0ceaab1e7c56619a6f7bd.tar.bz2
linux-9485af4e4d88806d27c0ceaab1e7c56619a6f7bd.zip
drm/amd/display: Only flush inst_fb if backdoor loading
[Why] DAL resume from BACO time is longer if we always flush inst_fb [How] Check if backdoor loading to flush inst_fb Signed-off-by: Alvin Lee <alvin.lee2@amd.com> Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> Acked-by: Eryk Brol <eryk.brol@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dmub/src')
-rw-r--r--drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c b/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
index 8ba7ecd29665..f50d26a318d4 100644
--- a/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
+++ b/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
@@ -418,15 +418,16 @@ enum dmub_status dmub_srv_hw_init(struct dmub_srv *dmub,
cw1.region.base = DMUB_CW1_BASE;
cw1.region.top = cw1.region.base + stack_fb->size - 1;
- /**
- * Read back all the instruction memory so we don't hang the
- * DMCUB when backdoor loading if the write from x86 hasn't been
- * flushed yet. This only occurs in backdoor loading.
- */
- dmub_flush_buffer_mem(inst_fb);
+ if (params->load_inst_const && dmub->hw_funcs.backdoor_load) {
+ /**
+ * Read back all the instruction memory so we don't hang the
+ * DMCUB when backdoor loading if the write from x86 hasn't been
+ * flushed yet. This only occurs in backdoor loading.
+ */
+ dmub_flush_buffer_mem(inst_fb);
+ dmub->hw_funcs.backdoor_load(dmub, &cw0, &cw1);
+ }
- if (params->load_inst_const && dmub->hw_funcs.backdoor_load)
- dmub->hw_funcs.backdoor_load(dmub, &cw0, &cw1);
}
if (dmub->hw_funcs.reset)