diff mbox series

[v3,04/21] drm/sun4i: frontend: Pass DRM format info to input mode helper

Message ID 20181204142218.16284-5-paul.kocialkowski@bootlin.com (mailing list archive)
State New, archived
Headers show
Series drm/sun4i: Support for linear and tiled YUV formats with the frontend | expand

Commit Message

Paul Kocialkowski Dec. 4, 2018, 2:22 p.m. UTC
The helper returning the input mode needs to know the number of planes
for the provided format. Passing the fourcc requires iterating through
the format info list in order to return the number of planes.

Pass the DRM format info structure directly instead, since it's
available to the caller. Also rename the input format in the caller
function to keep things consistent.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
---
 drivers/gpu/drm/sun4i/sun4i_frontend.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

Comments

Maxime Ripard Dec. 4, 2018, 3:21 p.m. UTC | #1
On Tue, Dec 04, 2018 at 03:22:01PM +0100, Paul Kocialkowski wrote:
> The helper returning the input mode needs to know the number of planes
> for the provided format. Passing the fourcc requires iterating through
> the format info list in order to return the number of planes.
> 
> Pass the DRM format info structure directly instead, since it's
> available to the caller. Also rename the input format in the caller
> function to keep things consistent.
> 
> Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
> ---
>  drivers/gpu/drm/sun4i/sun4i_frontend.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/sun4i/sun4i_frontend.c b/drivers/gpu/drm/sun4i/sun4i_frontend.c
> index 1a7ebc45747e..c436fa97928f 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_frontend.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_frontend.c
> @@ -116,9 +116,11 @@ static int sun4i_frontend_drm_format_to_input_fmt(uint32_t fmt, u32 *val)
>  	}
>  }
>  
> -static int sun4i_frontend_drm_format_to_input_mode(uint32_t fmt, u32 *val)
> +static int
> +sun4i_frontend_drm_format_to_input_mode(const struct drm_format_info *format,
> +					u32 *val)
>  {
> -	if (drm_format_num_planes(fmt) == 1)
> +	if (format->num_planes == 1)
>  		*val = SUN4I_FRONTEND_INPUT_FMT_DATA_MOD_PACKED;
>  	else
>  		return -EINVAL;
> @@ -183,12 +185,13 @@ int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
>  {
>  	struct drm_plane_state *state = plane->state;
>  	struct drm_framebuffer *fb = state->fb;
> -	uint32_t format = fb->format->format;
> +	const struct drm_format_info *format = fb->format;
>  	u32 out_fmt_val;
>  	u32 in_fmt_val, in_mod_val, in_ps_val;
>  	int ret;
>  
> -	ret = sun4i_frontend_drm_format_to_input_fmt(format, &in_fmt_val);
> +	ret = sun4i_frontend_drm_format_to_input_fmt(format->format,
> +						     &in_fmt_val);
>  	if (ret) {
>  		DRM_DEBUG_DRIVER("Invalid input format\n");
>  		return ret;
> @@ -200,7 +203,8 @@ int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
>  		return ret;
>  	}
>  
> -	ret = sun4i_frontend_drm_format_to_input_sequence(format, &in_ps_val);
> +	ret = sun4i_frontend_drm_format_to_input_sequence(format->format,
> +							  &in_ps_val);

To keep things really consistent, we should also convert those
functions to get a drm_format_info pointer instead of the fourcc :)

It can come as a later patch though.

Maxime
diff mbox series

Patch

diff --git a/drivers/gpu/drm/sun4i/sun4i_frontend.c b/drivers/gpu/drm/sun4i/sun4i_frontend.c
index 1a7ebc45747e..c436fa97928f 100644
--- a/drivers/gpu/drm/sun4i/sun4i_frontend.c
+++ b/drivers/gpu/drm/sun4i/sun4i_frontend.c
@@ -116,9 +116,11 @@  static int sun4i_frontend_drm_format_to_input_fmt(uint32_t fmt, u32 *val)
 	}
 }
 
-static int sun4i_frontend_drm_format_to_input_mode(uint32_t fmt, u32 *val)
+static int
+sun4i_frontend_drm_format_to_input_mode(const struct drm_format_info *format,
+					u32 *val)
 {
-	if (drm_format_num_planes(fmt) == 1)
+	if (format->num_planes == 1)
 		*val = SUN4I_FRONTEND_INPUT_FMT_DATA_MOD_PACKED;
 	else
 		return -EINVAL;
@@ -183,12 +185,13 @@  int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
 {
 	struct drm_plane_state *state = plane->state;
 	struct drm_framebuffer *fb = state->fb;
-	uint32_t format = fb->format->format;
+	const struct drm_format_info *format = fb->format;
 	u32 out_fmt_val;
 	u32 in_fmt_val, in_mod_val, in_ps_val;
 	int ret;
 
-	ret = sun4i_frontend_drm_format_to_input_fmt(format, &in_fmt_val);
+	ret = sun4i_frontend_drm_format_to_input_fmt(format->format,
+						     &in_fmt_val);
 	if (ret) {
 		DRM_DEBUG_DRIVER("Invalid input format\n");
 		return ret;
@@ -200,7 +203,8 @@  int sun4i_frontend_update_formats(struct sun4i_frontend *frontend,
 		return ret;
 	}
 
-	ret = sun4i_frontend_drm_format_to_input_sequence(format, &in_ps_val);
+	ret = sun4i_frontend_drm_format_to_input_sequence(format->format,
+							  &in_ps_val);
 	if (ret) {
 		DRM_DEBUG_DRIVER("Invalid pixel sequence\n");
 		return ret;