[PATCH] drm/bridge: analogix_dp: Make PSR-disable non-blocking
Brian Norris
briannorris at chromium.org
Wed Oct 20 23:17:28 UTC 2021
Prior to commit 6c836d965bad ("drm/rockchip: Use the helpers for PSR"),
"PSR disable" used non-blocking analogix_dp_send_psr_spd(). The refactor
accidentally (?) set blocking=true.
This can cause upwards of 60-100ms of unneeded latency when exiting
self-refresh, which can cause very noticeable lag when, say, moving a
cursor.
Presumbaly it's OK to let the display finish exiting refresh in parallel
with clocking out the next video frames, so we shouldn't hold up the
atomic_enable() step. This also brings behavior in line with the
downstream ("mainline-derived") variant of the driver currently deployed
to Chrome OS Rockchip systems.
Tested on a Samsung Chromebook Plus (i.e., Rockchip RK3399 Gru Kevin).
Fixes: 6c836d965bad ("drm/rockchip: Use the helpers for PSR")
Cc: <stable at vger.kernel.org>
Cc: Zain Wang <wzz at rock-chips.com>
Cc: Tomasz Figa <tfiga at chromium.org>
Cc: Heiko Stuebner <heiko at sntech.de>
Cc: Sean Paul <seanpaul at chromium.org>
Signed-off-by: Brian Norris <briannorris at chromium.org>
---
CC list is partially constructed from the commit message of the Fixed
commit
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index b7d2e4449cfa..fbe6eb9df310 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1055,7 +1055,7 @@ static int analogix_dp_disable_psr(struct analogix_dp_device *dp)
psr_vsc.db[0] = 0;
psr_vsc.db[1] = 0;
- return analogix_dp_send_psr_spd(dp, &psr_vsc, true);
+ return analogix_dp_send_psr_spd(dp, &psr_vsc, false);
}
/*
--
2.33.0.1079.g6e70778dc9-goog
More information about the dri-devel
mailing list