summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChao Jiang <chaoj@nvidia.com>2010-12-08 18:57:20 +0900
committerVarun Colbert <vcolbert@nvidia.com>2011-01-27 17:25:20 -0800
commitb3775dc53d76d672ebe7353d475874adb077143c (patch)
tree82e597e162ea37fedd7d0943377c7282231bef25
parentfbedfb816c0540c801640553402b0cd07f65831d (diff)
video: tegra: Support for post power-on actions
Add support for extra actions that have to be done after power on the panel. fixes bug 767252 Change-Id: I68b0c4d03818c2722149fcba38b6eb222157d209 Reviewed-on: http://git-master/r/15766 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/include/mach/dc.h1
-rw-r--r--drivers/video/tegra/dc/dc.c9
2 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/include/mach/dc.h b/arch/arm/mach-tegra/include/mach/dc.h
index de929e512f97..31af1776fef9 100644
--- a/arch/arm/mach-tegra/include/mach/dc.h
+++ b/arch/arm/mach-tegra/include/mach/dc.h
@@ -84,6 +84,7 @@ struct tegra_dc_out {
unsigned n_out_pins;
int (*enable)(void);
+ int (*postpoweron)(void);
int (*disable)(void);
};
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index 2a03ae9f8a2e..78909d9d8571 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -723,7 +723,6 @@ void tegra_dc_setup_clk(struct tegra_dc *dc, struct clk *clk)
pclk = tegra_dc_pclk_round_rate(dc, dc->mode.pclk);
tegra_dvfs_set_rate(clk, pclk);
-
}
static int tegra_dc_program_mode(struct tegra_dc *dc, struct tegra_dc_mode *mode)
@@ -1084,7 +1083,10 @@ static void tegra_dc_init(struct tegra_dc *dc)
static bool _tegra_dc_enable(struct tegra_dc *dc)
{
- if (dc->out && dc->out->enable)
+ if (!dc->out)
+ return false;
+
+ if (dc->out->enable)
dc->out->enable();
if (dc->mode.pclk == 0)
@@ -1107,6 +1109,9 @@ static bool _tegra_dc_enable(struct tegra_dc *dc)
tegra_dc_set_out_pin_polars(dc, dc->out->out_pins,
dc->out->n_out_pins);
+ if (dc->out->postpoweron)
+ dc->out->postpoweron();
+
/* force a full blending update */
dc->blend.z[0] = -1;