Commit 0c9c7fd0 authored by Ville Syrjälä's avatar Ville Syrjälä

drm/simple-kms-helper: Plumb plane state to the enable hook

tinydrm enable hook wants to play around with the new fb in
.atomic_enable(), thus we'll need access to the plane state.

Performed with coccinelle:
@r1@
identifier F =~ ".*enable$";
identifier P, CS;
@@
F(
	struct drm_simple_display_pipe *P
	,struct drm_crtc_state *CS
+	,struct drm_plane_state *plane_state
	)
{
...
}

@@
struct drm_simple_display_pipe *P;
expression E;
@@
{
+ struct drm_plane *plane;
...
+ plane = &P->plane;
P->funcs->enable(P
		,E
+		,plane->state
	);
...
}

@@
identifier P, CS;
@@
struct drm_simple_display_pipe_funcs {
...
        void (*enable)(struct drm_simple_display_pipe *P
	     		,struct drm_crtc_state *CS
+			,struct drm_plane_state *plane_state
		);
...
};

v2: Pimp the commit message (David)

Cc: Marek Vasut <marex@denx.de>
Cc: Eric Anholt <eric@anholt.net>
Cc: David Lechner <david@lechnology.com>
Cc: "Noralf Trønnes" <noralf@tronnes.org>
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180322202738.25817-1-ville.syrjala@linux.intel.comReviewed-by: default avatarNoralf Trønnes <noralf@tronnes.org>
parent ae358dac
...@@ -64,13 +64,15 @@ static int drm_simple_kms_crtc_check(struct drm_crtc *crtc, ...@@ -64,13 +64,15 @@ static int drm_simple_kms_crtc_check(struct drm_crtc *crtc,
static void drm_simple_kms_crtc_enable(struct drm_crtc *crtc, static void drm_simple_kms_crtc_enable(struct drm_crtc *crtc,
struct drm_crtc_state *old_state) struct drm_crtc_state *old_state)
{ {
struct drm_plane *plane;
struct drm_simple_display_pipe *pipe; struct drm_simple_display_pipe *pipe;
pipe = container_of(crtc, struct drm_simple_display_pipe, crtc); pipe = container_of(crtc, struct drm_simple_display_pipe, crtc);
if (!pipe->funcs || !pipe->funcs->enable) if (!pipe->funcs || !pipe->funcs->enable)
return; return;
pipe->funcs->enable(pipe, crtc->state); plane = &pipe->plane;
pipe->funcs->enable(pipe, crtc->state, plane->state);
} }
static void drm_simple_kms_crtc_disable(struct drm_crtc *crtc, static void drm_simple_kms_crtc_disable(struct drm_crtc *crtc,
......
...@@ -99,7 +99,8 @@ static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = { ...@@ -99,7 +99,8 @@ static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
}; };
static void mxsfb_pipe_enable(struct drm_simple_display_pipe *pipe, static void mxsfb_pipe_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *crtc_state) struct drm_crtc_state *crtc_state,
struct drm_plane_state *plane_state)
{ {
struct mxsfb_drm_private *mxsfb = drm_pipe_to_mxsfb_drm_private(pipe); struct mxsfb_drm_private *mxsfb = drm_pipe_to_mxsfb_drm_private(pipe);
......
...@@ -120,7 +120,8 @@ static int pl111_display_check(struct drm_simple_display_pipe *pipe, ...@@ -120,7 +120,8 @@ static int pl111_display_check(struct drm_simple_display_pipe *pipe,
} }
static void pl111_display_enable(struct drm_simple_display_pipe *pipe, static void pl111_display_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *cstate) struct drm_crtc_state *cstate,
struct drm_plane_state *plane_state)
{ {
struct drm_crtc *crtc = &pipe->crtc; struct drm_crtc *crtc = &pipe->crtc;
struct drm_plane *plane = &pipe->plane; struct drm_plane *plane = &pipe->plane;
......
...@@ -176,7 +176,8 @@ static const struct drm_framebuffer_funcs ili9225_fb_funcs = { ...@@ -176,7 +176,8 @@ static const struct drm_framebuffer_funcs ili9225_fb_funcs = {
}; };
static void ili9225_pipe_enable(struct drm_simple_display_pipe *pipe, static void ili9225_pipe_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *crtc_state) struct drm_crtc_state *crtc_state,
struct drm_plane_state *plane_state)
{ {
struct tinydrm_device *tdev = pipe_to_tinydrm(pipe); struct tinydrm_device *tdev = pipe_to_tinydrm(pipe);
struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev); struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev);
......
...@@ -49,7 +49,8 @@ ...@@ -49,7 +49,8 @@
#define ILI9341_MADCTL_MY BIT(7) #define ILI9341_MADCTL_MY BIT(7)
static void mi0283qt_enable(struct drm_simple_display_pipe *pipe, static void mi0283qt_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *crtc_state) struct drm_crtc_state *crtc_state,
struct drm_plane_state *plane_state)
{ {
struct tinydrm_device *tdev = pipe_to_tinydrm(pipe); struct tinydrm_device *tdev = pipe_to_tinydrm(pipe);
struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev); struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev);
......
...@@ -659,7 +659,8 @@ static void power_off(struct repaper_epd *epd) ...@@ -659,7 +659,8 @@ static void power_off(struct repaper_epd *epd)
} }
static void repaper_pipe_enable(struct drm_simple_display_pipe *pipe, static void repaper_pipe_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *crtc_state) struct drm_crtc_state *crtc_state,
struct drm_plane_state *plane_state)
{ {
struct tinydrm_device *tdev = pipe_to_tinydrm(pipe); struct tinydrm_device *tdev = pipe_to_tinydrm(pipe);
struct repaper_epd *epd = epd_from_tinydrm(tdev); struct repaper_epd *epd = epd_from_tinydrm(tdev);
......
...@@ -175,7 +175,8 @@ static const struct drm_framebuffer_funcs st7586_fb_funcs = { ...@@ -175,7 +175,8 @@ static const struct drm_framebuffer_funcs st7586_fb_funcs = {
}; };
static void st7586_pipe_enable(struct drm_simple_display_pipe *pipe, static void st7586_pipe_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *crtc_state) struct drm_crtc_state *crtc_state,
struct drm_plane_state *plane_state)
{ {
struct tinydrm_device *tdev = pipe_to_tinydrm(pipe); struct tinydrm_device *tdev = pipe_to_tinydrm(pipe);
struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev); struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev);
......
...@@ -37,7 +37,8 @@ ...@@ -37,7 +37,8 @@
#define ST7735R_MV BIT(5) #define ST7735R_MV BIT(5)
static void jd_t18003_t01_pipe_enable(struct drm_simple_display_pipe *pipe, static void jd_t18003_t01_pipe_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *crtc_state) struct drm_crtc_state *crtc_state,
struct drm_plane_state *plane_state)
{ {
struct tinydrm_device *tdev = pipe_to_tinydrm(pipe); struct tinydrm_device *tdev = pipe_to_tinydrm(pipe);
struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev); struct mipi_dbi *mipi = mipi_dbi_from_tinydrm(tdev);
......
...@@ -120,7 +120,8 @@ static int tve200_display_check(struct drm_simple_display_pipe *pipe, ...@@ -120,7 +120,8 @@ static int tve200_display_check(struct drm_simple_display_pipe *pipe,
} }
static void tve200_display_enable(struct drm_simple_display_pipe *pipe, static void tve200_display_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *cstate) struct drm_crtc_state *cstate,
struct drm_plane_state *plane_state)
{ {
struct drm_crtc *crtc = &pipe->crtc; struct drm_crtc *crtc = &pipe->crtc;
struct drm_plane *plane = &pipe->plane; struct drm_plane *plane = &pipe->plane;
......
...@@ -64,7 +64,8 @@ struct drm_simple_display_pipe_funcs { ...@@ -64,7 +64,8 @@ struct drm_simple_display_pipe_funcs {
* This hook is optional. * This hook is optional.
*/ */
void (*enable)(struct drm_simple_display_pipe *pipe, void (*enable)(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *crtc_state); struct drm_crtc_state *crtc_state,
struct drm_plane_state *plane_state);
/** /**
* @disable: * @disable:
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment