summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjyzhang1 <jyzhang1@mobvoi.com>2017-10-01 15:43:40 +0800
committerjingyi(BSP) Zhang <jyzhang1@mobvoi.com>2017-10-01 08:04:36 +0000
commit31801a8594c500a8a0b1590e2258f8201274b499 (patch)
tree87a0147a350b7de45e9cb79ebe88a33c2c0c81f3
parent6d2ac08dc8e3563c70349f2cbb84263810f4b882 (diff)
downloadmediatek-31801a8594c500a8a0b1590e2258f8201274b499.tar.gz
LCM: fix the bug "Visual glitch when wake up"
BUG:67013830 1.reset lcm after lcm suspend, avoid the visual glitch 2.display power off after close the backlight when device shutdown
-rw-r--r--arch/arm/mach-mt2601/mooneye/lcm/rm69080_dsi_cmd.c7
-rw-r--r--drivers/misc/mediatek/leds/mtk_leds_drv.c5
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-mt2601/mooneye/lcm/rm69080_dsi_cmd.c b/arch/arm/mach-mt2601/mooneye/lcm/rm69080_dsi_cmd.c
index de16c4747968..eb5d5f3480cf 100644
--- a/arch/arm/mach-mt2601/mooneye/lcm/rm69080_dsi_cmd.c
+++ b/arch/arm/mach-mt2601/mooneye/lcm/rm69080_dsi_cmd.c
@@ -163,6 +163,13 @@ static void lcm_suspend(void)
data_array[0] = 0x014F1500;
dsi_set_cmdq(data_array, 1, 1);
+ MDELAY(10);
+
+ SET_RESET_PIN(1);
+ SET_RESET_PIN(0);
+ MDELAY(1);
+ SET_RESET_PIN(1);
+ MDELAY(5);
}
static void lcm_resume(void)
diff --git a/drivers/misc/mediatek/leds/mtk_leds_drv.c b/drivers/misc/mediatek/leds/mtk_leds_drv.c
index e2e4879f4d7e..b1d59ba508dd 100644
--- a/drivers/misc/mediatek/leds/mtk_leds_drv.c
+++ b/drivers/misc/mediatek/leds/mtk_leds_drv.c
@@ -25,6 +25,8 @@
#include <mtk_leds_hal.h>
#include <mtk_leds_drv.h>
#include <mt-plat/mtk_pwm.h>
+#include "lcm_drv.h"
+
#ifdef CONFIG_BACKLIGHT_SUPPORT_LP8557
#include <linux/of_gpio.h>
@@ -39,6 +41,7 @@ static unsigned int bl_div = CLK_DIV1;
#define PWM_DIV_NUM 8
static unsigned int div_array[PWM_DIV_NUM];
struct mt65xx_led_data *g_leds_data[MT65XX_LED_TYPE_TOTAL];
+extern LCM_DRIVER *lcm_drv;
#ifdef CONFIG_BACKLIGHT_SUPPORT_LP8557
static unsigned int last_level1 = 102;
@@ -786,6 +789,8 @@ static void mt65xx_leds_shutdown(struct platform_device *pdev)
break;
}
}
+ mdelay(10);
+ lcm_drv->suspend();
}