diff options
| author | Ingrid Gallardo <ingridg@codeaurora.org> | 2014-07-18 10:44:06 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:32:08 -0700 |
| commit | 24f99f22daa3604e060fd23ef74bf129d6a8426c (patch) | |
| tree | e23465bc8d106e5e953e3b14fc2f01726b973d21 /drivers/video/fbdev | |
| parent | d8d81cf528f00c8c118e8fd0efe4ad669b1ec201 (diff) | |
msm: mdss: Disable bw release for cmd mode panels
For command mode panels, driver can release the bandwidth once
the frame is transferred to the panel and no more processing is
done in the display driver; in some scenarios this results in
more power consumption since more interrupts are generated.
This change disables the bandwidth release for command mode panels
and add a debugfs node to dynamically enable the feature if needed
for debugging purposes.
To enable the bw release:
echo 1 > "<debugfs>/mdp/perf/enable_bw_release"
To disable the bw release (default):
echo 0 > "<debugfs>/mdp/perf/enable_bw_release"
Change-Id: I61670606f1cf52b8d889678e6ffe7d0e911771e7
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
[cip@codeaurora.org: Create u32 debugfs for enable_bw_release]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss.h | 2 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_debug.c | 3 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_ctl.c | 2 |
3 files changed, 6 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss.h b/drivers/video/fbdev/msm/mdss.h index 82b466551498..bb16d2969e85 100644 --- a/drivers/video/fbdev/msm/mdss.h +++ b/drivers/video/fbdev/msm/mdss.h @@ -182,6 +182,8 @@ struct mdss_data_type { u32 *clock_levels; u32 nclk_lvl; + u32 enable_bw_release; + struct mdss_hw_settings *hw_settings; struct mdss_mdp_pipe *vig_pipes; diff --git a/drivers/video/fbdev/msm/mdss_debug.c b/drivers/video/fbdev/msm/mdss_debug.c index 9a7619bbbab5..4fb5ae395932 100644 --- a/drivers/video/fbdev/msm/mdss_debug.c +++ b/drivers/video/fbdev/msm/mdss_debug.c @@ -570,6 +570,9 @@ static int mdss_debugfs_perf_init(struct mdss_debug_data *mdd, debugfs_create_file("disable_panic", 0644, mdd->perf, (struct mdss_data_type *)mdata, &mdss_perf_panic_enable); + debugfs_create_u32("enable_bw_release", 0644, mdd->perf, + (u32 *)&mdata->enable_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 b2c08463aa16..fab4df558239 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_ctl.c +++ b/drivers/video/fbdev/msm/mdss_mdp_ctl.c @@ -1046,7 +1046,7 @@ void mdss_mdp_ctl_perf_release_bw(struct mdss_mdp_ctl *ctl) pr_debug("transaction_status=0x%x\n", transaction_status); /*Release the bandwidth only if there are no transactions pending*/ - if (!transaction_status) { + if (!transaction_status && mdata->enable_bw_release) { /* * for splitdisplay if release_bw is called using secondary * then find the main ctl and release BW for main ctl because |
