]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
drm/vc4: crtc: Copy assigned channel to the CRTC
authorMaxime Ripard <maxime@cerno.tech>
Mon, 25 Oct 2021 14:11:07 +0000 (16:11 +0200)
committerPaolo Pisati <paolo.pisati@canonical.com>
Fri, 28 Jan 2022 10:03:25 +0000 (11:03 +0100)
commit935bc262555c7f6eb02f38a2f5fca2721e905af7
tree8548abb7d17693d64e88e92c69591e5e84960f9b
parent6966653b73491c81a609d617a3a9adb107b7067d
drm/vc4: crtc: Copy assigned channel to the CRTC

BugLink: https://bugs.launchpad.net/bugs/1959376
commit eeb6ab4639590130d25670204ab7b6011333d685 upstream.

Accessing the crtc->state pointer from outside the modesetting context
is not allowed. We thus need to copy whatever we need from the KMS state
to our structure in order to access it.

In VC4, a number of users of that pointers have crept in over the years,
and the previous commits removed them all but the HVS channel a CRTC has
been assigned.

Let's move this channel in struct vc4_crtc at atomic_begin() time, drop
it from our private state structure, and remove our use of crtc->state
from our vblank handler entirely.

Link: https://lore.kernel.org/all/YWgteNaNeaS9uWDe@phenom.ffwll.local/
Link: https://lore.kernel.org/r/20211025141113.702757-4-maxime@cerno.tech
Fixes: 87ebcd42fb7b ("drm/vc4: crtc: Assign output to channel automatically")
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
drivers/gpu/drm/vc4/vc4_crtc.c
drivers/gpu/drm/vc4/vc4_drv.h
drivers/gpu/drm/vc4/vc4_hvs.c
drivers/gpu/drm/vc4/vc4_txp.c