msm: mdss: reduce rotator fps for high resolution

For 4k video playback, video only expects to decode
at 30fps for current target. This means that
rotator is only expected to run at 30fps for 4k
resolutions, this change considers this for the
rotator bandwidth calculation in order to optimize
the bandwith vote.

Change-Id: I416a5f2bda00bdd962fa7d26fba2ed19f4247d81
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
(cherry picked from commit 440c2184e5c29db07de5c5bcf7036bf7b6fc5a3d)
[veerascodeaurora.org: Resolve merge conflict in mdss_mdp_ctl.c]
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
Ingrid Gallardo 2015-02-04 15:50:12 -08:00 committed by David Keitel
parent accd754fc4
commit e153a85adc
2 changed files with 16 additions and 2 deletions

View file

@ -567,6 +567,20 @@ static u32 apply_overhead_factors(u32 quota,
}
return overhead_quota;
};
static u32 mdss_mdp_get_rotator_fps(struct mdss_mdp_pipe *pipe)
{
struct mdss_data_type *mdata = mdss_mdp_get_mdata();
u32 fps = DEFAULT_FRAME_RATE;
if (mdata->traffic_shaper_en)
fps = DEFAULT_ROTATOR_FRAME_RATE;
if (pipe->src.w >= 3840 || pipe->src.h >= 3840)
fps = ROTATOR_LOW_FRAME_RATE;
return fps;
}
/**
@ -614,8 +628,7 @@ int mdss_mdp_perf_calc_pipe(struct mdss_mdp_pipe *pipe,
src = pipe->src;
if (mixer->rotator_mode) {
if (mdata->traffic_shaper_en)
fps = DEFAULT_ROTATOR_FRAME_RATE;
fps = mdss_mdp_get_rotator_fps(pipe);
} else if (mixer->type == MDSS_MDP_MIXER_TYPE_INTF) {
struct mdss_panel_info *pinfo;

View file

@ -27,6 +27,7 @@ struct panel_id {
#define DEFAULT_FRAME_RATE 60
#define DEFAULT_ROTATOR_FRAME_RATE 120
#define ROTATOR_LOW_FRAME_RATE 30
#define MDSS_DSI_RST_SEQ_LEN 10
#define MDSS_MDP_MAX_FETCH 12