[PATCH 09/15] drm/msm/mdp5: Use drm_mode_get_hv_timing() to populate plane clip rectangle
Archit Taneja
architt at codeaurora.org
Sun Nov 26 13:11:40 UTC 2017
On 11/24/2017 12:34 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Use drm_mode_get_hv_timing() to fill out the plane clip rectangle.
>
> Note that this replaces crtc_state->adjusted_mode usage with
> crtc_state->mode. The latter is the correct choice since that's the
> mode the user provided and it matches the plane crtc coordinates
> the user also provided.
>
> Once everyone agrees on this we can move the clip handling into
> drm_atomic_helper_check_plane_state().
For this and the msm change in patch # 15/15:
Reviewed-by: Archit Taneja <architt at codeaurora.org>
Thanks,
Archit
>
> Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Cc: Rob Clark <robdclark at gmail.com>
> Cc: Archit Taneja <architt at codeaurora.org>
> Cc: linux-arm-msm at vger.kernel.org
> Cc: freedreno at lists.freedesktop.org
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index ee41423baeb7..09f758e7bb1b 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -286,7 +286,7 @@ static int mdp5_plane_atomic_check_with_state(struct drm_crtc_state *crtc_state,
> uint32_t max_width, max_height;
> bool out_of_bounds = false;
> uint32_t caps = 0;
> - struct drm_rect clip;
> + struct drm_rect clip = {};
> int min_scale, max_scale;
> int ret;
>
> @@ -320,13 +320,13 @@ static int mdp5_plane_atomic_check_with_state(struct drm_crtc_state *crtc_state,
> return -ERANGE;
> }
>
> - clip.x1 = 0;
> - clip.y1 = 0;
> - clip.x2 = crtc_state->adjusted_mode.hdisplay;
> - clip.y2 = crtc_state->adjusted_mode.vdisplay;
> min_scale = FRAC_16_16(1, 8);
> max_scale = FRAC_16_16(8, 1);
>
> + if (crtc_state->enable)
> + drm_mode_get_hv_timing(&crtc_state->mode,
> + &clip.x2, &clip.y2);
> +
> ret = drm_atomic_helper_check_plane_state(state, crtc_state, &clip,
> min_scale, max_scale,
> true, true);
> @@ -471,7 +471,7 @@ static int mdp5_plane_atomic_async_check(struct drm_plane *plane,
> {
> struct mdp5_plane_state *mdp5_state = to_mdp5_plane_state(state);
> struct drm_crtc_state *crtc_state;
> - struct drm_rect clip;
> + struct drm_rect clip = {};
> int min_scale, max_scale;
> int ret;
>
> @@ -499,13 +499,13 @@ static int mdp5_plane_atomic_async_check(struct drm_plane *plane,
> plane->state->fb != state->fb)
> return -EINVAL;
>
> - clip.x1 = 0;
> - clip.y1 = 0;
> - clip.x2 = crtc_state->adjusted_mode.hdisplay;
> - clip.y2 = crtc_state->adjusted_mode.vdisplay;
> min_scale = FRAC_16_16(1, 8);
> max_scale = FRAC_16_16(8, 1);
>
> + if (crtc_state->enable)
> + drm_mode_get_hv_timing(&crtc_state->mode,
> + &clip.x2, &clip.y2);
> +
> ret = drm_atomic_helper_check_plane_state(state, crtc_state, &clip,
> min_scale, max_scale,
> true, true);
>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
More information about the dri-devel
mailing list