summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/sun4i/sunxi_engine.h
diff options
context:
space:
mode:
authorMaxime Ripard2018-01-22 10:25:20 +0100
committerMaxime Ripard2018-01-22 15:15:11 +0100
commit3004f75fd4732a67ba1bd069a209957f3b3394d2 (patch)
treefe01ce39c387b340321378d152227656adf09bc1 /drivers/gpu/drm/sun4i/sunxi_engine.h
parentdrm/sun4i: engine: Add a custom crtc atomic_check (diff)
downloadkernel-qcow2-linux-3004f75fd4732a67ba1bd069a209957f3b3394d2.tar.gz
kernel-qcow2-linux-3004f75fd4732a67ba1bd069a209957f3b3394d2.tar.xz
kernel-qcow2-linux-3004f75fd4732a67ba1bd069a209957f3b3394d2.zip
drm/sun4i: engine: Add a VBLANK quirk callback
In some cases, the display engine needs to apply some quirks during the VBLANK event. In the Display Engine 1.0 case for example, we can only disable the frontend once the backend has been, which is at VBLANK. Let's introduce a callback that can be implemented by the various engines. Reviewed-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Link: https://patchwork.freedesktop.org/patch/msgid/7c298d43aa1500196aa5d15d7a7c0f228c7a6f3c.1516613040.git-series.maxime.ripard@free-electrons.com
Diffstat (limited to 'drivers/gpu/drm/sun4i/sunxi_engine.h')
-rw-r--r--drivers/gpu/drm/sun4i/sunxi_engine.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h
index b819d4f9f02f..54c029877531 100644
--- a/drivers/gpu/drm/sun4i/sunxi_engine.h
+++ b/drivers/gpu/drm/sun4i/sunxi_engine.h
@@ -85,6 +85,19 @@ struct sunxi_engine_ops {
* This function is optional.
*/
void (*disable_color_correction)(struct sunxi_engine *engine);
+
+ /**
+ * @vblank_quirk:
+ *
+ * This callback is used to implement engine-specific
+ * behaviour part of the VBLANK event. It is run with all the
+ * constraints of an interrupt (can't sleep, all local
+ * interrupts disabled) and therefore should be as fast as
+ * possible.
+ *
+ * This function is optional.
+ */
+ void (*vblank_quirk)(struct sunxi_engine *engine);
};
/**