2024-02-16 19:05:10

by Ondřej Jirman

[permalink] [raw]
Subject: [PATCH 2/3] drm/sun4i: Add more parameters to sunxi_engine commit callback

From: Ondrej Jirman <[email protected]>

These will be needed later on when we move layer configuration to
crtc update.

Signed-off-by: Ondrej Jirman <[email protected]>
---
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 335fd0edb904..e89eb96d3131 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 1e681314e379..bdeb9b80e038 100644
--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
@@ -16,6 +16,7 @@
#include <linux/platform_device.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>
@@ -249,7 +250,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.43.0



2024-02-21 13:20:01

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH 2/3] drm/sun4i: Add more parameters to sunxi_engine commit callback

On Fri, 16 Feb 2024 20:04:25 +0100, Ondřej Jirman wrote:
> From: Ondrej Jirman <[email protected]>
>
> These will be needed later on when we move layer configuration to
> crtc update.
>
>
> [ ... ]

Reviewed-by: Maxime Ripard <[email protected]>

Thanks!
Maxime

2024-02-22 19:18:51

by Jernej Škrabec

[permalink] [raw]
Subject: Re: [PATCH 2/3] drm/sun4i: Add more parameters to sunxi_engine commit callback

Dne petek, 16. februar 2024 ob 20:04:25 CET je Ondřej Jirman napisal(a):
> From: Ondrej Jirman <[email protected]>
>
> These will be needed later on when we move layer configuration to
> crtc update.
>
> Signed-off-by: Ondrej Jirman <[email protected]>

Reviewed-by: Jernej Skrabec <[email protected]>

Best regards,
Jernej

> ---
> 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 335fd0edb904..e89eb96d3131 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 1e681314e379..bdeb9b80e038 100644
> --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
> +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
> @@ -16,6 +16,7 @@
> #include <linux/platform_device.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>
> @@ -249,7 +250,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);
> }
>
> /**
>