disp: msm: sde: add rotation and scaling check for max linewidth

Add scaling linewidth variable and logic changes to get
valid max linewidth values for inline rotation and scaling.
Modify linewidth check to compare with scaler source width.

Change-Id: I7c63175e568ecb524f9cdf8ada1d7c6fdc999236
Signed-off-by: Thomas Dedinsky <tdedinsk@codeaurora.org>
This commit is contained in:
Thomas Dedinsky
2020-04-06 16:19:12 -04:00
committed by Gerrit - the friendly Code Review server
부모 a590ad8a8a
커밋 d4124a5322
3개의 변경된 파일24개의 추가작업 그리고 5개의 파일을 삭제

파일 보기

@@ -2414,7 +2414,13 @@ static int _sde_atomic_check_decimation_scaler(struct drm_plane_state *state,
}
sblk = psde->pipe_sblk;
max_upscale = sblk->maxupscale;
max_linewidth = sblk->maxlinewidth;
if (inline_rotation)
max_linewidth = sblk->in_rot_maxheight;
else if (scaler_src_w != state->crtc_w || scaler_src_h != state->crtc_h)
max_linewidth = sblk->scaling_linewidth;
else
max_linewidth = sblk->maxlinewidth;
crtc = state->crtc;
new_cstate = drm_atomic_get_new_crtc_state(state->state, crtc);
@@ -2443,11 +2449,11 @@ static int _sde_atomic_check_decimation_scaler(struct drm_plane_state *state,
src->w, src->h, dst->w, dst->h);
ret = -EINVAL;
/* check decimated source width */
} else if (src_deci_w > max_linewidth) {
/* check scaler source width */
} else if (scaler_src_w > max_linewidth) {
SDE_ERROR_PLANE(psde,
"invalid src w:%u, deci w:%u, line w:%u\n",
src->w, src_deci_w, max_linewidth);
"invalid src w:%u, scaler w:%u, line w:%u, rot: %d\n",
src->w, scaler_src_w, max_linewidth, inline_rotation);
ret = -E2BIG;
/* check max scaler capability */