]> git.baikalelectronics.ru Git - kernel.git/commit
drm/vc4: kms: Ignore atomic_flush if we're disabled
authorMaxime Ripard <maxime@cerno.tech>
Thu, 31 Mar 2022 14:37:43 +0000 (16:37 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 6 Apr 2022 13:18:01 +0000 (15:18 +0200)
commitb45a9ed4925ff50326c5640ceb04b1077c3b5ac1
treeabcae9e9c6674a2cb680322f18df9b14f0fa0671
parent1606d90343fb96a55520273dca1e6eff6b617d7a
drm/vc4: kms: Ignore atomic_flush if we're disabled

atomic_flush will be called for each CRTC even if they aren't enabled.

The whole code we have there will thus run without a properly affected
channel, which can then result in all sorts of weird behaviour.

Fortunately, the DRM_PLANE_COMMIT_ACTIVE_ONLY flag will skip the CRTC
atomic_begin and atomic_flush, and the planes atomic_update, if they
aren't enabled.

Our plane atomic_update is a nop, and atomic_begin will copy the current
HVS channel to the vc4_crtc structure for the interrupt handler to
consume, but the handler won't run if the CRTC is disabled. So in the
end, it will only skip our CRTC atomic_flush, which is what we want.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20220331143744.777652-7-maxime@cerno.tech
drivers/gpu/drm/vc4/vc4_kms.c