]> git.baikalelectronics.ru Git - kernel.git/commit
drm/bridge: analogix_dp: Support PSR-exit to disable transition
authorBrian Norris <briannorris@chromium.org>
Mon, 28 Feb 2022 20:25:31 +0000 (12:25 -0800)
committerDouglas Anderson <dianders@chromium.org>
Mon, 6 Jun 2022 20:25:59 +0000 (13:25 -0700)
commit2cebb5b8c01ad5387ce26ec617f7ab26e519aa52
tree30fef2c7cf631da8e44b6b5615e0a7221e5150d6
parent0e8bbf38685d00c98d7ea417ce3e26eed1bfe1ba
drm/bridge: analogix_dp: Support PSR-exit to disable transition

Most eDP panel functions only work correctly when the panel is not in
self-refresh. In particular, analogix_dp_bridge_disable() tends to hit
AUX channel errors if the panel is in self-refresh.

Given the above, it appears that so far, this driver assumes that we are
never in self-refresh when it comes time to fully disable the bridge.
Prior to commit 72a1b0f18165 ("drm/atomic: Try to preserve the crtc
enabled state in drm_atomic_remove_fb, v2."), this tended to be true,
because we would automatically disable the pipe when framebuffers were
removed, and so we'd typically disable the bridge shortly after the last
display activity.

However, that is not guaranteed: an idle (self-refresh) display pipe may
be disabled, e.g., when switching CRTCs. We need to exit PSR first.

Stable notes: this is definitely a bugfix, and the bug has likely
existed in some form for quite a while. It may predate the "PSR helpers"
refactor, but the code looked very different before that, and it's
probably not worth rewriting the fix.

Cc: <stable@vger.kernel.org>
Fixes: ddc425c76e18 ("drm/rockchip: Use the helpers for PSR")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20220228122522.v2.1.I161904be17ba14526f78536ccd78b85818449b51@changeid
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c