summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorIngrid Gallardo <ingridg@codeaurora.org>2014-07-18 11:21:16 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:32:09 -0700
commit2e1c47192c74e664d084eec382425c73805a4004 (patch)
tree040e5d2390131120af9c748211aaef2ce0ea4aef /drivers/video/fbdev
parent24f99f22daa3604e060fd23ef74bf129d6a8426c (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.h1
-rw-r--r--drivers/video/fbdev/msm/mdss_debug.c3
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_ctl.c3
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);