disp: msm: update topology based on clock requirement

Update the topology allocation by considering the required
mode clock (vtotal x htotal x fps * fudge factor). Modes with
a clock that exceeds the maximum SDE clock will be denoted as
requiring a topology that uses two layer mixers.

Change-Id: I3c773598b0d79cb6fea9d3a0e04d89ff84d67e13
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Este commit está contenido en:
Tatenda Chipeperekwa
2019-09-12 16:43:14 -07:00
padre b8165c3584
commit da892c0b91
Se han modificado 6 ficheros con 103 adiciones y 7 borrados

Ver fichero

@@ -2060,6 +2060,7 @@ static enum drm_mode_status dp_display_validate_mode(
struct dp_display_mode dp_mode;
bool dsc_en;
u32 num_lm = 0;
int rc = 0;
if (!dp_display || !mode || !panel ||
!avail_res || !avail_res->max_mixer_width) {
@@ -2105,8 +2106,12 @@ static enum drm_mode_status dp_display_validate_mode(
goto end;
}
num_lm = (avail_res->max_mixer_width <= mode->hdisplay) ?
2 : 1;
rc = msm_get_mixer_count(dp->priv, mode, avail_res, &num_lm);
if (rc) {
DP_ERR("error getting mixer count. rc:%d\n", rc);
goto end;
}
if (num_lm > avail_res->num_lm ||
(num_lm == 2 && !avail_res->num_3dmux)) {
DP_MST_DEBUG("num_lm:%d, req lm:%d 3dmux:%d\n", num_lm,