summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPindar Yang <pindaryang@google.com>2023-06-08 08:11:37 +0000
committerAndroid Partner Code Review <android-gerrit-partner@google.com>2023-06-08 08:11:37 +0000
commitdad8104e09a9bfb549b10822d3f542c09746668b (patch)
tree4bd4c3396b53f7467050805c54023b2951a19f20
parent3b019246e11e7078cde5023eb852ff4beff9c838 (diff)
parent3dae2f018e76901899e47ddc19ad4e2edaa40020 (diff)
downloadfelix-dad8104e09a9bfb549b10822d3f542c09746668b.tar.gz
Merge "Merge android13-gs-pixel-5.10-udc into android13-gs-pixel-5.10-udc-qpr1" into android13-gs-pixel-5.10-udc-qpr1
-rw-r--r--display/panel-samsung-ea8182-f10.c14
-rw-r--r--dts/gs201-felix-uwb.dtsi2
2 files changed, 12 insertions, 4 deletions
diff --git a/display/panel-samsung-ea8182-f10.c b/display/panel-samsung-ea8182-f10.c
index e0baba7..15ed10e 100644
--- a/display/panel-samsung-ea8182-f10.c
+++ b/display/panel-samsung-ea8182-f10.c
@@ -79,11 +79,10 @@ static const u8 vgh_7v4[] = { 0xE3, 0x12, 0x12, 0x12 };
static const u8 pixel_off[] = { 0x22 };
static const u8 normal_on[] = { 0x13 };
-static const struct exynos_dsi_cmd ea8182_f10_off_cmds[] = {
- EXYNOS_DSI_CMD(display_off, 20),
+static const struct exynos_dsi_cmd ea8182_f10_sleep_in_cmds[] = {
EXYNOS_DSI_CMD(sleep_in, 130),
};
-static DEFINE_EXYNOS_CMD_SET(ea8182_f10_off);
+static DEFINE_EXYNOS_CMD_SET(ea8182_f10_sleep_in);
static const struct exynos_dsi_cmd ea8182_f10_lp_cmds[] = {
EXYNOS_DSI_CMD(display_off, 0),
@@ -321,9 +320,16 @@ static int ea8182_f10_enable(struct drm_panel *panel)
static int ea8182_f10_disable(struct drm_panel *panel)
{
struct exynos_panel *ctx = container_of(panel, struct exynos_panel, panel);
+ const struct exynos_panel_mode *pmode = ctx->current_mode;
dev_dbg(ctx->dev, "%s\n", __func__);
+ /* exit lp mode via 0x53 cmd to avoid green flicker when adjusting voltage */
+ if (pmode && pmode->exynos_mode.is_lp_mode)
+ EXYNOS_DCS_WRITE_SEQ(ctx, MIPI_DCS_WRITE_CONTROL_DISPLAY,
+ EA8182_F10_WRCTRLD_BCTRL_BIT);
+
+ EXYNOS_DCS_WRITE_TABLE_DELAY(ctx, 20, display_off);
ea8182_f10_set_default_voltage(ctx, false);
exynos_panel_disable(panel);
@@ -799,7 +805,7 @@ const struct exynos_panel_desc samsung_ea8182_f10 = {
.min_luminance = 5,
.modes = ea8182_f10_modes,
.num_modes = ARRAY_SIZE(ea8182_f10_modes),
- .off_cmd_set = &ea8182_f10_off_cmd_set,
+ .off_cmd_set = &ea8182_f10_sleep_in_cmd_set,
.lp_mode = &ea8182_f10_lp_mode,
.lp_cmd_set = &ea8182_f10_lp_cmd_set,
.binned_lp = ea8182_f10_binned_lp,
diff --git a/dts/gs201-felix-uwb.dtsi b/dts/gs201-felix-uwb.dtsi
index d02c6a6..345a040 100644
--- a/dts/gs201-felix-uwb.dtsi
+++ b/dts/gs201-felix-uwb.dtsi
@@ -52,6 +52,8 @@
decawave,eui64 = /bits/ 64 <0>;
decawave,panid = /bits/ 16 <0>;
+ min_clamp = <620>;
+
status = "okay";
controller-data {