Skip to content

Commit

Permalink
drm/panel: nt35510: Make new commands optional
Browse files Browse the repository at this point in the history
The commit introducing the Frida display started to write the
SETVCMOFF registers unconditionally, and some (not all!) Hydis
display seem to be affected by ghosting after the commit.

Make SETVCMOFF optional and only send these commands on the
Frida display for now.

Reported-by: Stefan Hansson <newbyte@postmarketos.org>
Fixes: 219a1f4 ("drm/panel: nt35510: support FRIDA FRD400B25025-A-CTK")
Acked-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Tested-by: Stefan Hansson <newbyte@postmarketos.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240908-fix-nt35510-v2-1-d4834b9cdb9b@linaro.org
  • Loading branch information
Linus Walleij committed Sep 22, 2024
1 parent f673055 commit 2418aa8
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions drivers/gpu/drm/panel/panel-novatek-nt35510.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@

#define NT35510_CMD_CORRECT_GAMMA BIT(0)
#define NT35510_CMD_CONTROL_DISPLAY BIT(1)
#define NT35510_CMD_SETVCMOFF BIT(2)

#define MCS_CMD_MAUCCTR 0xF0 /* Manufacturer command enable */
#define MCS_CMD_READ_ID1 0xDA
Expand Down Expand Up @@ -721,11 +722,13 @@ static int nt35510_setup_power(struct nt35510 *nt)
if (ret)
return ret;

ret = nt35510_send_long(nt, dsi, NT35510_P1_SETVCMOFF,
NT35510_P1_VCMOFF_LEN,
nt->conf->vcmoff);
if (ret)
return ret;
if (nt->conf->cmds & NT35510_CMD_SETVCMOFF) {
ret = nt35510_send_long(nt, dsi, NT35510_P1_SETVCMOFF,
NT35510_P1_VCMOFF_LEN,
nt->conf->vcmoff);
if (ret)
return ret;
}

/* Typically 10 ms */
usleep_range(10000, 20000);
Expand Down Expand Up @@ -1319,7 +1322,7 @@ static const struct nt35510_config nt35510_frida_frd400b25025 = {
},
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
MIPI_DSI_MODE_LPM,
.cmds = NT35510_CMD_CONTROL_DISPLAY,
.cmds = NT35510_CMD_CONTROL_DISPLAY | NT35510_CMD_SETVCMOFF,
/* 0x03: AVDD = 6.2V */
.avdd = { 0x03, 0x03, 0x03 },
/* 0x46: PCK = 2 x Hsync, BTP = 2.5 x VDDB */
Expand Down

0 comments on commit 2418aa8

Please sign in to comment.