summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMin-wuk Lee <mlee@nvidia.com>2011-09-21 17:39:36 +0900
committerVarun Colbert <vcolbert@nvidia.com>2011-11-10 19:33:46 -0800
commitcf63b34f3505a95e6bdadbe5322cfeefebc546c2 (patch)
tree0889e0ff9c11a2caa5803919d017f0139e26e881
parent04c6af6a1b0d600acf3e7effe54ca403d713d572 (diff)
ARM: tegra: enterprise: remove panel reset in first kernel boot
Panel reset in the first kernel boot is removed because this makes short flicker in transition from bootloader display to kernel display. Panel reset in system resume is still remained. Bug 874071 Reviewed-on: http://git-master/r/53695 (cherry picked from commit 8d3412cfe2dd1d135209f8060f883fdc85571d8e) Change-Id: I78c1d3f07d7ef6eada3b5981218ab609532c3964 Reviewed-on: http://git-master/r/62373 Reviewed-by: Min-wuk Lee <mlee@nvidia.com> Tested-by: Min-wuk Lee <mlee@nvidia.com> Reviewed-by: Kevin Huang (Eng-SW) <kevinh@nvidia.com> Reviewed-by: Jon Mayo <jmayo@nvidia.com> Tested-by: Gerrit_Virtual_Submit
-rw-r--r--arch/arm/mach-tegra/board-enterprise-panel.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise-panel.c b/arch/arm/mach-tegra/board-enterprise-panel.c
index 84501555c2ba..5d51b332494f 100644
--- a/arch/arm/mach-tegra/board-enterprise-panel.c
+++ b/arch/arm/mach-tegra/board-enterprise-panel.c
@@ -106,6 +106,8 @@ static tegra_dc_bl_output enterprise_bl_output_measured = {
static p_tegra_dc_bl_output bl_output;
+static bool kernel_1st_panel_init = true;
+
static int enterprise_backlight_notify(struct device *unused, int brightness)
{
int cur_sd_brightness = atomic_read(&sd_brightness);
@@ -432,21 +434,23 @@ static int enterprise_dsi_panel_enable(void)
}
#if DSI_PANEL_RESET
- ret = gpio_request(enterprise_dsi_panel_reset, "panel reset");
- if (ret < 0)
- return ret;
+ if (kernel_1st_panel_init != true) {
+ ret = gpio_request(enterprise_dsi_panel_reset, "panel reset");
+ if (ret < 0)
+ return ret;
- ret = gpio_direction_output(enterprise_dsi_panel_reset, 0);
- if (ret < 0) {
- gpio_free(enterprise_dsi_panel_reset);
- return ret;
- }
- tegra_gpio_enable(enterprise_dsi_panel_reset);
+ ret = gpio_direction_output(enterprise_dsi_panel_reset, 0);
+ if (ret < 0) {
+ gpio_free(enterprise_dsi_panel_reset);
+ return ret;
+ }
+ tegra_gpio_enable(enterprise_dsi_panel_reset);
- gpio_set_value(enterprise_dsi_panel_reset, 0);
- udelay(2000);
- gpio_set_value(enterprise_dsi_panel_reset, 1);
- mdelay(20);
+ gpio_set_value(enterprise_dsi_panel_reset, 0);
+ udelay(2000);
+ gpio_set_value(enterprise_dsi_panel_reset, 1);
+ mdelay(20);
+ }
#endif
return ret;
@@ -455,8 +459,11 @@ static int enterprise_dsi_panel_enable(void)
static int enterprise_dsi_panel_disable(void)
{
#if DSI_PANEL_RESET
- tegra_gpio_disable(enterprise_dsi_panel_reset);
- gpio_free(enterprise_dsi_panel_reset);
+ if (kernel_1st_panel_init != true) {
+ tegra_gpio_disable(enterprise_dsi_panel_reset);
+ gpio_free(enterprise_dsi_panel_reset);
+ } else
+ kernel_1st_panel_init = false;
#endif
return 0;
}