summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorKevin Huang <kevinh@nvidia.com>2012-06-15 11:09:12 -0700
committerSimone Willett <swillett@nvidia.com>2012-06-27 17:35:39 -0700
commit2706d59f63e2897959362f2f1a1be840801ada90 (patch)
tree78e7d25fad734098ccd5f22421cd77bdf61843df /arch
parentef6acc75bcf5715d126188a711a70b338d98c028 (diff)
video: tegra: dc: Deactivate DSI runtime when DC is idle.
We support 3 different aggressiveness levels of disabling DSI runtime. The larger the aggressive level is, the higher DSI power we can save. Bug 936337 Change-Id: Idadcb49b364e29ddd0a05dde1c6d3dfda6cd493e Signed-off-by: Kevin Huang <kevinh@nvidia.com> Reviewed-on: http://git-master/r/106361 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/include/mach/dc.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/include/mach/dc.h b/arch/arm/mach-tegra/include/mach/dc.h
index 6aa30ca03083..e493b76fdd64 100644
--- a/arch/arm/mach-tegra/include/mach/dc.h
+++ b/arch/arm/mach-tegra/include/mach/dc.h
@@ -128,6 +128,13 @@ struct dsi_phy_timing_ns {
u16 t_tago_ns;
};
+/* Aggressiveness level of DSI suspend. The higher, the more aggressive. */
+#define DSI_NO_SUSPEND 0
+#define DSI_HOST_SUSPEND_LV0 1
+#define DSI_HOST_SUSPEND_LV1 2
+#define DSI_HOST_SUSPEND_LV2 3
+#define DSI_SUSPEND_FULL 4
+
struct tegra_dsi_out {
u8 n_data_lanes; /* required */
u8 pixel_format; /* required */
@@ -157,6 +164,8 @@ struct tegra_dsi_out {
u8 video_clock_mode;
u8 video_burst_mode;
+ u8 suspend_aggr;
+
u16 panel_buffer_size_byte;
u16 panel_reset_timeout_msec;
@@ -559,7 +568,7 @@ int tegra_dsi_send_panel_short_cmd(struct tegra_dc *dc, u8 *pdata, u8 data_len);
void tegra_dc_host_suspend(struct tegra_dc *dc);
void tegra_dc_host_resume(struct tegra_dc *dc);
int tegra_dsi_host_suspend(struct tegra_dc *dc);
-void tegra_dsi_host_resume(struct tegra_dc *dc);
+int tegra_dsi_host_resume(struct tegra_dc *dc);
int tegra_dc_update_csc(struct tegra_dc *dc, int win_index);