summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-enterprise-panel.c
diff options
context:
space:
mode:
authorMin-wuk Lee <mlee@nvidia.com>2011-09-21 17:39:36 +0900
committerVarun Wadekar <vwadekar@nvidia.com>2011-12-08 17:04:14 +0530
commit48caf9a45dc7241253fe453a8e18305ffc3f4397 (patch)
tree3beccbc979f94a72c5a63fe05433e9a56293ccb6 /arch/arm/mach-tegra/board-enterprise-panel.c
parent5fac479d8dddb8b9bfada756379357726dc57ed0 (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 Change-Id: I0188ba75cb3c63f798a4a3689b85728ae66e9c44 Reviewed-on: http://git-master/r/53695 Signed-off-by: Min-wuk Lee <mlee@nvidia.com> (cherry picked from commit 8d3412cfe2dd1d135209f8060f883fdc85571d8e) Reviewed-on: http://git-master/r/67398 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-enterprise-panel.c')
-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 fc694e392202..3adc9b8e5fad 100644
--- a/arch/arm/mach-tegra/board-enterprise-panel.c
+++ b/arch/arm/mach-tegra/board-enterprise-panel.c
@@ -108,6 +108,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);
@@ -436,21 +438,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;
@@ -459,8 +463,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;
}