summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorWyatt Wood <wyatt.wood@amd.com>2021-03-22 14:02:56 -0400
committerAlex Deucher <alexander.deucher@amd.com>2021-04-09 16:51:29 -0400
commit6bdb2e3821616329125fea108c48fe5fe54aaafc (patch)
tree9a32622d11a0cd447d0e0aa303faf95e9a00f11d /drivers/gpu/drm/amd
parent04f3c88f09554714f25caa01d1a8ba999fc487bb (diff)
downloadlinux-6bdb2e3821616329125fea108c48fe5fe54aaafc.tar.gz
linux-6bdb2e3821616329125fea108c48fe5fe54aaafc.tar.bz2
linux-6bdb2e3821616329125fea108c48fe5fe54aaafc.zip
drm/amd/display: Add delay in dmub_srv_send_gpint_command
[Why] Today a parameter is passed to dmub_srv_send_gpint_command which specifies the max amount of time to wait for the command to be acked. This parameter instead specifies the number of times to check if the command was acked. We wish to add a lower bound to the timeout, which can be accomplished by using a delay or a timestamp. It has been decided to use udelay instead of a timestamp simply because we don't want to expose a high precision counter if it doesn't yield large benefits. [How] Add udelay(1) between each for loop iteration. Signed-off-by: Wyatt Wood <wyatt.wood@amd.com> Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c2
1 files changed, 2 insertions, 0 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 e36e89157703..1cbb125b4063 100644
--- a/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
+++ b/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
@@ -647,6 +647,8 @@ dmub_srv_send_gpint_command(struct dmub_srv *dmub,
dmub->hw_funcs.set_gpint(dmub, reg);
for (i = 0; i < timeout_us; ++i) {
+ udelay(1);
+
if (dmub->hw_funcs.is_gpint_acked(dmub, reg))
return DMUB_STATUS_OK;
}