diff --git a/msm/sde/sde_core_perf.c b/msm/sde/sde_core_perf.c index e686a07e48..9d94ddedd2 100644 --- a/msm/sde/sde_core_perf.c +++ b/msm/sde/sde_core_perf.c @@ -666,6 +666,8 @@ static void _sde_core_perf_crtc_update_bus(struct sde_kms *kms, } bus_ab_quota = max(bw_sum_of_intfs, kms->perf.perf_tune.min_bus_vote); + bus_ab_quota = min(bus_ab_quota, + kms->catalog->perf.max_bw_high*1000ULL); bus_ib_quota = perf.max_per_pipe_ib[bus_id]; if (kms->perf.perf_tune.mode == SDE_PERF_MODE_FIXED) { diff --git a/msm/sde/sde_crtc.c b/msm/sde/sde_crtc.c index 0d2c27badc..f144faa169 100644 --- a/msm/sde/sde_crtc.c +++ b/msm/sde/sde_crtc.c @@ -5573,6 +5573,9 @@ int sde_crtc_helper_reset_custom_properties(struct drm_crtc *crtc, } } + /* disable clk and bw control until clk & bw properties are set */ + cstate->bw_control = false; + cstate->bw_split_vote = false; return 0; }