summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
diff options
context:
space:
mode:
authorJoshua Aberback <joshua.aberback@amd.com>2020-09-23 15:12:39 -0400
committerAlex Deucher <alexander.deucher@amd.com>2020-10-05 15:16:36 -0400
commit7c4ed1df0a59541b0c40c468df52217c2e03c210 (patch)
treeed39391f1c090ec938d590511ce6ceb9e0efca14 /drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
parent3e19095534caec6be8f8c1a7d8fd4879e23637ed (diff)
downloadlwn-7c4ed1df0a59541b0c40c468df52217c2e03c210.tar.gz
lwn-7c4ed1df0a59541b0c40c468df52217c2e03c210.zip
drm/amd/display: Copy WM values from set A to other sets in hw_init
[Why] When we transfer the WM range table to SMU, they can perform a watermark switch right away. This can be a problem if we're in not in accelerated mode during hw_init as SMU may initiate a dummy p-state change before the rest of the watermarks are programmed. Watermark set A is defined to be sufficient for all cases, so we can copy the values from set A to all other sets, avoiding any issues from SMU doing WM switches. [How] - new hubbub func init_watermarks - copy register values from set A to all other sets - call init_watermarks before calling notify_wm_ranges Signed-off-by: Joshua Aberback <joshua.aberback@amd.com> Reviewed-by: Jun Lei <Jun.Lei@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/dc/inc/hw/dchubbub.h')
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
index 371da657c8a4..bf4d6190dd00 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
@@ -155,6 +155,8 @@ struct hubbub_funcs {
#if defined(CONFIG_DRM_AMD_DC_DCN3_0)
void (*force_pstate_change_control)(struct hubbub *hubbub, bool force, bool allow);
+
+ void (*init_watermarks)(struct hubbub *hubbub);
#endif
};