diff options
author | Chao Jiang <chaoj@nvidia.com> | 2010-12-08 18:57:20 +0900 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-01-27 17:25:20 -0800 |
commit | b3775dc53d76d672ebe7353d475874adb077143c (patch) | |
tree | 82e597e162ea37fedd7d0943377c7282231bef25 | |
parent | fbedfb816c0540c801640553402b0cd07f65831d (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.h | 1 | ||||
-rw-r--r-- | drivers/video/tegra/dc/dc.c | 9 |
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; |