msm: mdss: always apply BW fudge factor when video mode present
If there is a video mode controller enabled and other controllers non-video mode, current display driver apply the bw fudge factor only to the controller that it is video mode. This change will apply the fudge factor to all the controllers enabled if any of those is video mode to fix some of the underruns observed in the video interfaces. Change-Id: I0d01477dc45edbef2a25ccd540aa06b3c43073a4 Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
This commit is contained in:
parent
3cd94cabd9
commit
649fad848a
1 changed files with 23 additions and 1 deletions
|
@ -791,6 +791,28 @@ static u32 mdss_mdp_get_vbp_factor_max(struct mdss_mdp_ctl *ctl)
|
||||||
return vbp_max;
|
return vbp_max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool mdss_mdp_video_mode_intf_connected(struct mdss_mdp_ctl *ctl)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
struct mdss_data_type *mdata;
|
||||||
|
|
||||||
|
if (!ctl || !ctl->mdata)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
mdata = ctl->mdata;
|
||||||
|
for (i = 0; i < mdata->nctl; i++) {
|
||||||
|
struct mdss_mdp_ctl *ctl = mdata->ctl_off + i;
|
||||||
|
|
||||||
|
if (ctl->is_video_mode && mdss_mdp_ctl_is_power_on(ctl)) {
|
||||||
|
pr_debug("video interface connected ctl:%d\n",
|
||||||
|
ctl->num);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static void __mdss_mdp_perf_calc_ctl_helper(struct mdss_mdp_ctl *ctl,
|
static void __mdss_mdp_perf_calc_ctl_helper(struct mdss_mdp_ctl *ctl,
|
||||||
struct mdss_mdp_perf_params *perf,
|
struct mdss_mdp_perf_params *perf,
|
||||||
struct mdss_mdp_pipe **left_plist, int left_cnt,
|
struct mdss_mdp_pipe **left_plist, int left_cnt,
|
||||||
|
@ -935,7 +957,7 @@ static void mdss_mdp_perf_calc_ctl(struct mdss_mdp_ctl *ctl,
|
||||||
__mdss_mdp_perf_calc_ctl_helper(ctl, perf,
|
__mdss_mdp_perf_calc_ctl_helper(ctl, perf,
|
||||||
left_plist, left_cnt, right_plist, right_cnt, 0);
|
left_plist, left_cnt, right_plist, right_cnt, 0);
|
||||||
|
|
||||||
if (ctl->is_video_mode) {
|
if (ctl->is_video_mode || mdss_mdp_video_mode_intf_connected(ctl)) {
|
||||||
perf->bw_ctl =
|
perf->bw_ctl =
|
||||||
max(apply_fudge_factor(perf->bw_overlap,
|
max(apply_fudge_factor(perf->bw_overlap,
|
||||||
&mdss_res->ib_factor_overlap),
|
&mdss_res->ib_factor_overlap),
|
||||||
|
|
Loading…
Add table
Reference in a new issue