[Freedreno] [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 Freedreno mailing list