diff options
author | Alvin Lee <alvin.lee2@amd.com> | 2020-09-26 12:46:34 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2020-10-05 15:17:32 -0400 |
commit | 9485af4e4d88806d27c0ceaab1e7c56619a6f7bd (patch) | |
tree | 74218c2aa047faa055f871fcac3ba389f19f112a /drivers/gpu/drm/amd/display/dmub/src | |
parent | 480c5b8ff8757405e07ba938f5c565ecdf38d981 (diff) | |
download | linux-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.c | 17 |
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) |