114 lines
3.6 KiB
Diff
114 lines
3.6 KiB
Diff
|
From 703a080bef9d3635acfa272949c23246c248378d Mon Sep 17 00:00:00 2001
|
||
|
From: Ondrej Jirman <megi@xff.cz>
|
||
|
Date: Mon, 31 Oct 2022 03:01:28 +0100
|
||
|
Subject: [PATCH 200/464] drm/sun4i: Add more parameters to sunxi_engine commit
|
||
|
callback
|
||
|
|
||
|
These will be needed later on when we move layer configuration to
|
||
|
crtc update.
|
||
|
|
||
|
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||
|
---
|
||
|
drivers/gpu/drm/sun4i/sun4i_backend.c | 4 +++-
|
||
|
drivers/gpu/drm/sun4i/sun4i_crtc.c | 2 +-
|
||
|
drivers/gpu/drm/sun4i/sun8i_mixer.c | 5 ++++-
|
||
|
drivers/gpu/drm/sun4i/sunxi_engine.h | 13 ++++++++++---
|
||
|
4 files changed, 18 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/gpu/drm/sun4i/sun4i_backend.c b/drivers/gpu/drm/sun4i/sun4i_backend.c
|
||
|
index b11dbd50d73e..b1ae497988cc 100644
|
||
|
--- a/drivers/gpu/drm/sun4i/sun4i_backend.c
|
||
|
+++ b/drivers/gpu/drm/sun4i/sun4i_backend.c
|
||
|
@@ -69,7 +69,9 @@ static void sun4i_backend_disable_color_correction(struct sunxi_engine *engine)
|
||
|
SUN4I_BACKEND_OCCTL_ENABLE, 0);
|
||
|
}
|
||
|
|
||
|
-static void sun4i_backend_commit(struct sunxi_engine *engine)
|
||
|
+static void sun4i_backend_commit(struct sunxi_engine *engine,
|
||
|
+ struct drm_crtc *crtc,
|
||
|
+ struct drm_atomic_state *state)
|
||
|
{
|
||
|
DRM_DEBUG_DRIVER("Committing changes\n");
|
||
|
|
||
|
diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c
|
||
|
index c06d7cd45388..18e74047b0f5 100644
|
||
|
--- a/drivers/gpu/drm/sun4i/sun4i_crtc.c
|
||
|
+++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c
|
||
|
@@ -91,7 +91,7 @@ static void sun4i_crtc_atomic_flush(struct drm_crtc *crtc,
|
||
|
|
||
|
DRM_DEBUG_DRIVER("Committing plane changes\n");
|
||
|
|
||
|
- sunxi_engine_commit(scrtc->engine);
|
||
|
+ sunxi_engine_commit(scrtc->engine, crtc, state);
|
||
|
|
||
|
if (event) {
|
||
|
crtc->state->event = NULL;
|
||
|
diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c
|
||
|
index 03b3ee406b67..b74de11c82c0 100644
|
||
|
--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
|
||
|
+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
|
||
|
@@ -14,6 +14,7 @@
|
||
|
#include <linux/of_graph.h>
|
||
|
#include <linux/reset.h>
|
||
|
|
||
|
+#include <drm/drm_atomic.h>
|
||
|
#include <drm/drm_atomic_helper.h>
|
||
|
#include <drm/drm_crtc.h>
|
||
|
#include <drm/drm_framebuffer.h>
|
||
|
@@ -247,7 +248,9 @@ int sun8i_mixer_drm_format_to_hw(u32 format, u32 *hw_format)
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
|
||
|
-static void sun8i_mixer_commit(struct sunxi_engine *engine)
|
||
|
+static void sun8i_mixer_commit(struct sunxi_engine *engine,
|
||
|
+ struct drm_crtc *crtc,
|
||
|
+ struct drm_atomic_state *state)
|
||
|
{
|
||
|
DRM_DEBUG_DRIVER("Committing changes\n");
|
||
|
|
||
|
diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h
|
||
|
index ec8cf9b2bda4..ec0c4932f15c 100644
|
||
|
--- a/drivers/gpu/drm/sun4i/sunxi_engine.h
|
||
|
+++ b/drivers/gpu/drm/sun4i/sunxi_engine.h
|
||
|
@@ -7,6 +7,7 @@
|
||
|
#define _SUNXI_ENGINE_H_
|
||
|
|
||
|
struct drm_plane;
|
||
|
+struct drm_crtc;
|
||
|
struct drm_device;
|
||
|
struct drm_crtc_state;
|
||
|
struct drm_display_mode;
|
||
|
@@ -59,7 +60,9 @@ struct sunxi_engine_ops {
|
||
|
*
|
||
|
* This function is optional.
|
||
|
*/
|
||
|
- void (*commit)(struct sunxi_engine *engine);
|
||
|
+ void (*commit)(struct sunxi_engine *engine,
|
||
|
+ struct drm_crtc *crtc,
|
||
|
+ struct drm_atomic_state *state);
|
||
|
|
||
|
/**
|
||
|
* @layers_init:
|
||
|
@@ -144,12 +147,16 @@ struct sunxi_engine {
|
||
|
/**
|
||
|
* sunxi_engine_commit() - commit all changes of the engine
|
||
|
* @engine: pointer to the engine
|
||
|
+ * @crtc: pointer to crtc the engine is associated with
|
||
|
+ * @state: atomic state
|
||
|
*/
|
||
|
static inline void
|
||
|
-sunxi_engine_commit(struct sunxi_engine *engine)
|
||
|
+sunxi_engine_commit(struct sunxi_engine *engine,
|
||
|
+ struct drm_crtc *crtc,
|
||
|
+ struct drm_atomic_state *state)
|
||
|
{
|
||
|
if (engine->ops && engine->ops->commit)
|
||
|
- engine->ops->commit(engine);
|
||
|
+ engine->ops->commit(engine, crtc, state);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
--
|
||
|
2.34.1
|
||
|
|