diff options
| author | Ingrid Gallardo <ingridg@codeaurora.org> | 2014-07-18 11:21:16 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:32:09 -0700 |
| commit | 2e1c47192c74e664d084eec382425c73805a4004 (patch) | |
| tree | 040e5d2390131120af9c748211aaef2ce0ea4aef /drivers/video/fbdev | |
| parent | 24f99f22daa3604e060fd23ef74bf129d6a8426c (diff) | |
msm: mdss: disable bw release from rotator
For rotator path, display driver can release the rotator
bandwidth once the rotator finished processing. In some
scenarios this results in more power consumption since more
interrupts are generated to release the bandwidth.
This change disables the bandwidth release for the rotator path
and add a debugfs node to dynamically enable the feature if
needed.
To enable the bw release for rotator:
echo 1 > "<debugfs>/mdp/perf/enable_rotator_bw_release"
To disable the bw release for rotator (default):
echo 0 > "<debugfs>/mdp/perf/enable_rotator_bw_release"
Change-Id: If147b8fb202edcb389fe85e78f8d61d2a98cef95
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
[cip@codeaurora.org: Use debugfs_create_u32 for
enable_rotator_bw_release debugfs]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss.h | 1 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_debug.c | 3 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_ctl.c | 3 |
3 files changed, 6 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss.h b/drivers/video/fbdev/msm/mdss.h index bb16d2969e85..33ec9369ba79 100644 --- a/drivers/video/fbdev/msm/mdss.h +++ b/drivers/video/fbdev/msm/mdss.h @@ -183,6 +183,7 @@ struct mdss_data_type { u32 nclk_lvl; u32 enable_bw_release; + u32 enable_rotator_bw_release; struct mdss_hw_settings *hw_settings; diff --git a/drivers/video/fbdev/msm/mdss_debug.c b/drivers/video/fbdev/msm/mdss_debug.c index 4fb5ae395932..ab44f8e96153 100644 --- a/drivers/video/fbdev/msm/mdss_debug.c +++ b/drivers/video/fbdev/msm/mdss_debug.c @@ -573,6 +573,9 @@ static int mdss_debugfs_perf_init(struct mdss_debug_data *mdd, debugfs_create_u32("enable_bw_release", 0644, mdd->perf, (u32 *)&mdata->enable_bw_release); + debugfs_create_u32("enable_rotator_bw_release", 0644, mdd->perf, + (u32 *)&mdata->enable_rotator_bw_release); + debugfs_create_file("ab_factor", 0644, mdd->perf, &mdata->ab_factor, &mdss_factor_fops); diff --git a/drivers/video/fbdev/msm/mdss_mdp_ctl.c b/drivers/video/fbdev/msm/mdss_mdp_ctl.c index fab4df558239..4b8e3ec60142 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_ctl.c +++ b/drivers/video/fbdev/msm/mdss_mdp_ctl.c @@ -1148,7 +1148,8 @@ static void mdss_mdp_ctl_perf_update(struct mdss_mdp_ctl *ctl, is_bw_released = !mdss_mdp_ctl_perf_get_transaction_status(ctl); if (ctl->power_on) { - if (ctl->perf_release_ctl_bw) + if (ctl->perf_release_ctl_bw && + mdata->enable_rotator_bw_release) mdss_mdp_perf_release_ctl_bw(ctl, new); else if (is_bw_released || params_changed) mdss_mdp_perf_calc_ctl(ctl, new); |
