Merge "disp: msm: sde: fix max downscale check for legacy HW"

This commit is contained in:
qctecmdr 2020-02-06 10:02:45 -08:00 • committed by Gerrit - the friendly Code Review server
commit 3da2742a90

View file

@ -2484,7 +2484,7 @@ static int _sde_atomic_check_decimation_scaler(struct drm_plane_state *state,
uint32_t scaler_src_w, scaler_src_h;
uint32_t max_downscale_num, max_downscale_denom;
uint32_t max_upscale, max_linewidth;
bool inline_rotation, rt_client, pre_down_en = false;
bool inline_rotation, rt_client, has_predown, pre_down_en = false;
struct drm_crtc *crtc;
struct drm_crtc_state *new_cstate;
@ -2511,7 +2511,8 @@ static int _sde_atomic_check_decimation_scaler(struct drm_plane_state *state,
max_upscale = psde->pipe_sblk->maxupscale;
max_linewidth = psde->pipe_sblk->maxlinewidth;
if (_sde_plane_has_pre_downscale(psde))
has_predown = _sde_plane_has_pre_downscale(psde);
if (has_predown)
pre_down_en = _sde_plane_is_pre_downscale_enabled(
&pstate->pre_down);
@ -2524,10 +2525,12 @@ static int _sde_atomic_check_decimation_scaler(struct drm_plane_state *state,
max_downscale_denom = 1;
/* inline rotation RT clients have a different max downscaling limit */
if (inline_rotation) {
if (rt_client && !pre_down_en) {
max_downscale_num =
if (rt_client && has_predown) {
max_downscale_num = pre_down_en ?
psde->pipe_sblk->in_rot_maxdwnscale_rt_num :
psde->pipe_sblk->in_rot_minpredwnscale_num;
max_downscale_denom =
max_downscale_denom = pre_down_en ?
psde->pipe_sblk->in_rot_maxdwnscale_rt_denom :
psde->pipe_sblk->in_rot_minpredwnscale_denom;
} else if (rt_client) {
max_downscale_num =