All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver
@ 2023-06-16 21:07 ` Linus Walleij
  0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
  To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
	Sam Ravnborg, David Airlie, Daniel Vetter
  Cc: dri-devel, linux-kernel, Linus Walleij

This is two patches fixing things I would normally complain about
in reviews, but alas I missed this one, so I go in and fix it up
myself.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Changes in v2:
- Fix a missed static keyword
- Link to v1: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v1-0-8ac378405fb7@linaro.org

---
Linus Walleij (2):
      drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
      drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking

 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2420 ++++++++++++------------
 1 file changed, 1193 insertions(+), 1227 deletions(-)
---
base-commit: ac9a78681b921877518763ba0e89202254349d1b
change-id: 20230615-fix-boe-tv101wum-nl6-6aa3fab22b44

Best regards,
-- 
Linus Walleij <linus.walleij@linaro.org>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver
@ 2023-06-16 21:07 ` Linus Walleij
  0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
  To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
	Sam Ravnborg, David Airlie, Daniel Vetter
  Cc: linux-kernel, dri-devel

This is two patches fixing things I would normally complain about
in reviews, but alas I missed this one, so I go in and fix it up
myself.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Changes in v2:
- Fix a missed static keyword
- Link to v1: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v1-0-8ac378405fb7@linaro.org

---
Linus Walleij (2):
      drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
      drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking

 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2420 ++++++++++++------------
 1 file changed, 1193 insertions(+), 1227 deletions(-)
---
base-commit: ac9a78681b921877518763ba0e89202254349d1b
change-id: 20230615-fix-boe-tv101wum-nl6-6aa3fab22b44

Best regards,
-- 
Linus Walleij <linus.walleij@linaro.org>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
  2023-06-16 21:07 ` Linus Walleij
@ 2023-06-16 21:07   ` Linus Walleij
  -1 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
  To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
	Sam Ravnborg, David Airlie, Daniel Vetter
  Cc: dri-devel, linux-kernel, Linus Walleij

The boe-tv101wum-nl6 is reinventing the mechanism to send command
sequences that we usually nix during review, but I missed this one
so fixing it up myself.

Also use the explicit function calls to mipi_dsi_dcs_exit_sleep_mode()
and mipi_dsi_dcs_set_display_on() instead of reimplementing them
with homegrown sequences.

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2408 ++++++++++++------------
 1 file changed, 1193 insertions(+), 1215 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index 783234ae0f57..bc806d420ca7 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -33,7 +33,7 @@ struct panel_desc {
 
 	unsigned long mode_flags;
 	enum mipi_dsi_pixel_format format;
-	const struct panel_init_cmd *init_cmds;
+	int (*init)(struct mipi_dsi_device *dsi);
 	unsigned int lanes;
 	bool discharge_on_disable;
 };
@@ -54,1224 +54,1200 @@ struct boe_panel {
 	bool prepared;
 };
 
-enum dsi_cmd_type {
-	INIT_DCS_CMD,
-	DELAY_CMD,
-};
+static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
+{
+	int ret;
 
-struct panel_init_cmd {
-	enum dsi_cmd_type type;
-	size_t len;
-	const char *data;
-};
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD9);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x5A);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
+	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x73);
+	mipi_dsi_dcs_write_seq(dsi, 0x95, 0xE6);
+	mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF0);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x6D, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
+	mipi_dsi_dcs_write_seq(dsi, 0x77, 0x3B);
 
-#define _INIT_DCS_CMD(...) { \
-	.type = INIT_DCS_CMD, \
-	.len = sizeof((char[]){__VA_ARGS__}), \
-	.data = (char[]){__VA_ARGS__} }
-
-#define _INIT_DELAY_CMD(...) { \
-	.type = DELAY_CMD,\
-	.len = sizeof((char[]){__VA_ARGS__}), \
-	.data = (char[]){__VA_ARGS__} }
-
-static const struct panel_init_cmd boe_tv110c9m_init_cmd[] = {
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x05, 0xD9),
-	_INIT_DCS_CMD(0x07, 0x78),
-	_INIT_DCS_CMD(0x08, 0x5A),
-	_INIT_DCS_CMD(0x0D, 0x63),
-	_INIT_DCS_CMD(0x0E, 0x91),
-	_INIT_DCS_CMD(0x0F, 0x73),
-	_INIT_DCS_CMD(0x95, 0xE6),
-	_INIT_DCS_CMD(0x96, 0xF0),
-	_INIT_DCS_CMD(0x30, 0x00),
-	_INIT_DCS_CMD(0x6D, 0x66),
-	_INIT_DCS_CMD(0x75, 0xA2),
-	_INIT_DCS_CMD(0x77, 0x3B),
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
 
-	_INIT_DCS_CMD(0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
-	_INIT_DCS_CMD(0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
-	_INIT_DCS_CMD(0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
-	_INIT_DCS_CMD(0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-
-	_INIT_DCS_CMD(0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
-	_INIT_DCS_CMD(0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
-	_INIT_DCS_CMD(0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
-	_INIT_DCS_CMD(0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-	_INIT_DCS_CMD(0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
-	_INIT_DCS_CMD(0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
-	_INIT_DCS_CMD(0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
-	_INIT_DCS_CMD(0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-
-	_INIT_DCS_CMD(0xFF, 0x21),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
-	_INIT_DCS_CMD(0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
-	_INIT_DCS_CMD(0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-
-	_INIT_DCS_CMD(0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
-	_INIT_DCS_CMD(0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
-	_INIT_DCS_CMD(0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
-	_INIT_DCS_CMD(0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-	_INIT_DCS_CMD(0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
-
-	_INIT_DCS_CMD(0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
-	_INIT_DCS_CMD(0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
-	_INIT_DCS_CMD(0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-
-	_INIT_DCS_CMD(0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
-	_INIT_DCS_CMD(0xFF, 0x24),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x00, 0x00),
-	_INIT_DCS_CMD(0x01, 0x00),
-
-	_INIT_DCS_CMD(0x02, 0x1C),
-	_INIT_DCS_CMD(0x03, 0x1C),
-
-	_INIT_DCS_CMD(0x04, 0x1D),
-	_INIT_DCS_CMD(0x05, 0x1D),
-
-	_INIT_DCS_CMD(0x06, 0x04),
-	_INIT_DCS_CMD(0x07, 0x04),
-
-	_INIT_DCS_CMD(0x08, 0x0F),
-	_INIT_DCS_CMD(0x09, 0x0F),
-
-	_INIT_DCS_CMD(0x0A, 0x0E),
-	_INIT_DCS_CMD(0x0B, 0x0E),
-
-	_INIT_DCS_CMD(0x0C, 0x0D),
-	_INIT_DCS_CMD(0x0D, 0x0D),
-
-	_INIT_DCS_CMD(0x0E, 0x0C),
-	_INIT_DCS_CMD(0x0F, 0x0C),
-
-	_INIT_DCS_CMD(0x10, 0x08),
-	_INIT_DCS_CMD(0x11, 0x08),
-
-	_INIT_DCS_CMD(0x12, 0x00),
-	_INIT_DCS_CMD(0x13, 0x00),
-	_INIT_DCS_CMD(0x14, 0x00),
-	_INIT_DCS_CMD(0x15, 0x00),
-
-	_INIT_DCS_CMD(0x16, 0x00),
-	_INIT_DCS_CMD(0x17, 0x00),
-
-	_INIT_DCS_CMD(0x18, 0x1C),
-	_INIT_DCS_CMD(0x19, 0x1C),
-
-	_INIT_DCS_CMD(0x1A, 0x1D),
-	_INIT_DCS_CMD(0x1B, 0x1D),
-
-	_INIT_DCS_CMD(0x1C, 0x04),
-	_INIT_DCS_CMD(0x1D, 0x04),
-
-	_INIT_DCS_CMD(0x1E, 0x0F),
-	_INIT_DCS_CMD(0x1F, 0x0F),
-
-	_INIT_DCS_CMD(0x20, 0x0E),
-	_INIT_DCS_CMD(0x21, 0x0E),
-
-	_INIT_DCS_CMD(0x22, 0x0D),
-	_INIT_DCS_CMD(0x23, 0x0D),
-
-	_INIT_DCS_CMD(0x24, 0x0C),
-	_INIT_DCS_CMD(0x25, 0x0C),
-
-	_INIT_DCS_CMD(0x26, 0x08),
-	_INIT_DCS_CMD(0x27, 0x08),
-
-	_INIT_DCS_CMD(0x28, 0x00),
-	_INIT_DCS_CMD(0x29, 0x00),
-	_INIT_DCS_CMD(0x2A, 0x00),
-	_INIT_DCS_CMD(0x2B, 0x00),
-
-	_INIT_DCS_CMD(0x2D, 0x20),
-	_INIT_DCS_CMD(0x2F, 0x0A),
-	_INIT_DCS_CMD(0x30, 0x44),
-	_INIT_DCS_CMD(0x33, 0x0C),
-	_INIT_DCS_CMD(0x34, 0x32),
-
-	_INIT_DCS_CMD(0x37, 0x44),
-	_INIT_DCS_CMD(0x38, 0x40),
-	_INIT_DCS_CMD(0x39, 0x00),
-	_INIT_DCS_CMD(0x3A, 0x5D),
-	_INIT_DCS_CMD(0x3B, 0x60),
-	_INIT_DCS_CMD(0x3D, 0x42),
-	_INIT_DCS_CMD(0x3F, 0x06),
-	_INIT_DCS_CMD(0x43, 0x06),
-	_INIT_DCS_CMD(0x47, 0x66),
-	_INIT_DCS_CMD(0x4A, 0x5D),
-	_INIT_DCS_CMD(0x4B, 0x60),
-	_INIT_DCS_CMD(0x4C, 0x91),
-	_INIT_DCS_CMD(0x4D, 0x21),
-	_INIT_DCS_CMD(0x4E, 0x43),
-	_INIT_DCS_CMD(0x51, 0x12),
-	_INIT_DCS_CMD(0x52, 0x34),
-	_INIT_DCS_CMD(0x55, 0x82, 0x02),
-	_INIT_DCS_CMD(0x56, 0x04),
-	_INIT_DCS_CMD(0x58, 0x21),
-	_INIT_DCS_CMD(0x59, 0x30),
-	_INIT_DCS_CMD(0x5A, 0x60),
-	_INIT_DCS_CMD(0x5B, 0x50),
-	_INIT_DCS_CMD(0x5E, 0x00, 0x06),
-	_INIT_DCS_CMD(0x5F, 0x00),
-	_INIT_DCS_CMD(0x65, 0x82),
-	_INIT_DCS_CMD(0x7E, 0x20),
-	_INIT_DCS_CMD(0x7F, 0x3C),
-	_INIT_DCS_CMD(0x82, 0x04),
-	_INIT_DCS_CMD(0x97, 0xC0),
-
-	_INIT_DCS_CMD(0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00),
-	_INIT_DCS_CMD(0x91, 0x44),
-	_INIT_DCS_CMD(0x92, 0xA9),
-	_INIT_DCS_CMD(0x93, 0x1A),
-	_INIT_DCS_CMD(0x94, 0x96),
-	_INIT_DCS_CMD(0xD7, 0x55),
-	_INIT_DCS_CMD(0xDA, 0x0A),
-	_INIT_DCS_CMD(0xDE, 0x08),
-	_INIT_DCS_CMD(0xDB, 0x05),
-	_INIT_DCS_CMD(0xDC, 0xA9),
-	_INIT_DCS_CMD(0xDD, 0x22),
-
-	_INIT_DCS_CMD(0xDF, 0x05),
-	_INIT_DCS_CMD(0xE0, 0xA9),
-	_INIT_DCS_CMD(0xE1, 0x05),
-	_INIT_DCS_CMD(0xE2, 0xA9),
-	_INIT_DCS_CMD(0xE3, 0x05),
-	_INIT_DCS_CMD(0xE4, 0xA9),
-	_INIT_DCS_CMD(0xE5, 0x05),
-	_INIT_DCS_CMD(0xE6, 0xA9),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x8D, 0x00),
-	_INIT_DCS_CMD(0x8E, 0x00),
-	_INIT_DCS_CMD(0xB5, 0x90),
-	_INIT_DCS_CMD(0xFF, 0x25),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x05, 0x00),
-	_INIT_DCS_CMD(0x19, 0x07),
-	_INIT_DCS_CMD(0x1F, 0x60),
-	_INIT_DCS_CMD(0x20, 0x50),
-	_INIT_DCS_CMD(0x26, 0x60),
-	_INIT_DCS_CMD(0x27, 0x50),
-	_INIT_DCS_CMD(0x33, 0x60),
-	_INIT_DCS_CMD(0x34, 0x50),
-	_INIT_DCS_CMD(0x3F, 0xE0),
-	_INIT_DCS_CMD(0x40, 0x00),
-	_INIT_DCS_CMD(0x44, 0x00),
-	_INIT_DCS_CMD(0x45, 0x40),
-	_INIT_DCS_CMD(0x48, 0x60),
-	_INIT_DCS_CMD(0x49, 0x50),
-	_INIT_DCS_CMD(0x5B, 0x00),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x5E, 0xD0),
-	_INIT_DCS_CMD(0x61, 0x60),
-	_INIT_DCS_CMD(0x62, 0x50),
-	_INIT_DCS_CMD(0xF1, 0x10),
-	_INIT_DCS_CMD(0xFF, 0x2A),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x64, 0x16),
-	_INIT_DCS_CMD(0x67, 0x16),
-	_INIT_DCS_CMD(0x6A, 0x16),
-
-	_INIT_DCS_CMD(0x70, 0x30),
-
-	_INIT_DCS_CMD(0xA2, 0xF3),
-	_INIT_DCS_CMD(0xA3, 0xFF),
-	_INIT_DCS_CMD(0xA4, 0xFF),
-	_INIT_DCS_CMD(0xA5, 0xFF),
-
-	_INIT_DCS_CMD(0xD6, 0x08),
-
-	_INIT_DCS_CMD(0xFF, 0x26),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x00, 0xA1),
-
-	_INIT_DCS_CMD(0x02, 0x31),
-	_INIT_DCS_CMD(0x04, 0x28),
-	_INIT_DCS_CMD(0x06, 0x30),
-	_INIT_DCS_CMD(0x0C, 0x16),
-	_INIT_DCS_CMD(0x0D, 0x0D),
-	_INIT_DCS_CMD(0x0F, 0x00),
-	_INIT_DCS_CMD(0x11, 0x00),
-	_INIT_DCS_CMD(0x12, 0x50),
-	_INIT_DCS_CMD(0x13, 0x56),
-	_INIT_DCS_CMD(0x14, 0x57),
-	_INIT_DCS_CMD(0x15, 0x00),
-	_INIT_DCS_CMD(0x16, 0x10),
-	_INIT_DCS_CMD(0x17, 0xA0),
-	_INIT_DCS_CMD(0x18, 0x86),
-	_INIT_DCS_CMD(0x19, 0x0D),
-	_INIT_DCS_CMD(0x1A, 0x7F),
-	_INIT_DCS_CMD(0x1B, 0x0C),
-	_INIT_DCS_CMD(0x1C, 0xBF),
-	_INIT_DCS_CMD(0x22, 0x00),
-	_INIT_DCS_CMD(0x23, 0x00),
-	_INIT_DCS_CMD(0x2A, 0x0D),
-	_INIT_DCS_CMD(0x2B, 0x7F),
-
-	_INIT_DCS_CMD(0x1D, 0x00),
-	_INIT_DCS_CMD(0x1E, 0x65),
-	_INIT_DCS_CMD(0x1F, 0x65),
-	_INIT_DCS_CMD(0x24, 0x00),
-	_INIT_DCS_CMD(0x25, 0x65),
-	_INIT_DCS_CMD(0x2F, 0x05),
-	_INIT_DCS_CMD(0x30, 0x65),
-	_INIT_DCS_CMD(0x31, 0x05),
-	_INIT_DCS_CMD(0x32, 0x7D),
-	_INIT_DCS_CMD(0x39, 0x00),
-	_INIT_DCS_CMD(0x3A, 0x65),
-	_INIT_DCS_CMD(0x20, 0x01),
-	_INIT_DCS_CMD(0x33, 0x11),
-	_INIT_DCS_CMD(0x34, 0x78),
-	_INIT_DCS_CMD(0x35, 0x16),
-	_INIT_DCS_CMD(0xC8, 0x04),
-	_INIT_DCS_CMD(0xC9, 0x9E),
-	_INIT_DCS_CMD(0xCA, 0x4E),
-	_INIT_DCS_CMD(0xCB, 0x00),
-
-	_INIT_DCS_CMD(0xA9, 0x49),
-	_INIT_DCS_CMD(0xAA, 0x4B),
-	_INIT_DCS_CMD(0xAB, 0x48),
-	_INIT_DCS_CMD(0xAC, 0x43),
-	_INIT_DCS_CMD(0xAD, 0x40),
-	_INIT_DCS_CMD(0xAE, 0x50),
-	_INIT_DCS_CMD(0xAF, 0x44),
-	_INIT_DCS_CMD(0xB0, 0x54),
-	_INIT_DCS_CMD(0xB1, 0x4E),
-	_INIT_DCS_CMD(0xB2, 0x4D),
-	_INIT_DCS_CMD(0xB3, 0x4C),
-	_INIT_DCS_CMD(0xB4, 0x41),
-	_INIT_DCS_CMD(0xB5, 0x47),
-	_INIT_DCS_CMD(0xB6, 0x53),
-	_INIT_DCS_CMD(0xB7, 0x3E),
-	_INIT_DCS_CMD(0xB8, 0x51),
-	_INIT_DCS_CMD(0xB9, 0x3C),
-	_INIT_DCS_CMD(0xBA, 0x3B),
-	_INIT_DCS_CMD(0xBB, 0x46),
-	_INIT_DCS_CMD(0xBC, 0x45),
-	_INIT_DCS_CMD(0xBD, 0x55),
-	_INIT_DCS_CMD(0xBE, 0x3D),
-	_INIT_DCS_CMD(0xBF, 0x3F),
-	_INIT_DCS_CMD(0xC0, 0x52),
-	_INIT_DCS_CMD(0xC1, 0x4A),
-	_INIT_DCS_CMD(0xC2, 0x39),
-	_INIT_DCS_CMD(0xC3, 0x4F),
-	_INIT_DCS_CMD(0xC4, 0x3A),
-	_INIT_DCS_CMD(0xC5, 0x42),
-	_INIT_DCS_CMD(0xFF, 0x27),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x56, 0x06),
-	_INIT_DCS_CMD(0x58, 0x80),
-	_INIT_DCS_CMD(0x59, 0x75),
-	_INIT_DCS_CMD(0x5A, 0x00),
-	_INIT_DCS_CMD(0x5B, 0x02),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x5E, 0x20),
-	_INIT_DCS_CMD(0x5F, 0x10),
-	_INIT_DCS_CMD(0x60, 0x00),
-	_INIT_DCS_CMD(0x61, 0x2E),
-	_INIT_DCS_CMD(0x62, 0x00),
-	_INIT_DCS_CMD(0x63, 0x01),
-	_INIT_DCS_CMD(0x64, 0x43),
-	_INIT_DCS_CMD(0x65, 0x2D),
-	_INIT_DCS_CMD(0x66, 0x00),
-	_INIT_DCS_CMD(0x67, 0x01),
-	_INIT_DCS_CMD(0x68, 0x44),
-
-	_INIT_DCS_CMD(0x00, 0x00),
-	_INIT_DCS_CMD(0x78, 0x00),
-	_INIT_DCS_CMD(0xC3, 0x00),
-
-	_INIT_DCS_CMD(0xFF, 0x2A),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x22, 0x2F),
-	_INIT_DCS_CMD(0x23, 0x08),
-
-	_INIT_DCS_CMD(0x24, 0x00),
-	_INIT_DCS_CMD(0x25, 0x65),
-	_INIT_DCS_CMD(0x26, 0xF8),
-	_INIT_DCS_CMD(0x27, 0x00),
-	_INIT_DCS_CMD(0x28, 0x1A),
-	_INIT_DCS_CMD(0x29, 0x00),
-	_INIT_DCS_CMD(0x2A, 0x1A),
-	_INIT_DCS_CMD(0x2B, 0x00),
-	_INIT_DCS_CMD(0x2D, 0x1A),
-
-	_INIT_DCS_CMD(0xFF, 0x23),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x00, 0x80),
-	_INIT_DCS_CMD(0x07, 0x00),
-
-	_INIT_DCS_CMD(0xFF, 0xE0),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x14, 0x60),
-	_INIT_DCS_CMD(0x16, 0xC0),
-
-	_INIT_DCS_CMD(0xFF, 0xF0),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x3A, 0x08),
-
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0xB9, 0x01),
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x18, 0x40),
-
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0xB9, 0x02),
-	_INIT_DCS_CMD(0x35, 0x00),
-	_INIT_DCS_CMD(0x51, 0x00, 0xFF),
-	_INIT_DCS_CMD(0x53, 0x24),
-	_INIT_DCS_CMD(0x55, 0x00),
-	_INIT_DCS_CMD(0xBB, 0x13),
-	_INIT_DCS_CMD(0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04),
-	_INIT_DELAY_CMD(100),
-	_INIT_DCS_CMD(0x11),
-	_INIT_DELAY_CMD(200),
-	_INIT_DCS_CMD(0x29),
-	_INIT_DELAY_CMD(100),
-	{},
-};
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x01, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0x03, 0x1C);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x1D);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x1D);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x04);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x09, 0x0F);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x0E);
+	mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x0E);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0C);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x10, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x17, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x1C);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x1D);
+	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x1D);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x04);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x0F);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x0E);
+	mipi_dsi_dcs_write_seq(dsi, 0x21, 0x0E);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x0D);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0C);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x5D);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x42);
+	mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x43, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x47, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0x4A, 0x5D);
+	mipi_dsi_dcs_write_seq(dsi, 0x4B, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x4C, 0x91);
+	mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x12);
+	mipi_dsi_dcs_write_seq(dsi, 0x52, 0x34);
+	mipi_dsi_dcs_write_seq(dsi, 0x55, 0x82, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x82);
+	mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
+	mipi_dsi_dcs_write_seq(dsi, 0x82, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x97, 0xC0);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x92, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x94, 0x96);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x55);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x22);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x8D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x8E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x90);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x3F, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x44, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x45, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x48, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x49, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0xD0);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0x67, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x16);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x70, 0x30);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xA2, 0xF3);
+	mipi_dsi_dcs_write_seq(dsi, 0xA3, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xA5, 0xFF);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
+	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
+	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
+	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x31, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0x32, 0x7D);
+	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x9E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x49);
+	mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4B);
+	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0xAF, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x54);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x4D);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x4C);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x53);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x3E);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x51);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x3C);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x3B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x55);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x3D);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x52);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x4A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x3A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x42);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
+	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
+	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
+	mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x68, 0x44);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x78, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0xC0);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x00, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0x55, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
+	msleep(100);
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret)
+		return ret;
+	msleep(200);
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+	msleep(100);
 
-static const struct panel_init_cmd inx_hj110iz_init_cmd[] = {
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x05, 0xD1),
-	_INIT_DCS_CMD(0x0D, 0x63),
-	_INIT_DCS_CMD(0x07, 0x8C),
-	_INIT_DCS_CMD(0x08, 0x4B),
-	_INIT_DCS_CMD(0x0E, 0x91),
-	_INIT_DCS_CMD(0x0F, 0x69),
-	_INIT_DCS_CMD(0x95, 0xF5),
-	_INIT_DCS_CMD(0x96, 0xF5),
-	_INIT_DCS_CMD(0x9D, 0x00),
-	_INIT_DCS_CMD(0x9E, 0x00),
-	_INIT_DCS_CMD(0x69, 0x98),
-	_INIT_DCS_CMD(0x75, 0xA2),
-	_INIT_DCS_CMD(0x77, 0xB3),
-	_INIT_DCS_CMD(0xFF, 0x24),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x91, 0x44),
-	_INIT_DCS_CMD(0x92, 0x7A),
-	_INIT_DCS_CMD(0x93, 0x1A),
-	_INIT_DCS_CMD(0x94, 0x40),
-	_INIT_DCS_CMD(0x9A, 0x08),
-	_INIT_DCS_CMD(0x60, 0x96),
-	_INIT_DCS_CMD(0x61, 0xD0),
-	_INIT_DCS_CMD(0x63, 0x70),
-	_INIT_DCS_CMD(0xC2, 0xCF),
-	_INIT_DCS_CMD(0x9B, 0x0F),
-	_INIT_DCS_CMD(0x9A, 0x08),
-	_INIT_DCS_CMD(0x00, 0x03),
-	_INIT_DCS_CMD(0x01, 0x03),
-	_INIT_DCS_CMD(0x02, 0x03),
-	_INIT_DCS_CMD(0x03, 0x03),
-	_INIT_DCS_CMD(0x04, 0x03),
-	_INIT_DCS_CMD(0x05, 0x03),
-	_INIT_DCS_CMD(0x06, 0x22),
-	_INIT_DCS_CMD(0x07, 0x06),
-	_INIT_DCS_CMD(0x08, 0x00),
-	_INIT_DCS_CMD(0x09, 0x1D),
-	_INIT_DCS_CMD(0x0A, 0x1C),
-	_INIT_DCS_CMD(0x0B, 0x13),
-	_INIT_DCS_CMD(0x0C, 0x12),
-	_INIT_DCS_CMD(0x0D, 0x11),
-	_INIT_DCS_CMD(0x0E, 0x10),
-	_INIT_DCS_CMD(0x0F, 0x0F),
-	_INIT_DCS_CMD(0x10, 0x0E),
-	_INIT_DCS_CMD(0x11, 0x0D),
-	_INIT_DCS_CMD(0x12, 0x0C),
-	_INIT_DCS_CMD(0x13, 0x04),
-	_INIT_DCS_CMD(0x14, 0x03),
-	_INIT_DCS_CMD(0x15, 0x03),
-	_INIT_DCS_CMD(0x16, 0x03),
-	_INIT_DCS_CMD(0x17, 0x03),
-	_INIT_DCS_CMD(0x18, 0x03),
-	_INIT_DCS_CMD(0x19, 0x03),
-	_INIT_DCS_CMD(0x1A, 0x03),
-	_INIT_DCS_CMD(0x1B, 0x03),
-	_INIT_DCS_CMD(0x1C, 0x22),
-	_INIT_DCS_CMD(0x1D, 0x06),
-	_INIT_DCS_CMD(0x1E, 0x00),
-	_INIT_DCS_CMD(0x1F, 0x1D),
-	_INIT_DCS_CMD(0x20, 0x1C),
-	_INIT_DCS_CMD(0x21, 0x13),
-	_INIT_DCS_CMD(0x22, 0x12),
-	_INIT_DCS_CMD(0x23, 0x11),
-	_INIT_DCS_CMD(0x24, 0x10),
-	_INIT_DCS_CMD(0x25, 0x0F),
-	_INIT_DCS_CMD(0x26, 0x0E),
-	_INIT_DCS_CMD(0x27, 0x0D),
-	_INIT_DCS_CMD(0x28, 0x0C),
-	_INIT_DCS_CMD(0x29, 0x04),
-	_INIT_DCS_CMD(0x2A, 0x03),
-	_INIT_DCS_CMD(0x2B, 0x03),
-
-	_INIT_DCS_CMD(0x2F, 0x05),
-	_INIT_DCS_CMD(0x30, 0x32),
-	_INIT_DCS_CMD(0x31, 0x43),
-	_INIT_DCS_CMD(0x33, 0x05),
-	_INIT_DCS_CMD(0x34, 0x32),
-	_INIT_DCS_CMD(0x35, 0x43),
-	_INIT_DCS_CMD(0x37, 0x44),
-	_INIT_DCS_CMD(0x38, 0x40),
-	_INIT_DCS_CMD(0x39, 0x00),
-	_INIT_DCS_CMD(0x3A, 0x18),
-	_INIT_DCS_CMD(0x3B, 0x00),
-	_INIT_DCS_CMD(0x3D, 0x93),
-	_INIT_DCS_CMD(0xAB, 0x44),
-	_INIT_DCS_CMD(0xAC, 0x40),
-
-	_INIT_DCS_CMD(0x4D, 0x21),
-	_INIT_DCS_CMD(0x4E, 0x43),
-	_INIT_DCS_CMD(0x4F, 0x65),
-	_INIT_DCS_CMD(0x50, 0x87),
-	_INIT_DCS_CMD(0x51, 0x78),
-	_INIT_DCS_CMD(0x52, 0x56),
-	_INIT_DCS_CMD(0x53, 0x34),
-	_INIT_DCS_CMD(0x54, 0x21),
-	_INIT_DCS_CMD(0x55, 0x83),
-	_INIT_DCS_CMD(0x56, 0x08),
-	_INIT_DCS_CMD(0x58, 0x21),
-	_INIT_DCS_CMD(0x59, 0x40),
-	_INIT_DCS_CMD(0x5A, 0x00),
-	_INIT_DCS_CMD(0x5B, 0x2C),
-	_INIT_DCS_CMD(0x5E, 0x00, 0x10),
-	_INIT_DCS_CMD(0x5F, 0x00),
-
-	_INIT_DCS_CMD(0x7A, 0x00),
-	_INIT_DCS_CMD(0x7B, 0x00),
-	_INIT_DCS_CMD(0x7C, 0x00),
-	_INIT_DCS_CMD(0x7D, 0x00),
-	_INIT_DCS_CMD(0x7E, 0x20),
-	_INIT_DCS_CMD(0x7F, 0x3C),
-	_INIT_DCS_CMD(0x80, 0x00),
-	_INIT_DCS_CMD(0x81, 0x00),
-	_INIT_DCS_CMD(0x82, 0x08),
-	_INIT_DCS_CMD(0x97, 0x02),
-	_INIT_DCS_CMD(0xC5, 0x10),
-	_INIT_DCS_CMD(0xDA, 0x05),
-	_INIT_DCS_CMD(0xDB, 0x01),
-	_INIT_DCS_CMD(0xDC, 0x7A),
-	_INIT_DCS_CMD(0xDD, 0x55),
-	_INIT_DCS_CMD(0xDE, 0x27),
-	_INIT_DCS_CMD(0xDF, 0x01),
-	_INIT_DCS_CMD(0xE0, 0x7A),
-	_INIT_DCS_CMD(0xE1, 0x01),
-	_INIT_DCS_CMD(0xE2, 0x7A),
-	_INIT_DCS_CMD(0xE3, 0x01),
-	_INIT_DCS_CMD(0xE4, 0x7A),
-	_INIT_DCS_CMD(0xE5, 0x01),
-	_INIT_DCS_CMD(0xE6, 0x7A),
-	_INIT_DCS_CMD(0xE7, 0x00),
-	_INIT_DCS_CMD(0xE8, 0x00),
-	_INIT_DCS_CMD(0xE9, 0x01),
-	_INIT_DCS_CMD(0xEA, 0x7A),
-	_INIT_DCS_CMD(0xEB, 0x01),
-	_INIT_DCS_CMD(0xEE, 0x7A),
-	_INIT_DCS_CMD(0xEF, 0x01),
-	_INIT_DCS_CMD(0xF0, 0x7A),
-
-	_INIT_DCS_CMD(0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00),
-	_INIT_DCS_CMD(0xFF, 0x25),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x05, 0x00),
-
-	_INIT_DCS_CMD(0x13, 0x02),
-	_INIT_DCS_CMD(0x14, 0xDF),
-	_INIT_DCS_CMD(0xF1, 0x10),
-	_INIT_DCS_CMD(0x1E, 0x00),
-	_INIT_DCS_CMD(0x1F, 0x00),
-	_INIT_DCS_CMD(0x20, 0x2C),
-	_INIT_DCS_CMD(0x25, 0x00),
-	_INIT_DCS_CMD(0x26, 0x00),
-	_INIT_DCS_CMD(0x27, 0x2C),
-	_INIT_DCS_CMD(0x3F, 0x80),
-	_INIT_DCS_CMD(0x40, 0x00),
-	_INIT_DCS_CMD(0x43, 0x00),
-
-	_INIT_DCS_CMD(0x44, 0x18),
-	_INIT_DCS_CMD(0x45, 0x00),
-
-	_INIT_DCS_CMD(0x48, 0x00),
-	_INIT_DCS_CMD(0x49, 0x2C),
-	_INIT_DCS_CMD(0x5B, 0x80),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x5E, 0x00),
-	_INIT_DCS_CMD(0x61, 0x00),
-	_INIT_DCS_CMD(0x62, 0x2C),
-	_INIT_DCS_CMD(0x68, 0x10),
-	_INIT_DCS_CMD(0xFF, 0x26),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x00, 0xA1),
-	_INIT_DCS_CMD(0x02, 0x31),
-	_INIT_DCS_CMD(0x0A, 0xF2),
-	_INIT_DCS_CMD(0x04, 0x28),
-	_INIT_DCS_CMD(0x06, 0x30),
-	_INIT_DCS_CMD(0x0C, 0x16),
-	_INIT_DCS_CMD(0x0D, 0x0D),
-	_INIT_DCS_CMD(0x0F, 0x00),
-	_INIT_DCS_CMD(0x11, 0x00),
-	_INIT_DCS_CMD(0x12, 0x50),
-	_INIT_DCS_CMD(0x13, 0x56),
-	_INIT_DCS_CMD(0x14, 0x57),
-	_INIT_DCS_CMD(0x15, 0x00),
-	_INIT_DCS_CMD(0x16, 0x10),
-	_INIT_DCS_CMD(0x17, 0xA0),
-	_INIT_DCS_CMD(0x18, 0x86),
-	_INIT_DCS_CMD(0x22, 0x00),
-	_INIT_DCS_CMD(0x23, 0x00),
-	_INIT_DCS_CMD(0x19, 0x0D),
-	_INIT_DCS_CMD(0x1A, 0x7F),
-	_INIT_DCS_CMD(0x1B, 0x0C),
-	_INIT_DCS_CMD(0x1C, 0xBF),
-	_INIT_DCS_CMD(0x2A, 0x0D),
-	_INIT_DCS_CMD(0x2B, 0x7F),
-	_INIT_DCS_CMD(0x20, 0x00),
-
-	_INIT_DCS_CMD(0x1D, 0x00),
-	_INIT_DCS_CMD(0x1E, 0x78),
-	_INIT_DCS_CMD(0x1F, 0x78),
-
-	_INIT_DCS_CMD(0x2F, 0x03),
-	_INIT_DCS_CMD(0x30, 0x78),
-	_INIT_DCS_CMD(0x33, 0x78),
-	_INIT_DCS_CMD(0x34, 0x66),
-	_INIT_DCS_CMD(0x35, 0x11),
-
-	_INIT_DCS_CMD(0x39, 0x10),
-	_INIT_DCS_CMD(0x3A, 0x78),
-	_INIT_DCS_CMD(0x3B, 0x06),
-
-	_INIT_DCS_CMD(0xC8, 0x04),
-	_INIT_DCS_CMD(0xC9, 0x84),
-	_INIT_DCS_CMD(0xCA, 0x4E),
-	_INIT_DCS_CMD(0xCB, 0x00),
-
-	_INIT_DCS_CMD(0xA9, 0x50),
-	_INIT_DCS_CMD(0xAA, 0x4F),
-	_INIT_DCS_CMD(0xAB, 0x4D),
-	_INIT_DCS_CMD(0xAC, 0x4A),
-	_INIT_DCS_CMD(0xAD, 0x48),
-	_INIT_DCS_CMD(0xAE, 0x46),
-	_INIT_DCS_CMD(0xFF, 0x27),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0xC0, 0x18),
-	_INIT_DCS_CMD(0xC1, 0x00),
-	_INIT_DCS_CMD(0xC2, 0x00),
-	_INIT_DCS_CMD(0x56, 0x06),
-	_INIT_DCS_CMD(0x58, 0x80),
-	_INIT_DCS_CMD(0x59, 0x75),
-	_INIT_DCS_CMD(0x5A, 0x00),
-	_INIT_DCS_CMD(0x5B, 0x02),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x5E, 0x20),
-	_INIT_DCS_CMD(0x5F, 0x10),
-	_INIT_DCS_CMD(0x60, 0x00),
-	_INIT_DCS_CMD(0x61, 0x2E),
-	_INIT_DCS_CMD(0x62, 0x00),
-	_INIT_DCS_CMD(0x63, 0x01),
-	_INIT_DCS_CMD(0x64, 0x43),
-	_INIT_DCS_CMD(0x65, 0x2D),
-	_INIT_DCS_CMD(0x66, 0x00),
-	_INIT_DCS_CMD(0x67, 0x01),
-	_INIT_DCS_CMD(0x68, 0x43),
-	_INIT_DCS_CMD(0x98, 0x01),
-	_INIT_DCS_CMD(0xB4, 0x03),
-	_INIT_DCS_CMD(0x9B, 0xBD),
-	_INIT_DCS_CMD(0xA0, 0x90),
-	_INIT_DCS_CMD(0xAB, 0x1B),
-	_INIT_DCS_CMD(0xBC, 0x0C),
-	_INIT_DCS_CMD(0xBD, 0x28),
-
-	_INIT_DCS_CMD(0xFF, 0x2A),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x22, 0x2F),
-	_INIT_DCS_CMD(0x23, 0x08),
-
-	_INIT_DCS_CMD(0x24, 0x00),
-	_INIT_DCS_CMD(0x25, 0x65),
-	_INIT_DCS_CMD(0x26, 0xF8),
-	_INIT_DCS_CMD(0x27, 0x00),
-	_INIT_DCS_CMD(0x28, 0x1A),
-	_INIT_DCS_CMD(0x29, 0x00),
-	_INIT_DCS_CMD(0x2A, 0x1A),
-	_INIT_DCS_CMD(0x2B, 0x00),
-	_INIT_DCS_CMD(0x2D, 0x1A),
-
-	_INIT_DCS_CMD(0x64, 0x96),
-	_INIT_DCS_CMD(0x65, 0x00),
-	_INIT_DCS_CMD(0x66, 0x00),
-	_INIT_DCS_CMD(0x6A, 0x96),
-	_INIT_DCS_CMD(0x6B, 0x00),
-	_INIT_DCS_CMD(0x6C, 0x00),
-	_INIT_DCS_CMD(0x70, 0x92),
-	_INIT_DCS_CMD(0x71, 0x00),
-	_INIT_DCS_CMD(0x72, 0x00),
-	_INIT_DCS_CMD(0xA2, 0x33),
-	_INIT_DCS_CMD(0xA3, 0x30),
-	_INIT_DCS_CMD(0xA4, 0xC0),
-	_INIT_DCS_CMD(0xE8, 0x00),
-	_INIT_DCS_CMD(0x97, 0x3C),
-	_INIT_DCS_CMD(0x98, 0x02),
-	_INIT_DCS_CMD(0x99, 0x95),
-	_INIT_DCS_CMD(0x9A, 0x06),
-	_INIT_DCS_CMD(0x9B, 0x00),
-	_INIT_DCS_CMD(0x9C, 0x0B),
-	_INIT_DCS_CMD(0x9D, 0x0A),
-	_INIT_DCS_CMD(0x9E, 0x90),
-	_INIT_DCS_CMD(0xFF, 0xF0),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x3A, 0x08),
-	_INIT_DCS_CMD(0xFF, 0xD0),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x00, 0x33),
-	_INIT_DCS_CMD(0x08, 0x01),
-	_INIT_DCS_CMD(0x09, 0xBF),
-	_INIT_DCS_CMD(0x2F, 0x33),
-	_INIT_DCS_CMD(0xFF, 0x23),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x00, 0x80),
-	_INIT_DCS_CMD(0x07, 0x00),
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x30, 0x00),
-	_INIT_DCS_CMD(0xFF, 0x24),
-	_INIT_DCS_CMD(0x5C, 0x88),
-	_INIT_DCS_CMD(0x5D, 0x08),
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xB9, 0x01),
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0x18, 0x40),
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xB9, 0x02),
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0xBB, 0x13),
-	_INIT_DCS_CMD(0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04),
-	_INIT_DCS_CMD(0x35, 0x00),
-	_INIT_DCS_CMD(0x51, 0x0F, 0xFF),
-	_INIT_DCS_CMD(0x53, 0x24),
-	_INIT_DELAY_CMD(100),
-	_INIT_DCS_CMD(0x11),
-	_INIT_DELAY_CMD(200),
-	_INIT_DCS_CMD(0x29),
-	_INIT_DELAY_CMD(100),
-	{},
-};
+	return 0;
+}
 
-static const struct panel_init_cmd boe_init_cmd[] = {
-	_INIT_DELAY_CMD(24),
-	_INIT_DCS_CMD(0xB0, 0x05),
-	_INIT_DCS_CMD(0xB1, 0xE5),
-	_INIT_DCS_CMD(0xB3, 0x52),
-	_INIT_DCS_CMD(0xB0, 0x00),
-	_INIT_DCS_CMD(0xB3, 0x88),
-	_INIT_DCS_CMD(0xB0, 0x04),
-	_INIT_DCS_CMD(0xB8, 0x00),
-	_INIT_DCS_CMD(0xB0, 0x00),
-	_INIT_DCS_CMD(0xB6, 0x03),
-	_INIT_DCS_CMD(0xBA, 0x8B),
-	_INIT_DCS_CMD(0xBF, 0x1A),
-	_INIT_DCS_CMD(0xC0, 0x0F),
-	_INIT_DCS_CMD(0xC2, 0x0C),
-	_INIT_DCS_CMD(0xC3, 0x02),
-	_INIT_DCS_CMD(0xC4, 0x0C),
-	_INIT_DCS_CMD(0xC5, 0x02),
-	_INIT_DCS_CMD(0xB0, 0x01),
-	_INIT_DCS_CMD(0xE0, 0x26),
-	_INIT_DCS_CMD(0xE1, 0x26),
-	_INIT_DCS_CMD(0xDC, 0x00),
-	_INIT_DCS_CMD(0xDD, 0x00),
-	_INIT_DCS_CMD(0xCC, 0x26),
-	_INIT_DCS_CMD(0xCD, 0x26),
-	_INIT_DCS_CMD(0xC8, 0x00),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xD2, 0x03),
-	_INIT_DCS_CMD(0xD3, 0x03),
-	_INIT_DCS_CMD(0xE6, 0x04),
-	_INIT_DCS_CMD(0xE7, 0x04),
-	_INIT_DCS_CMD(0xC4, 0x09),
-	_INIT_DCS_CMD(0xC5, 0x09),
-	_INIT_DCS_CMD(0xD8, 0x0A),
-	_INIT_DCS_CMD(0xD9, 0x0A),
-	_INIT_DCS_CMD(0xC2, 0x0B),
-	_INIT_DCS_CMD(0xC3, 0x0B),
-	_INIT_DCS_CMD(0xD6, 0x0C),
-	_INIT_DCS_CMD(0xD7, 0x0C),
-	_INIT_DCS_CMD(0xC0, 0x05),
-	_INIT_DCS_CMD(0xC1, 0x05),
-	_INIT_DCS_CMD(0xD4, 0x06),
-	_INIT_DCS_CMD(0xD5, 0x06),
-	_INIT_DCS_CMD(0xCA, 0x07),
-	_INIT_DCS_CMD(0xCB, 0x07),
-	_INIT_DCS_CMD(0xDE, 0x08),
-	_INIT_DCS_CMD(0xDF, 0x08),
-	_INIT_DCS_CMD(0xB0, 0x02),
-	_INIT_DCS_CMD(0xC0, 0x00),
-	_INIT_DCS_CMD(0xC1, 0x0D),
-	_INIT_DCS_CMD(0xC2, 0x17),
-	_INIT_DCS_CMD(0xC3, 0x26),
-	_INIT_DCS_CMD(0xC4, 0x31),
-	_INIT_DCS_CMD(0xC5, 0x1C),
-	_INIT_DCS_CMD(0xC6, 0x2C),
-	_INIT_DCS_CMD(0xC7, 0x33),
-	_INIT_DCS_CMD(0xC8, 0x31),
-	_INIT_DCS_CMD(0xC9, 0x37),
-	_INIT_DCS_CMD(0xCA, 0x37),
-	_INIT_DCS_CMD(0xCB, 0x37),
-	_INIT_DCS_CMD(0xCC, 0x39),
-	_INIT_DCS_CMD(0xCD, 0x2E),
-	_INIT_DCS_CMD(0xCE, 0x2F),
-	_INIT_DCS_CMD(0xCF, 0x2F),
-	_INIT_DCS_CMD(0xD0, 0x07),
-	_INIT_DCS_CMD(0xD2, 0x00),
-	_INIT_DCS_CMD(0xD3, 0x0D),
-	_INIT_DCS_CMD(0xD4, 0x17),
-	_INIT_DCS_CMD(0xD5, 0x26),
-	_INIT_DCS_CMD(0xD6, 0x31),
-	_INIT_DCS_CMD(0xD7, 0x3F),
-	_INIT_DCS_CMD(0xD8, 0x3F),
-	_INIT_DCS_CMD(0xD9, 0x3F),
-	_INIT_DCS_CMD(0xDA, 0x3F),
-	_INIT_DCS_CMD(0xDB, 0x37),
-	_INIT_DCS_CMD(0xDC, 0x37),
-	_INIT_DCS_CMD(0xDD, 0x37),
-	_INIT_DCS_CMD(0xDE, 0x39),
-	_INIT_DCS_CMD(0xDF, 0x2E),
-	_INIT_DCS_CMD(0xE0, 0x2F),
-	_INIT_DCS_CMD(0xE1, 0x2F),
-	_INIT_DCS_CMD(0xE2, 0x07),
-	_INIT_DCS_CMD(0xB0, 0x03),
-	_INIT_DCS_CMD(0xC8, 0x0B),
-	_INIT_DCS_CMD(0xC9, 0x07),
-	_INIT_DCS_CMD(0xC3, 0x00),
-	_INIT_DCS_CMD(0xE7, 0x00),
-	_INIT_DCS_CMD(0xC5, 0x2A),
-	_INIT_DCS_CMD(0xDE, 0x2A),
-	_INIT_DCS_CMD(0xCA, 0x43),
-	_INIT_DCS_CMD(0xC9, 0x07),
-	_INIT_DCS_CMD(0xE4, 0xC0),
-	_INIT_DCS_CMD(0xE5, 0x0D),
-	_INIT_DCS_CMD(0xCB, 0x00),
-	_INIT_DCS_CMD(0xB0, 0x06),
-	_INIT_DCS_CMD(0xB8, 0xA5),
-	_INIT_DCS_CMD(0xC0, 0xA5),
-	_INIT_DCS_CMD(0xC7, 0x0F),
-	_INIT_DCS_CMD(0xD5, 0x32),
-	_INIT_DCS_CMD(0xB8, 0x00),
-	_INIT_DCS_CMD(0xC0, 0x00),
-	_INIT_DCS_CMD(0xBC, 0x00),
-	_INIT_DCS_CMD(0xB0, 0x07),
-	_INIT_DCS_CMD(0xB1, 0x00),
-	_INIT_DCS_CMD(0xB2, 0x02),
-	_INIT_DCS_CMD(0xB3, 0x0F),
-	_INIT_DCS_CMD(0xB4, 0x25),
-	_INIT_DCS_CMD(0xB5, 0x39),
-	_INIT_DCS_CMD(0xB6, 0x4E),
-	_INIT_DCS_CMD(0xB7, 0x72),
-	_INIT_DCS_CMD(0xB8, 0x97),
-	_INIT_DCS_CMD(0xB9, 0xDC),
-	_INIT_DCS_CMD(0xBA, 0x22),
-	_INIT_DCS_CMD(0xBB, 0xA4),
-	_INIT_DCS_CMD(0xBC, 0x2B),
-	_INIT_DCS_CMD(0xBD, 0x2F),
-	_INIT_DCS_CMD(0xBE, 0xA9),
-	_INIT_DCS_CMD(0xBF, 0x25),
-	_INIT_DCS_CMD(0xC0, 0x61),
-	_INIT_DCS_CMD(0xC1, 0x97),
-	_INIT_DCS_CMD(0xC2, 0xB2),
-	_INIT_DCS_CMD(0xC3, 0xCD),
-	_INIT_DCS_CMD(0xC4, 0xD9),
-	_INIT_DCS_CMD(0xC5, 0xE7),
-	_INIT_DCS_CMD(0xC6, 0xF4),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x08),
-	_INIT_DCS_CMD(0xB1, 0x04),
-	_INIT_DCS_CMD(0xB2, 0x05),
-	_INIT_DCS_CMD(0xB3, 0x11),
-	_INIT_DCS_CMD(0xB4, 0x24),
-	_INIT_DCS_CMD(0xB5, 0x39),
-	_INIT_DCS_CMD(0xB6, 0x4F),
-	_INIT_DCS_CMD(0xB7, 0x72),
-	_INIT_DCS_CMD(0xB8, 0x98),
-	_INIT_DCS_CMD(0xB9, 0xDC),
-	_INIT_DCS_CMD(0xBA, 0x23),
-	_INIT_DCS_CMD(0xBB, 0xA6),
-	_INIT_DCS_CMD(0xBC, 0x2C),
-	_INIT_DCS_CMD(0xBD, 0x30),
-	_INIT_DCS_CMD(0xBE, 0xAA),
-	_INIT_DCS_CMD(0xBF, 0x26),
-	_INIT_DCS_CMD(0xC0, 0x62),
-	_INIT_DCS_CMD(0xC1, 0x9B),
-	_INIT_DCS_CMD(0xC2, 0xB5),
-	_INIT_DCS_CMD(0xC3, 0xCF),
-	_INIT_DCS_CMD(0xC4, 0xDB),
-	_INIT_DCS_CMD(0xC5, 0xE8),
-	_INIT_DCS_CMD(0xC6, 0xF5),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x09),
-	_INIT_DCS_CMD(0xB1, 0x04),
-	_INIT_DCS_CMD(0xB2, 0x02),
-	_INIT_DCS_CMD(0xB3, 0x16),
-	_INIT_DCS_CMD(0xB4, 0x24),
-	_INIT_DCS_CMD(0xB5, 0x3B),
-	_INIT_DCS_CMD(0xB6, 0x4F),
-	_INIT_DCS_CMD(0xB7, 0x73),
-	_INIT_DCS_CMD(0xB8, 0x99),
-	_INIT_DCS_CMD(0xB9, 0xE0),
-	_INIT_DCS_CMD(0xBA, 0x26),
-	_INIT_DCS_CMD(0xBB, 0xAD),
-	_INIT_DCS_CMD(0xBC, 0x36),
-	_INIT_DCS_CMD(0xBD, 0x3A),
-	_INIT_DCS_CMD(0xBE, 0xAE),
-	_INIT_DCS_CMD(0xBF, 0x2A),
-	_INIT_DCS_CMD(0xC0, 0x66),
-	_INIT_DCS_CMD(0xC1, 0x9E),
-	_INIT_DCS_CMD(0xC2, 0xB8),
-	_INIT_DCS_CMD(0xC3, 0xD1),
-	_INIT_DCS_CMD(0xC4, 0xDD),
-	_INIT_DCS_CMD(0xC5, 0xE9),
-	_INIT_DCS_CMD(0xC6, 0xF6),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x0A),
-	_INIT_DCS_CMD(0xB1, 0x00),
-	_INIT_DCS_CMD(0xB2, 0x02),
-	_INIT_DCS_CMD(0xB3, 0x0F),
-	_INIT_DCS_CMD(0xB4, 0x25),
-	_INIT_DCS_CMD(0xB5, 0x39),
-	_INIT_DCS_CMD(0xB6, 0x4E),
-	_INIT_DCS_CMD(0xB7, 0x72),
-	_INIT_DCS_CMD(0xB8, 0x97),
-	_INIT_DCS_CMD(0xB9, 0xDC),
-	_INIT_DCS_CMD(0xBA, 0x22),
-	_INIT_DCS_CMD(0xBB, 0xA4),
-	_INIT_DCS_CMD(0xBC, 0x2B),
-	_INIT_DCS_CMD(0xBD, 0x2F),
-	_INIT_DCS_CMD(0xBE, 0xA9),
-	_INIT_DCS_CMD(0xBF, 0x25),
-	_INIT_DCS_CMD(0xC0, 0x61),
-	_INIT_DCS_CMD(0xC1, 0x97),
-	_INIT_DCS_CMD(0xC2, 0xB2),
-	_INIT_DCS_CMD(0xC3, 0xCD),
-	_INIT_DCS_CMD(0xC4, 0xD9),
-	_INIT_DCS_CMD(0xC5, 0xE7),
-	_INIT_DCS_CMD(0xC6, 0xF4),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x0B),
-	_INIT_DCS_CMD(0xB1, 0x04),
-	_INIT_DCS_CMD(0xB2, 0x05),
-	_INIT_DCS_CMD(0xB3, 0x11),
-	_INIT_DCS_CMD(0xB4, 0x24),
-	_INIT_DCS_CMD(0xB5, 0x39),
-	_INIT_DCS_CMD(0xB6, 0x4F),
-	_INIT_DCS_CMD(0xB7, 0x72),
-	_INIT_DCS_CMD(0xB8, 0x98),
-	_INIT_DCS_CMD(0xB9, 0xDC),
-	_INIT_DCS_CMD(0xBA, 0x23),
-	_INIT_DCS_CMD(0xBB, 0xA6),
-	_INIT_DCS_CMD(0xBC, 0x2C),
-	_INIT_DCS_CMD(0xBD, 0x30),
-	_INIT_DCS_CMD(0xBE, 0xAA),
-	_INIT_DCS_CMD(0xBF, 0x26),
-	_INIT_DCS_CMD(0xC0, 0x62),
-	_INIT_DCS_CMD(0xC1, 0x9B),
-	_INIT_DCS_CMD(0xC2, 0xB5),
-	_INIT_DCS_CMD(0xC3, 0xCF),
-	_INIT_DCS_CMD(0xC4, 0xDB),
-	_INIT_DCS_CMD(0xC5, 0xE8),
-	_INIT_DCS_CMD(0xC6, 0xF5),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x0C),
-	_INIT_DCS_CMD(0xB1, 0x04),
-	_INIT_DCS_CMD(0xB2, 0x02),
-	_INIT_DCS_CMD(0xB3, 0x16),
-	_INIT_DCS_CMD(0xB4, 0x24),
-	_INIT_DCS_CMD(0xB5, 0x3B),
-	_INIT_DCS_CMD(0xB6, 0x4F),
-	_INIT_DCS_CMD(0xB7, 0x73),
-	_INIT_DCS_CMD(0xB8, 0x99),
-	_INIT_DCS_CMD(0xB9, 0xE0),
-	_INIT_DCS_CMD(0xBA, 0x26),
-	_INIT_DCS_CMD(0xBB, 0xAD),
-	_INIT_DCS_CMD(0xBC, 0x36),
-	_INIT_DCS_CMD(0xBD, 0x3A),
-	_INIT_DCS_CMD(0xBE, 0xAE),
-	_INIT_DCS_CMD(0xBF, 0x2A),
-	_INIT_DCS_CMD(0xC0, 0x66),
-	_INIT_DCS_CMD(0xC1, 0x9E),
-	_INIT_DCS_CMD(0xC2, 0xB8),
-	_INIT_DCS_CMD(0xC3, 0xD1),
-	_INIT_DCS_CMD(0xC4, 0xDD),
-	_INIT_DCS_CMD(0xC5, 0xE9),
-	_INIT_DCS_CMD(0xC6, 0xF6),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x00),
-	_INIT_DCS_CMD(0xB3, 0x08),
-	_INIT_DCS_CMD(0xB0, 0x04),
-	_INIT_DCS_CMD(0xB8, 0x68),
-	_INIT_DELAY_CMD(150),
-	{},
-};
+static int inx_hj110iz_init(struct mipi_dsi_device *dsi) {
+	int ret;
 
-static const struct panel_init_cmd auo_kd101n80_45na_init_cmd[] = {
-	_INIT_DELAY_CMD(24),
-	_INIT_DCS_CMD(0x11),
-	_INIT_DELAY_CMD(120),
-	_INIT_DCS_CMD(0x29),
-	_INIT_DELAY_CMD(120),
-	{},
-};
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD1);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x8C);
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x4B);
+	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x69);
+	mipi_dsi_dcs_write_seq(dsi, 0x95, 0xF5);
+	mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF5);
+	mipi_dsi_dcs_write_seq(dsi, 0x9D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x9E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x69, 0x98);
+	mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
+	mipi_dsi_dcs_write_seq(dsi, 0x77, 0xB3);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x92, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x94, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x60, 0x96);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0xD0);
+	mipi_dsi_dcs_write_seq(dsi, 0x63, 0x70);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xCF);
+	mipi_dsi_dcs_write_seq(dsi, 0x9B, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x01, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x03, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x22);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x09, 0x1D);
+	mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x12);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x10, 0x0E);
+	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x17, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x22);
+	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x1D);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0x21, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x12);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x0E);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x03);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x32);
+	mipi_dsi_dcs_write_seq(dsi, 0x31, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x93);
+	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x40);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x4F, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x50, 0x87);
+	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x52, 0x56);
+	mipi_dsi_dcs_write_seq(dsi, 0x53, 0x34);
+	mipi_dsi_dcs_write_seq(dsi, 0x54, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x55, 0x83);
+	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x7A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x7B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x7C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x7D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
+	mipi_dsi_dcs_write_seq(dsi, 0x80, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x81, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x82, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x97, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x55);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x27);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xE8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xE9, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xEA, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xEB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xEE, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xEF, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xF0, 0x7A);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0xDF);
+	mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x43, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x44, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0x45, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x48, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x49, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x68, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
+	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0x0A, 0xF2);
+	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
+	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
+	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
+	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x78);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x11);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x06);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x84);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x4D);
+	mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x4A);
+	mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
+	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
+	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
+	mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x68, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x98, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x9B, 0xBD);
+	mipi_dsi_dcs_write_seq(dsi, 0xA0, 0x90);
+	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x1B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x28);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x96);
+	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x96);
+	mipi_dsi_dcs_write_seq(dsi, 0x6B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x6C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x70, 0x92);
+	mipi_dsi_dcs_write_seq(dsi, 0x71, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x72, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xA2, 0x33);
+	mipi_dsi_dcs_write_seq(dsi, 0xA3, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xC0);
+	mipi_dsi_dcs_write_seq(dsi, 0xE8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x97, 0x3C);
+	mipi_dsi_dcs_write_seq(dsi, 0x98, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x99, 0x95);
+	mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x9B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x9C, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0x9D, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0x9E, 0x90);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xD0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x33);
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x09, 0xBF);
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x33);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x88);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x0F, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
+	msleep(100);
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret)
+		return ret;
+	msleep(200);
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+	msleep(100);
 
-static const struct panel_init_cmd auo_b101uan08_3_init_cmd[] = {
-	_INIT_DELAY_CMD(24),
-	_INIT_DCS_CMD(0xB0, 0x01),
-	_INIT_DCS_CMD(0xC0, 0x48),
-	_INIT_DCS_CMD(0xC1, 0x48),
-	_INIT_DCS_CMD(0xC2, 0x47),
-	_INIT_DCS_CMD(0xC3, 0x47),
-	_INIT_DCS_CMD(0xC4, 0x46),
-	_INIT_DCS_CMD(0xC5, 0x46),
-	_INIT_DCS_CMD(0xC6, 0x45),
-	_INIT_DCS_CMD(0xC7, 0x45),
-	_INIT_DCS_CMD(0xC8, 0x64),
-	_INIT_DCS_CMD(0xC9, 0x64),
-	_INIT_DCS_CMD(0xCA, 0x4F),
-	_INIT_DCS_CMD(0xCB, 0x4F),
-	_INIT_DCS_CMD(0xCC, 0x40),
-	_INIT_DCS_CMD(0xCD, 0x40),
-	_INIT_DCS_CMD(0xCE, 0x66),
-	_INIT_DCS_CMD(0xCF, 0x66),
-	_INIT_DCS_CMD(0xD0, 0x4F),
-	_INIT_DCS_CMD(0xD1, 0x4F),
-	_INIT_DCS_CMD(0xD2, 0x41),
-	_INIT_DCS_CMD(0xD3, 0x41),
-	_INIT_DCS_CMD(0xD4, 0x48),
-	_INIT_DCS_CMD(0xD5, 0x48),
-	_INIT_DCS_CMD(0xD6, 0x47),
-	_INIT_DCS_CMD(0xD7, 0x47),
-	_INIT_DCS_CMD(0xD8, 0x46),
-	_INIT_DCS_CMD(0xD9, 0x46),
-	_INIT_DCS_CMD(0xDA, 0x45),
-	_INIT_DCS_CMD(0xDB, 0x45),
-	_INIT_DCS_CMD(0xDC, 0x64),
-	_INIT_DCS_CMD(0xDD, 0x64),
-	_INIT_DCS_CMD(0xDE, 0x4F),
-	_INIT_DCS_CMD(0xDF, 0x4F),
-	_INIT_DCS_CMD(0xE0, 0x40),
-	_INIT_DCS_CMD(0xE1, 0x40),
-	_INIT_DCS_CMD(0xE2, 0x66),
-	_INIT_DCS_CMD(0xE3, 0x66),
-	_INIT_DCS_CMD(0xE4, 0x4F),
-	_INIT_DCS_CMD(0xE5, 0x4F),
-	_INIT_DCS_CMD(0xE6, 0x41),
-	_INIT_DCS_CMD(0xE7, 0x41),
-	_INIT_DELAY_CMD(150),
-	{},
-};
+	return 0;
+}
 
-static const struct panel_init_cmd starry_qfh032011_53g_init_cmd[] = {
-	_INIT_DCS_CMD(0xB0, 0x01),
-	_INIT_DCS_CMD(0xC3, 0x4F),
-	_INIT_DCS_CMD(0xC4, 0x40),
-	_INIT_DCS_CMD(0xC5, 0x40),
-	_INIT_DCS_CMD(0xC6, 0x40),
-	_INIT_DCS_CMD(0xC7, 0x40),
-	_INIT_DCS_CMD(0xC8, 0x4D),
-	_INIT_DCS_CMD(0xC9, 0x52),
-	_INIT_DCS_CMD(0xCA, 0x51),
-	_INIT_DCS_CMD(0xCD, 0x5D),
-	_INIT_DCS_CMD(0xCE, 0x5B),
-	_INIT_DCS_CMD(0xCF, 0x4B),
-	_INIT_DCS_CMD(0xD0, 0x49),
-	_INIT_DCS_CMD(0xD1, 0x47),
-	_INIT_DCS_CMD(0xD2, 0x45),
-	_INIT_DCS_CMD(0xD3, 0x41),
-	_INIT_DCS_CMD(0xD7, 0x50),
-	_INIT_DCS_CMD(0xD8, 0x40),
-	_INIT_DCS_CMD(0xD9, 0x40),
-	_INIT_DCS_CMD(0xDA, 0x40),
-	_INIT_DCS_CMD(0xDB, 0x40),
-	_INIT_DCS_CMD(0xDC, 0x4E),
-	_INIT_DCS_CMD(0xDD, 0x52),
-	_INIT_DCS_CMD(0xDE, 0x51),
-	_INIT_DCS_CMD(0xE1, 0x5E),
-	_INIT_DCS_CMD(0xE2, 0x5C),
-	_INIT_DCS_CMD(0xE3, 0x4C),
-	_INIT_DCS_CMD(0xE4, 0x4A),
-	_INIT_DCS_CMD(0xE5, 0x48),
-	_INIT_DCS_CMD(0xE6, 0x46),
-	_INIT_DCS_CMD(0xE7, 0x42),
-	_INIT_DCS_CMD(0xB0, 0x03),
-	_INIT_DCS_CMD(0xBE, 0x03),
-	_INIT_DCS_CMD(0xCC, 0x44),
-	_INIT_DCS_CMD(0xC8, 0x07),
-	_INIT_DCS_CMD(0xC9, 0x05),
-	_INIT_DCS_CMD(0xCA, 0x42),
-	_INIT_DCS_CMD(0xCD, 0x3E),
-	_INIT_DCS_CMD(0xCF, 0x60),
-	_INIT_DCS_CMD(0xD2, 0x04),
-	_INIT_DCS_CMD(0xD3, 0x04),
-	_INIT_DCS_CMD(0xD4, 0x01),
-	_INIT_DCS_CMD(0xD5, 0x00),
-	_INIT_DCS_CMD(0xD6, 0x03),
-	_INIT_DCS_CMD(0xD7, 0x04),
-	_INIT_DCS_CMD(0xD9, 0x01),
-	_INIT_DCS_CMD(0xDB, 0x01),
-	_INIT_DCS_CMD(0xE4, 0xF0),
-	_INIT_DCS_CMD(0xE5, 0x0A),
-	_INIT_DCS_CMD(0xB0, 0x00),
-	_INIT_DCS_CMD(0xCC, 0x08),
-	_INIT_DCS_CMD(0xC2, 0x08),
-	_INIT_DCS_CMD(0xC4, 0x10),
-	_INIT_DCS_CMD(0xB0, 0x02),
-	_INIT_DCS_CMD(0xC0, 0x00),
-	_INIT_DCS_CMD(0xC1, 0x0A),
-	_INIT_DCS_CMD(0xC2, 0x20),
-	_INIT_DCS_CMD(0xC3, 0x24),
-	_INIT_DCS_CMD(0xC4, 0x23),
-	_INIT_DCS_CMD(0xC5, 0x29),
-	_INIT_DCS_CMD(0xC6, 0x23),
-	_INIT_DCS_CMD(0xC7, 0x1C),
-	_INIT_DCS_CMD(0xC8, 0x19),
-	_INIT_DCS_CMD(0xC9, 0x17),
-	_INIT_DCS_CMD(0xCA, 0x17),
-	_INIT_DCS_CMD(0xCB, 0x18),
-	_INIT_DCS_CMD(0xCC, 0x1A),
-	_INIT_DCS_CMD(0xCD, 0x1E),
-	_INIT_DCS_CMD(0xCE, 0x20),
-	_INIT_DCS_CMD(0xCF, 0x23),
-	_INIT_DCS_CMD(0xD0, 0x07),
-	_INIT_DCS_CMD(0xD1, 0x00),
-	_INIT_DCS_CMD(0xD2, 0x00),
-	_INIT_DCS_CMD(0xD3, 0x0A),
-	_INIT_DCS_CMD(0xD4, 0x13),
-	_INIT_DCS_CMD(0xD5, 0x1C),
-	_INIT_DCS_CMD(0xD6, 0x1A),
-	_INIT_DCS_CMD(0xD7, 0x13),
-	_INIT_DCS_CMD(0xD8, 0x17),
-	_INIT_DCS_CMD(0xD9, 0x1C),
-	_INIT_DCS_CMD(0xDA, 0x19),
-	_INIT_DCS_CMD(0xDB, 0x17),
-	_INIT_DCS_CMD(0xDC, 0x17),
-	_INIT_DCS_CMD(0xDD, 0x18),
-	_INIT_DCS_CMD(0xDE, 0x1A),
-	_INIT_DCS_CMD(0xDF, 0x1E),
-	_INIT_DCS_CMD(0xE0, 0x20),
-	_INIT_DCS_CMD(0xE1, 0x23),
-	_INIT_DCS_CMD(0xE2, 0x07),
-	_INIT_DCS_CMD(0X11),
-	_INIT_DELAY_CMD(120),
-	_INIT_DCS_CMD(0X29),
-	_INIT_DELAY_CMD(80),
-	{},
-};
+static int boe_init(struct mipi_dsi_device *dsi)
+{
+	msleep(24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0xE5);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x52);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x88);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x8B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x09);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x09);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x33);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x2E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x2E);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xC0);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0xA5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0xA5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x32);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x97);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x22);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA4);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x61);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x97);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB2);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCD);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xD9);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE7);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF4);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x98);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA6);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAA);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x62);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9B);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCF);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDB);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE8);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x09);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x3B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x73);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x99);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xAD);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x36);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x3A);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAE);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9E);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB8);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xD1);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDD);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE9);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF6);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x97);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x22);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA4);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x61);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x97);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB2);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCD);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xD9);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE7);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF4);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x98);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA6);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAA);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x62);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9B);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCF);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDB);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE8);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x3B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x73);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x99);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xAD);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x36);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x3A);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAE);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9E);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB8);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xD1);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDD);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE9);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF6);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x68);
+	msleep(150);
 
-static inline struct boe_panel *to_boe_panel(struct drm_panel *panel)
+	return 0;
+}
+
+static int auo_kd101n80_45na_init(struct mipi_dsi_device *dsi)
 {
-	return container_of(panel, struct boe_panel, base);
+	int ret;
+
+	msleep(24);
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret)
+		return ret;
+	msleep(120);
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+	msleep(120);
+
+	return 0;
 }
 
-static int boe_panel_init_dcs_cmd(struct boe_panel *boe)
+static int auo_b101uan08_3_init(struct mipi_dsi_device *dsi)
 {
-	struct mipi_dsi_device *dsi = boe->dsi;
-	struct drm_panel *panel = &boe->base;
-	int i, err = 0;
-
-	if (boe->desc->init_cmds) {
-		const struct panel_init_cmd *init_cmds = boe->desc->init_cmds;
-
-		for (i = 0; init_cmds[i].len != 0; i++) {
-			const struct panel_init_cmd *cmd = &init_cmds[i];
-
-			switch (cmd->type) {
-			case DELAY_CMD:
-				msleep(cmd->data[0]);
-				err = 0;
-				break;
-
-			case INIT_DCS_CMD:
-				err = mipi_dsi_dcs_write(dsi, cmd->data[0],
-							 cmd->len <= 1 ? NULL :
-							 &cmd->data[1],
-							 cmd->len - 1);
-				break;
-
-			default:
-				err = -EINVAL;
-			}
-
-			if (err < 0) {
-				dev_err(panel->dev,
-					"failed to write command %u\n", i);
-				return err;
-			}
-		}
-	}
+	msleep(24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x64);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x64);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x64);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x64);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x41);
+	msleep(150);
+
+	return 0;
+}
+
+static int starry_qfh032011_53g_init(struct mipi_dsi_device *dsi)
+{
+	int ret;
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x4D);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x52);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x51);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x5D);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x5B);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x4B);
+	mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x49);
+	mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x52);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x51);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x5E);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x5C);
+	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x4C);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x4A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x42);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x42);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x3E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xF0);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x29);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x19);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x1E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x19);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x1E);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x07);
+
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret)
+		return ret;
+	msleep(120);
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+	msleep(80);
+
 	return 0;
 }
 
+static inline struct boe_panel *to_boe_panel(struct drm_panel *panel)
+{
+	return container_of(panel, struct boe_panel, base);
+}
+
 static int boe_panel_enter_sleep_mode(struct boe_panel *boe)
 {
 	struct mipi_dsi_device *dsi = boe->dsi;
@@ -1373,10 +1349,12 @@ static int boe_panel_prepare(struct drm_panel *panel)
 	gpiod_set_value(boe->enable_gpio, 1);
 	usleep_range(6000, 10000);
 
-	ret = boe_panel_init_dcs_cmd(boe);
-	if (ret < 0) {
-		dev_err(panel->dev, "failed to init panel: %d\n", ret);
-		goto poweroff;
+	if (boe->desc->init) {
+		ret = boe->desc->init(boe->dsi);
+		if (ret < 0) {
+			dev_err(panel->dev, "failed to init panel: %d\n", ret);
+			goto poweroff;
+		}
 	}
 
 	boe->prepared = true;
@@ -1427,7 +1405,7 @@ static const struct panel_desc boe_tv110c9m_desc = {
 			| MIPI_DSI_MODE_VIDEO_HSE
 			| MIPI_DSI_CLOCK_NON_CONTINUOUS
 			| MIPI_DSI_MODE_VIDEO_BURST,
-	.init_cmds = boe_tv110c9m_init_cmd,
+	.init = boe_tv110c9m_init,
 };
 
 static const struct drm_display_mode inx_hj110iz_default_mode = {
@@ -1456,7 +1434,7 @@ static const struct panel_desc inx_hj110iz_desc = {
 			| MIPI_DSI_MODE_VIDEO_HSE
 			| MIPI_DSI_CLOCK_NON_CONTINUOUS
 			| MIPI_DSI_MODE_VIDEO_BURST,
-	.init_cmds = inx_hj110iz_init_cmd,
+	.init = inx_hj110iz_init,
 };
 
 static const struct drm_display_mode boe_tv101wum_nl6_default_mode = {
@@ -1482,7 +1460,7 @@ static const struct panel_desc boe_tv101wum_nl6_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = boe_init_cmd,
+	.init = boe_init,
 	.discharge_on_disable = false,
 };
 
@@ -1509,7 +1487,7 @@ static const struct panel_desc auo_kd101n80_45na_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = auo_kd101n80_45na_init_cmd,
+	.init = auo_kd101n80_45na_init,
 	.discharge_on_disable = true,
 };
 
@@ -1537,7 +1515,7 @@ static const struct panel_desc boe_tv101wum_n53_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = boe_init_cmd,
+	.init = boe_init,
 };
 
 static const struct drm_display_mode auo_b101uan08_3_default_mode = {
@@ -1564,7 +1542,7 @@ static const struct panel_desc auo_b101uan08_3_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = auo_b101uan08_3_init_cmd,
+	.init = auo_b101uan08_3_init,
 };
 
 static const struct drm_display_mode boe_tv105wum_nw0_default_mode = {
@@ -1591,7 +1569,7 @@ static const struct panel_desc boe_tv105wum_nw0_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = boe_init_cmd,
+	.init = boe_init,
 };
 
 static const struct drm_display_mode starry_qfh032011_53g_default_mode = {
@@ -1617,7 +1595,7 @@ static const struct panel_desc starry_qfh032011_53g_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = starry_qfh032011_53g_init_cmd,
+	.init = starry_qfh032011_53g_init,
 };
 
 static int boe_panel_get_modes(struct drm_panel *panel,

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
@ 2023-06-16 21:07   ` Linus Walleij
  0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
  To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
	Sam Ravnborg, David Airlie, Daniel Vetter
  Cc: linux-kernel, dri-devel

The boe-tv101wum-nl6 is reinventing the mechanism to send command
sequences that we usually nix during review, but I missed this one
so fixing it up myself.

Also use the explicit function calls to mipi_dsi_dcs_exit_sleep_mode()
and mipi_dsi_dcs_set_display_on() instead of reimplementing them
with homegrown sequences.

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2408 ++++++++++++------------
 1 file changed, 1193 insertions(+), 1215 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index 783234ae0f57..bc806d420ca7 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -33,7 +33,7 @@ struct panel_desc {
 
 	unsigned long mode_flags;
 	enum mipi_dsi_pixel_format format;
-	const struct panel_init_cmd *init_cmds;
+	int (*init)(struct mipi_dsi_device *dsi);
 	unsigned int lanes;
 	bool discharge_on_disable;
 };
@@ -54,1224 +54,1200 @@ struct boe_panel {
 	bool prepared;
 };
 
-enum dsi_cmd_type {
-	INIT_DCS_CMD,
-	DELAY_CMD,
-};
+static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
+{
+	int ret;
 
-struct panel_init_cmd {
-	enum dsi_cmd_type type;
-	size_t len;
-	const char *data;
-};
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD9);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x5A);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
+	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x73);
+	mipi_dsi_dcs_write_seq(dsi, 0x95, 0xE6);
+	mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF0);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x6D, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
+	mipi_dsi_dcs_write_seq(dsi, 0x77, 0x3B);
 
-#define _INIT_DCS_CMD(...) { \
-	.type = INIT_DCS_CMD, \
-	.len = sizeof((char[]){__VA_ARGS__}), \
-	.data = (char[]){__VA_ARGS__} }
-
-#define _INIT_DELAY_CMD(...) { \
-	.type = DELAY_CMD,\
-	.len = sizeof((char[]){__VA_ARGS__}), \
-	.data = (char[]){__VA_ARGS__} }
-
-static const struct panel_init_cmd boe_tv110c9m_init_cmd[] = {
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x05, 0xD9),
-	_INIT_DCS_CMD(0x07, 0x78),
-	_INIT_DCS_CMD(0x08, 0x5A),
-	_INIT_DCS_CMD(0x0D, 0x63),
-	_INIT_DCS_CMD(0x0E, 0x91),
-	_INIT_DCS_CMD(0x0F, 0x73),
-	_INIT_DCS_CMD(0x95, 0xE6),
-	_INIT_DCS_CMD(0x96, 0xF0),
-	_INIT_DCS_CMD(0x30, 0x00),
-	_INIT_DCS_CMD(0x6D, 0x66),
-	_INIT_DCS_CMD(0x75, 0xA2),
-	_INIT_DCS_CMD(0x77, 0x3B),
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
 
-	_INIT_DCS_CMD(0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
-	_INIT_DCS_CMD(0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
-	_INIT_DCS_CMD(0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
-	_INIT_DCS_CMD(0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-
-	_INIT_DCS_CMD(0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
-	_INIT_DCS_CMD(0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
-	_INIT_DCS_CMD(0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
-	_INIT_DCS_CMD(0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-	_INIT_DCS_CMD(0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
-	_INIT_DCS_CMD(0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
-	_INIT_DCS_CMD(0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
-	_INIT_DCS_CMD(0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-
-	_INIT_DCS_CMD(0xFF, 0x21),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
-	_INIT_DCS_CMD(0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
-	_INIT_DCS_CMD(0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-
-	_INIT_DCS_CMD(0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
-	_INIT_DCS_CMD(0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
-	_INIT_DCS_CMD(0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
-	_INIT_DCS_CMD(0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-	_INIT_DCS_CMD(0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
-
-	_INIT_DCS_CMD(0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
-	_INIT_DCS_CMD(0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
-	_INIT_DCS_CMD(0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-
-	_INIT_DCS_CMD(0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
-	_INIT_DCS_CMD(0xFF, 0x24),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x00, 0x00),
-	_INIT_DCS_CMD(0x01, 0x00),
-
-	_INIT_DCS_CMD(0x02, 0x1C),
-	_INIT_DCS_CMD(0x03, 0x1C),
-
-	_INIT_DCS_CMD(0x04, 0x1D),
-	_INIT_DCS_CMD(0x05, 0x1D),
-
-	_INIT_DCS_CMD(0x06, 0x04),
-	_INIT_DCS_CMD(0x07, 0x04),
-
-	_INIT_DCS_CMD(0x08, 0x0F),
-	_INIT_DCS_CMD(0x09, 0x0F),
-
-	_INIT_DCS_CMD(0x0A, 0x0E),
-	_INIT_DCS_CMD(0x0B, 0x0E),
-
-	_INIT_DCS_CMD(0x0C, 0x0D),
-	_INIT_DCS_CMD(0x0D, 0x0D),
-
-	_INIT_DCS_CMD(0x0E, 0x0C),
-	_INIT_DCS_CMD(0x0F, 0x0C),
-
-	_INIT_DCS_CMD(0x10, 0x08),
-	_INIT_DCS_CMD(0x11, 0x08),
-
-	_INIT_DCS_CMD(0x12, 0x00),
-	_INIT_DCS_CMD(0x13, 0x00),
-	_INIT_DCS_CMD(0x14, 0x00),
-	_INIT_DCS_CMD(0x15, 0x00),
-
-	_INIT_DCS_CMD(0x16, 0x00),
-	_INIT_DCS_CMD(0x17, 0x00),
-
-	_INIT_DCS_CMD(0x18, 0x1C),
-	_INIT_DCS_CMD(0x19, 0x1C),
-
-	_INIT_DCS_CMD(0x1A, 0x1D),
-	_INIT_DCS_CMD(0x1B, 0x1D),
-
-	_INIT_DCS_CMD(0x1C, 0x04),
-	_INIT_DCS_CMD(0x1D, 0x04),
-
-	_INIT_DCS_CMD(0x1E, 0x0F),
-	_INIT_DCS_CMD(0x1F, 0x0F),
-
-	_INIT_DCS_CMD(0x20, 0x0E),
-	_INIT_DCS_CMD(0x21, 0x0E),
-
-	_INIT_DCS_CMD(0x22, 0x0D),
-	_INIT_DCS_CMD(0x23, 0x0D),
-
-	_INIT_DCS_CMD(0x24, 0x0C),
-	_INIT_DCS_CMD(0x25, 0x0C),
-
-	_INIT_DCS_CMD(0x26, 0x08),
-	_INIT_DCS_CMD(0x27, 0x08),
-
-	_INIT_DCS_CMD(0x28, 0x00),
-	_INIT_DCS_CMD(0x29, 0x00),
-	_INIT_DCS_CMD(0x2A, 0x00),
-	_INIT_DCS_CMD(0x2B, 0x00),
-
-	_INIT_DCS_CMD(0x2D, 0x20),
-	_INIT_DCS_CMD(0x2F, 0x0A),
-	_INIT_DCS_CMD(0x30, 0x44),
-	_INIT_DCS_CMD(0x33, 0x0C),
-	_INIT_DCS_CMD(0x34, 0x32),
-
-	_INIT_DCS_CMD(0x37, 0x44),
-	_INIT_DCS_CMD(0x38, 0x40),
-	_INIT_DCS_CMD(0x39, 0x00),
-	_INIT_DCS_CMD(0x3A, 0x5D),
-	_INIT_DCS_CMD(0x3B, 0x60),
-	_INIT_DCS_CMD(0x3D, 0x42),
-	_INIT_DCS_CMD(0x3F, 0x06),
-	_INIT_DCS_CMD(0x43, 0x06),
-	_INIT_DCS_CMD(0x47, 0x66),
-	_INIT_DCS_CMD(0x4A, 0x5D),
-	_INIT_DCS_CMD(0x4B, 0x60),
-	_INIT_DCS_CMD(0x4C, 0x91),
-	_INIT_DCS_CMD(0x4D, 0x21),
-	_INIT_DCS_CMD(0x4E, 0x43),
-	_INIT_DCS_CMD(0x51, 0x12),
-	_INIT_DCS_CMD(0x52, 0x34),
-	_INIT_DCS_CMD(0x55, 0x82, 0x02),
-	_INIT_DCS_CMD(0x56, 0x04),
-	_INIT_DCS_CMD(0x58, 0x21),
-	_INIT_DCS_CMD(0x59, 0x30),
-	_INIT_DCS_CMD(0x5A, 0x60),
-	_INIT_DCS_CMD(0x5B, 0x50),
-	_INIT_DCS_CMD(0x5E, 0x00, 0x06),
-	_INIT_DCS_CMD(0x5F, 0x00),
-	_INIT_DCS_CMD(0x65, 0x82),
-	_INIT_DCS_CMD(0x7E, 0x20),
-	_INIT_DCS_CMD(0x7F, 0x3C),
-	_INIT_DCS_CMD(0x82, 0x04),
-	_INIT_DCS_CMD(0x97, 0xC0),
-
-	_INIT_DCS_CMD(0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00),
-	_INIT_DCS_CMD(0x91, 0x44),
-	_INIT_DCS_CMD(0x92, 0xA9),
-	_INIT_DCS_CMD(0x93, 0x1A),
-	_INIT_DCS_CMD(0x94, 0x96),
-	_INIT_DCS_CMD(0xD7, 0x55),
-	_INIT_DCS_CMD(0xDA, 0x0A),
-	_INIT_DCS_CMD(0xDE, 0x08),
-	_INIT_DCS_CMD(0xDB, 0x05),
-	_INIT_DCS_CMD(0xDC, 0xA9),
-	_INIT_DCS_CMD(0xDD, 0x22),
-
-	_INIT_DCS_CMD(0xDF, 0x05),
-	_INIT_DCS_CMD(0xE0, 0xA9),
-	_INIT_DCS_CMD(0xE1, 0x05),
-	_INIT_DCS_CMD(0xE2, 0xA9),
-	_INIT_DCS_CMD(0xE3, 0x05),
-	_INIT_DCS_CMD(0xE4, 0xA9),
-	_INIT_DCS_CMD(0xE5, 0x05),
-	_INIT_DCS_CMD(0xE6, 0xA9),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x8D, 0x00),
-	_INIT_DCS_CMD(0x8E, 0x00),
-	_INIT_DCS_CMD(0xB5, 0x90),
-	_INIT_DCS_CMD(0xFF, 0x25),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x05, 0x00),
-	_INIT_DCS_CMD(0x19, 0x07),
-	_INIT_DCS_CMD(0x1F, 0x60),
-	_INIT_DCS_CMD(0x20, 0x50),
-	_INIT_DCS_CMD(0x26, 0x60),
-	_INIT_DCS_CMD(0x27, 0x50),
-	_INIT_DCS_CMD(0x33, 0x60),
-	_INIT_DCS_CMD(0x34, 0x50),
-	_INIT_DCS_CMD(0x3F, 0xE0),
-	_INIT_DCS_CMD(0x40, 0x00),
-	_INIT_DCS_CMD(0x44, 0x00),
-	_INIT_DCS_CMD(0x45, 0x40),
-	_INIT_DCS_CMD(0x48, 0x60),
-	_INIT_DCS_CMD(0x49, 0x50),
-	_INIT_DCS_CMD(0x5B, 0x00),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x5E, 0xD0),
-	_INIT_DCS_CMD(0x61, 0x60),
-	_INIT_DCS_CMD(0x62, 0x50),
-	_INIT_DCS_CMD(0xF1, 0x10),
-	_INIT_DCS_CMD(0xFF, 0x2A),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x64, 0x16),
-	_INIT_DCS_CMD(0x67, 0x16),
-	_INIT_DCS_CMD(0x6A, 0x16),
-
-	_INIT_DCS_CMD(0x70, 0x30),
-
-	_INIT_DCS_CMD(0xA2, 0xF3),
-	_INIT_DCS_CMD(0xA3, 0xFF),
-	_INIT_DCS_CMD(0xA4, 0xFF),
-	_INIT_DCS_CMD(0xA5, 0xFF),
-
-	_INIT_DCS_CMD(0xD6, 0x08),
-
-	_INIT_DCS_CMD(0xFF, 0x26),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x00, 0xA1),
-
-	_INIT_DCS_CMD(0x02, 0x31),
-	_INIT_DCS_CMD(0x04, 0x28),
-	_INIT_DCS_CMD(0x06, 0x30),
-	_INIT_DCS_CMD(0x0C, 0x16),
-	_INIT_DCS_CMD(0x0D, 0x0D),
-	_INIT_DCS_CMD(0x0F, 0x00),
-	_INIT_DCS_CMD(0x11, 0x00),
-	_INIT_DCS_CMD(0x12, 0x50),
-	_INIT_DCS_CMD(0x13, 0x56),
-	_INIT_DCS_CMD(0x14, 0x57),
-	_INIT_DCS_CMD(0x15, 0x00),
-	_INIT_DCS_CMD(0x16, 0x10),
-	_INIT_DCS_CMD(0x17, 0xA0),
-	_INIT_DCS_CMD(0x18, 0x86),
-	_INIT_DCS_CMD(0x19, 0x0D),
-	_INIT_DCS_CMD(0x1A, 0x7F),
-	_INIT_DCS_CMD(0x1B, 0x0C),
-	_INIT_DCS_CMD(0x1C, 0xBF),
-	_INIT_DCS_CMD(0x22, 0x00),
-	_INIT_DCS_CMD(0x23, 0x00),
-	_INIT_DCS_CMD(0x2A, 0x0D),
-	_INIT_DCS_CMD(0x2B, 0x7F),
-
-	_INIT_DCS_CMD(0x1D, 0x00),
-	_INIT_DCS_CMD(0x1E, 0x65),
-	_INIT_DCS_CMD(0x1F, 0x65),
-	_INIT_DCS_CMD(0x24, 0x00),
-	_INIT_DCS_CMD(0x25, 0x65),
-	_INIT_DCS_CMD(0x2F, 0x05),
-	_INIT_DCS_CMD(0x30, 0x65),
-	_INIT_DCS_CMD(0x31, 0x05),
-	_INIT_DCS_CMD(0x32, 0x7D),
-	_INIT_DCS_CMD(0x39, 0x00),
-	_INIT_DCS_CMD(0x3A, 0x65),
-	_INIT_DCS_CMD(0x20, 0x01),
-	_INIT_DCS_CMD(0x33, 0x11),
-	_INIT_DCS_CMD(0x34, 0x78),
-	_INIT_DCS_CMD(0x35, 0x16),
-	_INIT_DCS_CMD(0xC8, 0x04),
-	_INIT_DCS_CMD(0xC9, 0x9E),
-	_INIT_DCS_CMD(0xCA, 0x4E),
-	_INIT_DCS_CMD(0xCB, 0x00),
-
-	_INIT_DCS_CMD(0xA9, 0x49),
-	_INIT_DCS_CMD(0xAA, 0x4B),
-	_INIT_DCS_CMD(0xAB, 0x48),
-	_INIT_DCS_CMD(0xAC, 0x43),
-	_INIT_DCS_CMD(0xAD, 0x40),
-	_INIT_DCS_CMD(0xAE, 0x50),
-	_INIT_DCS_CMD(0xAF, 0x44),
-	_INIT_DCS_CMD(0xB0, 0x54),
-	_INIT_DCS_CMD(0xB1, 0x4E),
-	_INIT_DCS_CMD(0xB2, 0x4D),
-	_INIT_DCS_CMD(0xB3, 0x4C),
-	_INIT_DCS_CMD(0xB4, 0x41),
-	_INIT_DCS_CMD(0xB5, 0x47),
-	_INIT_DCS_CMD(0xB6, 0x53),
-	_INIT_DCS_CMD(0xB7, 0x3E),
-	_INIT_DCS_CMD(0xB8, 0x51),
-	_INIT_DCS_CMD(0xB9, 0x3C),
-	_INIT_DCS_CMD(0xBA, 0x3B),
-	_INIT_DCS_CMD(0xBB, 0x46),
-	_INIT_DCS_CMD(0xBC, 0x45),
-	_INIT_DCS_CMD(0xBD, 0x55),
-	_INIT_DCS_CMD(0xBE, 0x3D),
-	_INIT_DCS_CMD(0xBF, 0x3F),
-	_INIT_DCS_CMD(0xC0, 0x52),
-	_INIT_DCS_CMD(0xC1, 0x4A),
-	_INIT_DCS_CMD(0xC2, 0x39),
-	_INIT_DCS_CMD(0xC3, 0x4F),
-	_INIT_DCS_CMD(0xC4, 0x3A),
-	_INIT_DCS_CMD(0xC5, 0x42),
-	_INIT_DCS_CMD(0xFF, 0x27),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x56, 0x06),
-	_INIT_DCS_CMD(0x58, 0x80),
-	_INIT_DCS_CMD(0x59, 0x75),
-	_INIT_DCS_CMD(0x5A, 0x00),
-	_INIT_DCS_CMD(0x5B, 0x02),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x5E, 0x20),
-	_INIT_DCS_CMD(0x5F, 0x10),
-	_INIT_DCS_CMD(0x60, 0x00),
-	_INIT_DCS_CMD(0x61, 0x2E),
-	_INIT_DCS_CMD(0x62, 0x00),
-	_INIT_DCS_CMD(0x63, 0x01),
-	_INIT_DCS_CMD(0x64, 0x43),
-	_INIT_DCS_CMD(0x65, 0x2D),
-	_INIT_DCS_CMD(0x66, 0x00),
-	_INIT_DCS_CMD(0x67, 0x01),
-	_INIT_DCS_CMD(0x68, 0x44),
-
-	_INIT_DCS_CMD(0x00, 0x00),
-	_INIT_DCS_CMD(0x78, 0x00),
-	_INIT_DCS_CMD(0xC3, 0x00),
-
-	_INIT_DCS_CMD(0xFF, 0x2A),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x22, 0x2F),
-	_INIT_DCS_CMD(0x23, 0x08),
-
-	_INIT_DCS_CMD(0x24, 0x00),
-	_INIT_DCS_CMD(0x25, 0x65),
-	_INIT_DCS_CMD(0x26, 0xF8),
-	_INIT_DCS_CMD(0x27, 0x00),
-	_INIT_DCS_CMD(0x28, 0x1A),
-	_INIT_DCS_CMD(0x29, 0x00),
-	_INIT_DCS_CMD(0x2A, 0x1A),
-	_INIT_DCS_CMD(0x2B, 0x00),
-	_INIT_DCS_CMD(0x2D, 0x1A),
-
-	_INIT_DCS_CMD(0xFF, 0x23),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x00, 0x80),
-	_INIT_DCS_CMD(0x07, 0x00),
-
-	_INIT_DCS_CMD(0xFF, 0xE0),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x14, 0x60),
-	_INIT_DCS_CMD(0x16, 0xC0),
-
-	_INIT_DCS_CMD(0xFF, 0xF0),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x3A, 0x08),
-
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0xB9, 0x01),
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x18, 0x40),
-
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0xB9, 0x02),
-	_INIT_DCS_CMD(0x35, 0x00),
-	_INIT_DCS_CMD(0x51, 0x00, 0xFF),
-	_INIT_DCS_CMD(0x53, 0x24),
-	_INIT_DCS_CMD(0x55, 0x00),
-	_INIT_DCS_CMD(0xBB, 0x13),
-	_INIT_DCS_CMD(0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04),
-	_INIT_DELAY_CMD(100),
-	_INIT_DCS_CMD(0x11),
-	_INIT_DELAY_CMD(200),
-	_INIT_DCS_CMD(0x29),
-	_INIT_DELAY_CMD(100),
-	{},
-};
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x01, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0x03, 0x1C);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x1D);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x1D);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x04);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x09, 0x0F);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x0E);
+	mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x0E);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0C);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x10, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x17, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x1C);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x1D);
+	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x1D);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x04);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x0F);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x0E);
+	mipi_dsi_dcs_write_seq(dsi, 0x21, 0x0E);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x0D);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0C);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x5D);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x42);
+	mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x43, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x47, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0x4A, 0x5D);
+	mipi_dsi_dcs_write_seq(dsi, 0x4B, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x4C, 0x91);
+	mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x12);
+	mipi_dsi_dcs_write_seq(dsi, 0x52, 0x34);
+	mipi_dsi_dcs_write_seq(dsi, 0x55, 0x82, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x82);
+	mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
+	mipi_dsi_dcs_write_seq(dsi, 0x82, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x97, 0xC0);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x92, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x94, 0x96);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x55);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x22);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x8D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x8E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x90);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x3F, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x44, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x45, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x48, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x49, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0xD0);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0x67, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x16);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x70, 0x30);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xA2, 0xF3);
+	mipi_dsi_dcs_write_seq(dsi, 0xA3, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xA5, 0xFF);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
+	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
+	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
+	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x31, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0x32, 0x7D);
+	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x9E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x49);
+	mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4B);
+	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0xAF, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x54);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x4D);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x4C);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x53);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x3E);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x51);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x3C);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x3B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x55);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x3D);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x52);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x4A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x3A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x42);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
+	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
+	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
+	mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x68, 0x44);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x78, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0xC0);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x00, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0x55, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
+	msleep(100);
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret)
+		return ret;
+	msleep(200);
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+	msleep(100);
 
-static const struct panel_init_cmd inx_hj110iz_init_cmd[] = {
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x05, 0xD1),
-	_INIT_DCS_CMD(0x0D, 0x63),
-	_INIT_DCS_CMD(0x07, 0x8C),
-	_INIT_DCS_CMD(0x08, 0x4B),
-	_INIT_DCS_CMD(0x0E, 0x91),
-	_INIT_DCS_CMD(0x0F, 0x69),
-	_INIT_DCS_CMD(0x95, 0xF5),
-	_INIT_DCS_CMD(0x96, 0xF5),
-	_INIT_DCS_CMD(0x9D, 0x00),
-	_INIT_DCS_CMD(0x9E, 0x00),
-	_INIT_DCS_CMD(0x69, 0x98),
-	_INIT_DCS_CMD(0x75, 0xA2),
-	_INIT_DCS_CMD(0x77, 0xB3),
-	_INIT_DCS_CMD(0xFF, 0x24),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x91, 0x44),
-	_INIT_DCS_CMD(0x92, 0x7A),
-	_INIT_DCS_CMD(0x93, 0x1A),
-	_INIT_DCS_CMD(0x94, 0x40),
-	_INIT_DCS_CMD(0x9A, 0x08),
-	_INIT_DCS_CMD(0x60, 0x96),
-	_INIT_DCS_CMD(0x61, 0xD0),
-	_INIT_DCS_CMD(0x63, 0x70),
-	_INIT_DCS_CMD(0xC2, 0xCF),
-	_INIT_DCS_CMD(0x9B, 0x0F),
-	_INIT_DCS_CMD(0x9A, 0x08),
-	_INIT_DCS_CMD(0x00, 0x03),
-	_INIT_DCS_CMD(0x01, 0x03),
-	_INIT_DCS_CMD(0x02, 0x03),
-	_INIT_DCS_CMD(0x03, 0x03),
-	_INIT_DCS_CMD(0x04, 0x03),
-	_INIT_DCS_CMD(0x05, 0x03),
-	_INIT_DCS_CMD(0x06, 0x22),
-	_INIT_DCS_CMD(0x07, 0x06),
-	_INIT_DCS_CMD(0x08, 0x00),
-	_INIT_DCS_CMD(0x09, 0x1D),
-	_INIT_DCS_CMD(0x0A, 0x1C),
-	_INIT_DCS_CMD(0x0B, 0x13),
-	_INIT_DCS_CMD(0x0C, 0x12),
-	_INIT_DCS_CMD(0x0D, 0x11),
-	_INIT_DCS_CMD(0x0E, 0x10),
-	_INIT_DCS_CMD(0x0F, 0x0F),
-	_INIT_DCS_CMD(0x10, 0x0E),
-	_INIT_DCS_CMD(0x11, 0x0D),
-	_INIT_DCS_CMD(0x12, 0x0C),
-	_INIT_DCS_CMD(0x13, 0x04),
-	_INIT_DCS_CMD(0x14, 0x03),
-	_INIT_DCS_CMD(0x15, 0x03),
-	_INIT_DCS_CMD(0x16, 0x03),
-	_INIT_DCS_CMD(0x17, 0x03),
-	_INIT_DCS_CMD(0x18, 0x03),
-	_INIT_DCS_CMD(0x19, 0x03),
-	_INIT_DCS_CMD(0x1A, 0x03),
-	_INIT_DCS_CMD(0x1B, 0x03),
-	_INIT_DCS_CMD(0x1C, 0x22),
-	_INIT_DCS_CMD(0x1D, 0x06),
-	_INIT_DCS_CMD(0x1E, 0x00),
-	_INIT_DCS_CMD(0x1F, 0x1D),
-	_INIT_DCS_CMD(0x20, 0x1C),
-	_INIT_DCS_CMD(0x21, 0x13),
-	_INIT_DCS_CMD(0x22, 0x12),
-	_INIT_DCS_CMD(0x23, 0x11),
-	_INIT_DCS_CMD(0x24, 0x10),
-	_INIT_DCS_CMD(0x25, 0x0F),
-	_INIT_DCS_CMD(0x26, 0x0E),
-	_INIT_DCS_CMD(0x27, 0x0D),
-	_INIT_DCS_CMD(0x28, 0x0C),
-	_INIT_DCS_CMD(0x29, 0x04),
-	_INIT_DCS_CMD(0x2A, 0x03),
-	_INIT_DCS_CMD(0x2B, 0x03),
-
-	_INIT_DCS_CMD(0x2F, 0x05),
-	_INIT_DCS_CMD(0x30, 0x32),
-	_INIT_DCS_CMD(0x31, 0x43),
-	_INIT_DCS_CMD(0x33, 0x05),
-	_INIT_DCS_CMD(0x34, 0x32),
-	_INIT_DCS_CMD(0x35, 0x43),
-	_INIT_DCS_CMD(0x37, 0x44),
-	_INIT_DCS_CMD(0x38, 0x40),
-	_INIT_DCS_CMD(0x39, 0x00),
-	_INIT_DCS_CMD(0x3A, 0x18),
-	_INIT_DCS_CMD(0x3B, 0x00),
-	_INIT_DCS_CMD(0x3D, 0x93),
-	_INIT_DCS_CMD(0xAB, 0x44),
-	_INIT_DCS_CMD(0xAC, 0x40),
-
-	_INIT_DCS_CMD(0x4D, 0x21),
-	_INIT_DCS_CMD(0x4E, 0x43),
-	_INIT_DCS_CMD(0x4F, 0x65),
-	_INIT_DCS_CMD(0x50, 0x87),
-	_INIT_DCS_CMD(0x51, 0x78),
-	_INIT_DCS_CMD(0x52, 0x56),
-	_INIT_DCS_CMD(0x53, 0x34),
-	_INIT_DCS_CMD(0x54, 0x21),
-	_INIT_DCS_CMD(0x55, 0x83),
-	_INIT_DCS_CMD(0x56, 0x08),
-	_INIT_DCS_CMD(0x58, 0x21),
-	_INIT_DCS_CMD(0x59, 0x40),
-	_INIT_DCS_CMD(0x5A, 0x00),
-	_INIT_DCS_CMD(0x5B, 0x2C),
-	_INIT_DCS_CMD(0x5E, 0x00, 0x10),
-	_INIT_DCS_CMD(0x5F, 0x00),
-
-	_INIT_DCS_CMD(0x7A, 0x00),
-	_INIT_DCS_CMD(0x7B, 0x00),
-	_INIT_DCS_CMD(0x7C, 0x00),
-	_INIT_DCS_CMD(0x7D, 0x00),
-	_INIT_DCS_CMD(0x7E, 0x20),
-	_INIT_DCS_CMD(0x7F, 0x3C),
-	_INIT_DCS_CMD(0x80, 0x00),
-	_INIT_DCS_CMD(0x81, 0x00),
-	_INIT_DCS_CMD(0x82, 0x08),
-	_INIT_DCS_CMD(0x97, 0x02),
-	_INIT_DCS_CMD(0xC5, 0x10),
-	_INIT_DCS_CMD(0xDA, 0x05),
-	_INIT_DCS_CMD(0xDB, 0x01),
-	_INIT_DCS_CMD(0xDC, 0x7A),
-	_INIT_DCS_CMD(0xDD, 0x55),
-	_INIT_DCS_CMD(0xDE, 0x27),
-	_INIT_DCS_CMD(0xDF, 0x01),
-	_INIT_DCS_CMD(0xE0, 0x7A),
-	_INIT_DCS_CMD(0xE1, 0x01),
-	_INIT_DCS_CMD(0xE2, 0x7A),
-	_INIT_DCS_CMD(0xE3, 0x01),
-	_INIT_DCS_CMD(0xE4, 0x7A),
-	_INIT_DCS_CMD(0xE5, 0x01),
-	_INIT_DCS_CMD(0xE6, 0x7A),
-	_INIT_DCS_CMD(0xE7, 0x00),
-	_INIT_DCS_CMD(0xE8, 0x00),
-	_INIT_DCS_CMD(0xE9, 0x01),
-	_INIT_DCS_CMD(0xEA, 0x7A),
-	_INIT_DCS_CMD(0xEB, 0x01),
-	_INIT_DCS_CMD(0xEE, 0x7A),
-	_INIT_DCS_CMD(0xEF, 0x01),
-	_INIT_DCS_CMD(0xF0, 0x7A),
-
-	_INIT_DCS_CMD(0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00),
-	_INIT_DCS_CMD(0xFF, 0x25),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x05, 0x00),
-
-	_INIT_DCS_CMD(0x13, 0x02),
-	_INIT_DCS_CMD(0x14, 0xDF),
-	_INIT_DCS_CMD(0xF1, 0x10),
-	_INIT_DCS_CMD(0x1E, 0x00),
-	_INIT_DCS_CMD(0x1F, 0x00),
-	_INIT_DCS_CMD(0x20, 0x2C),
-	_INIT_DCS_CMD(0x25, 0x00),
-	_INIT_DCS_CMD(0x26, 0x00),
-	_INIT_DCS_CMD(0x27, 0x2C),
-	_INIT_DCS_CMD(0x3F, 0x80),
-	_INIT_DCS_CMD(0x40, 0x00),
-	_INIT_DCS_CMD(0x43, 0x00),
-
-	_INIT_DCS_CMD(0x44, 0x18),
-	_INIT_DCS_CMD(0x45, 0x00),
-
-	_INIT_DCS_CMD(0x48, 0x00),
-	_INIT_DCS_CMD(0x49, 0x2C),
-	_INIT_DCS_CMD(0x5B, 0x80),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x5E, 0x00),
-	_INIT_DCS_CMD(0x61, 0x00),
-	_INIT_DCS_CMD(0x62, 0x2C),
-	_INIT_DCS_CMD(0x68, 0x10),
-	_INIT_DCS_CMD(0xFF, 0x26),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x00, 0xA1),
-	_INIT_DCS_CMD(0x02, 0x31),
-	_INIT_DCS_CMD(0x0A, 0xF2),
-	_INIT_DCS_CMD(0x04, 0x28),
-	_INIT_DCS_CMD(0x06, 0x30),
-	_INIT_DCS_CMD(0x0C, 0x16),
-	_INIT_DCS_CMD(0x0D, 0x0D),
-	_INIT_DCS_CMD(0x0F, 0x00),
-	_INIT_DCS_CMD(0x11, 0x00),
-	_INIT_DCS_CMD(0x12, 0x50),
-	_INIT_DCS_CMD(0x13, 0x56),
-	_INIT_DCS_CMD(0x14, 0x57),
-	_INIT_DCS_CMD(0x15, 0x00),
-	_INIT_DCS_CMD(0x16, 0x10),
-	_INIT_DCS_CMD(0x17, 0xA0),
-	_INIT_DCS_CMD(0x18, 0x86),
-	_INIT_DCS_CMD(0x22, 0x00),
-	_INIT_DCS_CMD(0x23, 0x00),
-	_INIT_DCS_CMD(0x19, 0x0D),
-	_INIT_DCS_CMD(0x1A, 0x7F),
-	_INIT_DCS_CMD(0x1B, 0x0C),
-	_INIT_DCS_CMD(0x1C, 0xBF),
-	_INIT_DCS_CMD(0x2A, 0x0D),
-	_INIT_DCS_CMD(0x2B, 0x7F),
-	_INIT_DCS_CMD(0x20, 0x00),
-
-	_INIT_DCS_CMD(0x1D, 0x00),
-	_INIT_DCS_CMD(0x1E, 0x78),
-	_INIT_DCS_CMD(0x1F, 0x78),
-
-	_INIT_DCS_CMD(0x2F, 0x03),
-	_INIT_DCS_CMD(0x30, 0x78),
-	_INIT_DCS_CMD(0x33, 0x78),
-	_INIT_DCS_CMD(0x34, 0x66),
-	_INIT_DCS_CMD(0x35, 0x11),
-
-	_INIT_DCS_CMD(0x39, 0x10),
-	_INIT_DCS_CMD(0x3A, 0x78),
-	_INIT_DCS_CMD(0x3B, 0x06),
-
-	_INIT_DCS_CMD(0xC8, 0x04),
-	_INIT_DCS_CMD(0xC9, 0x84),
-	_INIT_DCS_CMD(0xCA, 0x4E),
-	_INIT_DCS_CMD(0xCB, 0x00),
-
-	_INIT_DCS_CMD(0xA9, 0x50),
-	_INIT_DCS_CMD(0xAA, 0x4F),
-	_INIT_DCS_CMD(0xAB, 0x4D),
-	_INIT_DCS_CMD(0xAC, 0x4A),
-	_INIT_DCS_CMD(0xAD, 0x48),
-	_INIT_DCS_CMD(0xAE, 0x46),
-	_INIT_DCS_CMD(0xFF, 0x27),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0xC0, 0x18),
-	_INIT_DCS_CMD(0xC1, 0x00),
-	_INIT_DCS_CMD(0xC2, 0x00),
-	_INIT_DCS_CMD(0x56, 0x06),
-	_INIT_DCS_CMD(0x58, 0x80),
-	_INIT_DCS_CMD(0x59, 0x75),
-	_INIT_DCS_CMD(0x5A, 0x00),
-	_INIT_DCS_CMD(0x5B, 0x02),
-	_INIT_DCS_CMD(0x5C, 0x00),
-	_INIT_DCS_CMD(0x5D, 0x00),
-	_INIT_DCS_CMD(0x5E, 0x20),
-	_INIT_DCS_CMD(0x5F, 0x10),
-	_INIT_DCS_CMD(0x60, 0x00),
-	_INIT_DCS_CMD(0x61, 0x2E),
-	_INIT_DCS_CMD(0x62, 0x00),
-	_INIT_DCS_CMD(0x63, 0x01),
-	_INIT_DCS_CMD(0x64, 0x43),
-	_INIT_DCS_CMD(0x65, 0x2D),
-	_INIT_DCS_CMD(0x66, 0x00),
-	_INIT_DCS_CMD(0x67, 0x01),
-	_INIT_DCS_CMD(0x68, 0x43),
-	_INIT_DCS_CMD(0x98, 0x01),
-	_INIT_DCS_CMD(0xB4, 0x03),
-	_INIT_DCS_CMD(0x9B, 0xBD),
-	_INIT_DCS_CMD(0xA0, 0x90),
-	_INIT_DCS_CMD(0xAB, 0x1B),
-	_INIT_DCS_CMD(0xBC, 0x0C),
-	_INIT_DCS_CMD(0xBD, 0x28),
-
-	_INIT_DCS_CMD(0xFF, 0x2A),
-	_INIT_DCS_CMD(0xFB, 0x01),
-
-	_INIT_DCS_CMD(0x22, 0x2F),
-	_INIT_DCS_CMD(0x23, 0x08),
-
-	_INIT_DCS_CMD(0x24, 0x00),
-	_INIT_DCS_CMD(0x25, 0x65),
-	_INIT_DCS_CMD(0x26, 0xF8),
-	_INIT_DCS_CMD(0x27, 0x00),
-	_INIT_DCS_CMD(0x28, 0x1A),
-	_INIT_DCS_CMD(0x29, 0x00),
-	_INIT_DCS_CMD(0x2A, 0x1A),
-	_INIT_DCS_CMD(0x2B, 0x00),
-	_INIT_DCS_CMD(0x2D, 0x1A),
-
-	_INIT_DCS_CMD(0x64, 0x96),
-	_INIT_DCS_CMD(0x65, 0x00),
-	_INIT_DCS_CMD(0x66, 0x00),
-	_INIT_DCS_CMD(0x6A, 0x96),
-	_INIT_DCS_CMD(0x6B, 0x00),
-	_INIT_DCS_CMD(0x6C, 0x00),
-	_INIT_DCS_CMD(0x70, 0x92),
-	_INIT_DCS_CMD(0x71, 0x00),
-	_INIT_DCS_CMD(0x72, 0x00),
-	_INIT_DCS_CMD(0xA2, 0x33),
-	_INIT_DCS_CMD(0xA3, 0x30),
-	_INIT_DCS_CMD(0xA4, 0xC0),
-	_INIT_DCS_CMD(0xE8, 0x00),
-	_INIT_DCS_CMD(0x97, 0x3C),
-	_INIT_DCS_CMD(0x98, 0x02),
-	_INIT_DCS_CMD(0x99, 0x95),
-	_INIT_DCS_CMD(0x9A, 0x06),
-	_INIT_DCS_CMD(0x9B, 0x00),
-	_INIT_DCS_CMD(0x9C, 0x0B),
-	_INIT_DCS_CMD(0x9D, 0x0A),
-	_INIT_DCS_CMD(0x9E, 0x90),
-	_INIT_DCS_CMD(0xFF, 0xF0),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x3A, 0x08),
-	_INIT_DCS_CMD(0xFF, 0xD0),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x00, 0x33),
-	_INIT_DCS_CMD(0x08, 0x01),
-	_INIT_DCS_CMD(0x09, 0xBF),
-	_INIT_DCS_CMD(0x2F, 0x33),
-	_INIT_DCS_CMD(0xFF, 0x23),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x00, 0x80),
-	_INIT_DCS_CMD(0x07, 0x00),
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0x30, 0x00),
-	_INIT_DCS_CMD(0xFF, 0x24),
-	_INIT_DCS_CMD(0x5C, 0x88),
-	_INIT_DCS_CMD(0x5D, 0x08),
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xB9, 0x01),
-	_INIT_DCS_CMD(0xFF, 0x20),
-	_INIT_DCS_CMD(0x18, 0x40),
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xB9, 0x02),
-	_INIT_DCS_CMD(0xFF, 0x10),
-	_INIT_DCS_CMD(0xFB, 0x01),
-	_INIT_DCS_CMD(0xBB, 0x13),
-	_INIT_DCS_CMD(0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04),
-	_INIT_DCS_CMD(0x35, 0x00),
-	_INIT_DCS_CMD(0x51, 0x0F, 0xFF),
-	_INIT_DCS_CMD(0x53, 0x24),
-	_INIT_DELAY_CMD(100),
-	_INIT_DCS_CMD(0x11),
-	_INIT_DELAY_CMD(200),
-	_INIT_DCS_CMD(0x29),
-	_INIT_DELAY_CMD(100),
-	{},
-};
+	return 0;
+}
 
-static const struct panel_init_cmd boe_init_cmd[] = {
-	_INIT_DELAY_CMD(24),
-	_INIT_DCS_CMD(0xB0, 0x05),
-	_INIT_DCS_CMD(0xB1, 0xE5),
-	_INIT_DCS_CMD(0xB3, 0x52),
-	_INIT_DCS_CMD(0xB0, 0x00),
-	_INIT_DCS_CMD(0xB3, 0x88),
-	_INIT_DCS_CMD(0xB0, 0x04),
-	_INIT_DCS_CMD(0xB8, 0x00),
-	_INIT_DCS_CMD(0xB0, 0x00),
-	_INIT_DCS_CMD(0xB6, 0x03),
-	_INIT_DCS_CMD(0xBA, 0x8B),
-	_INIT_DCS_CMD(0xBF, 0x1A),
-	_INIT_DCS_CMD(0xC0, 0x0F),
-	_INIT_DCS_CMD(0xC2, 0x0C),
-	_INIT_DCS_CMD(0xC3, 0x02),
-	_INIT_DCS_CMD(0xC4, 0x0C),
-	_INIT_DCS_CMD(0xC5, 0x02),
-	_INIT_DCS_CMD(0xB0, 0x01),
-	_INIT_DCS_CMD(0xE0, 0x26),
-	_INIT_DCS_CMD(0xE1, 0x26),
-	_INIT_DCS_CMD(0xDC, 0x00),
-	_INIT_DCS_CMD(0xDD, 0x00),
-	_INIT_DCS_CMD(0xCC, 0x26),
-	_INIT_DCS_CMD(0xCD, 0x26),
-	_INIT_DCS_CMD(0xC8, 0x00),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xD2, 0x03),
-	_INIT_DCS_CMD(0xD3, 0x03),
-	_INIT_DCS_CMD(0xE6, 0x04),
-	_INIT_DCS_CMD(0xE7, 0x04),
-	_INIT_DCS_CMD(0xC4, 0x09),
-	_INIT_DCS_CMD(0xC5, 0x09),
-	_INIT_DCS_CMD(0xD8, 0x0A),
-	_INIT_DCS_CMD(0xD9, 0x0A),
-	_INIT_DCS_CMD(0xC2, 0x0B),
-	_INIT_DCS_CMD(0xC3, 0x0B),
-	_INIT_DCS_CMD(0xD6, 0x0C),
-	_INIT_DCS_CMD(0xD7, 0x0C),
-	_INIT_DCS_CMD(0xC0, 0x05),
-	_INIT_DCS_CMD(0xC1, 0x05),
-	_INIT_DCS_CMD(0xD4, 0x06),
-	_INIT_DCS_CMD(0xD5, 0x06),
-	_INIT_DCS_CMD(0xCA, 0x07),
-	_INIT_DCS_CMD(0xCB, 0x07),
-	_INIT_DCS_CMD(0xDE, 0x08),
-	_INIT_DCS_CMD(0xDF, 0x08),
-	_INIT_DCS_CMD(0xB0, 0x02),
-	_INIT_DCS_CMD(0xC0, 0x00),
-	_INIT_DCS_CMD(0xC1, 0x0D),
-	_INIT_DCS_CMD(0xC2, 0x17),
-	_INIT_DCS_CMD(0xC3, 0x26),
-	_INIT_DCS_CMD(0xC4, 0x31),
-	_INIT_DCS_CMD(0xC5, 0x1C),
-	_INIT_DCS_CMD(0xC6, 0x2C),
-	_INIT_DCS_CMD(0xC7, 0x33),
-	_INIT_DCS_CMD(0xC8, 0x31),
-	_INIT_DCS_CMD(0xC9, 0x37),
-	_INIT_DCS_CMD(0xCA, 0x37),
-	_INIT_DCS_CMD(0xCB, 0x37),
-	_INIT_DCS_CMD(0xCC, 0x39),
-	_INIT_DCS_CMD(0xCD, 0x2E),
-	_INIT_DCS_CMD(0xCE, 0x2F),
-	_INIT_DCS_CMD(0xCF, 0x2F),
-	_INIT_DCS_CMD(0xD0, 0x07),
-	_INIT_DCS_CMD(0xD2, 0x00),
-	_INIT_DCS_CMD(0xD3, 0x0D),
-	_INIT_DCS_CMD(0xD4, 0x17),
-	_INIT_DCS_CMD(0xD5, 0x26),
-	_INIT_DCS_CMD(0xD6, 0x31),
-	_INIT_DCS_CMD(0xD7, 0x3F),
-	_INIT_DCS_CMD(0xD8, 0x3F),
-	_INIT_DCS_CMD(0xD9, 0x3F),
-	_INIT_DCS_CMD(0xDA, 0x3F),
-	_INIT_DCS_CMD(0xDB, 0x37),
-	_INIT_DCS_CMD(0xDC, 0x37),
-	_INIT_DCS_CMD(0xDD, 0x37),
-	_INIT_DCS_CMD(0xDE, 0x39),
-	_INIT_DCS_CMD(0xDF, 0x2E),
-	_INIT_DCS_CMD(0xE0, 0x2F),
-	_INIT_DCS_CMD(0xE1, 0x2F),
-	_INIT_DCS_CMD(0xE2, 0x07),
-	_INIT_DCS_CMD(0xB0, 0x03),
-	_INIT_DCS_CMD(0xC8, 0x0B),
-	_INIT_DCS_CMD(0xC9, 0x07),
-	_INIT_DCS_CMD(0xC3, 0x00),
-	_INIT_DCS_CMD(0xE7, 0x00),
-	_INIT_DCS_CMD(0xC5, 0x2A),
-	_INIT_DCS_CMD(0xDE, 0x2A),
-	_INIT_DCS_CMD(0xCA, 0x43),
-	_INIT_DCS_CMD(0xC9, 0x07),
-	_INIT_DCS_CMD(0xE4, 0xC0),
-	_INIT_DCS_CMD(0xE5, 0x0D),
-	_INIT_DCS_CMD(0xCB, 0x00),
-	_INIT_DCS_CMD(0xB0, 0x06),
-	_INIT_DCS_CMD(0xB8, 0xA5),
-	_INIT_DCS_CMD(0xC0, 0xA5),
-	_INIT_DCS_CMD(0xC7, 0x0F),
-	_INIT_DCS_CMD(0xD5, 0x32),
-	_INIT_DCS_CMD(0xB8, 0x00),
-	_INIT_DCS_CMD(0xC0, 0x00),
-	_INIT_DCS_CMD(0xBC, 0x00),
-	_INIT_DCS_CMD(0xB0, 0x07),
-	_INIT_DCS_CMD(0xB1, 0x00),
-	_INIT_DCS_CMD(0xB2, 0x02),
-	_INIT_DCS_CMD(0xB3, 0x0F),
-	_INIT_DCS_CMD(0xB4, 0x25),
-	_INIT_DCS_CMD(0xB5, 0x39),
-	_INIT_DCS_CMD(0xB6, 0x4E),
-	_INIT_DCS_CMD(0xB7, 0x72),
-	_INIT_DCS_CMD(0xB8, 0x97),
-	_INIT_DCS_CMD(0xB9, 0xDC),
-	_INIT_DCS_CMD(0xBA, 0x22),
-	_INIT_DCS_CMD(0xBB, 0xA4),
-	_INIT_DCS_CMD(0xBC, 0x2B),
-	_INIT_DCS_CMD(0xBD, 0x2F),
-	_INIT_DCS_CMD(0xBE, 0xA9),
-	_INIT_DCS_CMD(0xBF, 0x25),
-	_INIT_DCS_CMD(0xC0, 0x61),
-	_INIT_DCS_CMD(0xC1, 0x97),
-	_INIT_DCS_CMD(0xC2, 0xB2),
-	_INIT_DCS_CMD(0xC3, 0xCD),
-	_INIT_DCS_CMD(0xC4, 0xD9),
-	_INIT_DCS_CMD(0xC5, 0xE7),
-	_INIT_DCS_CMD(0xC6, 0xF4),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x08),
-	_INIT_DCS_CMD(0xB1, 0x04),
-	_INIT_DCS_CMD(0xB2, 0x05),
-	_INIT_DCS_CMD(0xB3, 0x11),
-	_INIT_DCS_CMD(0xB4, 0x24),
-	_INIT_DCS_CMD(0xB5, 0x39),
-	_INIT_DCS_CMD(0xB6, 0x4F),
-	_INIT_DCS_CMD(0xB7, 0x72),
-	_INIT_DCS_CMD(0xB8, 0x98),
-	_INIT_DCS_CMD(0xB9, 0xDC),
-	_INIT_DCS_CMD(0xBA, 0x23),
-	_INIT_DCS_CMD(0xBB, 0xA6),
-	_INIT_DCS_CMD(0xBC, 0x2C),
-	_INIT_DCS_CMD(0xBD, 0x30),
-	_INIT_DCS_CMD(0xBE, 0xAA),
-	_INIT_DCS_CMD(0xBF, 0x26),
-	_INIT_DCS_CMD(0xC0, 0x62),
-	_INIT_DCS_CMD(0xC1, 0x9B),
-	_INIT_DCS_CMD(0xC2, 0xB5),
-	_INIT_DCS_CMD(0xC3, 0xCF),
-	_INIT_DCS_CMD(0xC4, 0xDB),
-	_INIT_DCS_CMD(0xC5, 0xE8),
-	_INIT_DCS_CMD(0xC6, 0xF5),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x09),
-	_INIT_DCS_CMD(0xB1, 0x04),
-	_INIT_DCS_CMD(0xB2, 0x02),
-	_INIT_DCS_CMD(0xB3, 0x16),
-	_INIT_DCS_CMD(0xB4, 0x24),
-	_INIT_DCS_CMD(0xB5, 0x3B),
-	_INIT_DCS_CMD(0xB6, 0x4F),
-	_INIT_DCS_CMD(0xB7, 0x73),
-	_INIT_DCS_CMD(0xB8, 0x99),
-	_INIT_DCS_CMD(0xB9, 0xE0),
-	_INIT_DCS_CMD(0xBA, 0x26),
-	_INIT_DCS_CMD(0xBB, 0xAD),
-	_INIT_DCS_CMD(0xBC, 0x36),
-	_INIT_DCS_CMD(0xBD, 0x3A),
-	_INIT_DCS_CMD(0xBE, 0xAE),
-	_INIT_DCS_CMD(0xBF, 0x2A),
-	_INIT_DCS_CMD(0xC0, 0x66),
-	_INIT_DCS_CMD(0xC1, 0x9E),
-	_INIT_DCS_CMD(0xC2, 0xB8),
-	_INIT_DCS_CMD(0xC3, 0xD1),
-	_INIT_DCS_CMD(0xC4, 0xDD),
-	_INIT_DCS_CMD(0xC5, 0xE9),
-	_INIT_DCS_CMD(0xC6, 0xF6),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x0A),
-	_INIT_DCS_CMD(0xB1, 0x00),
-	_INIT_DCS_CMD(0xB2, 0x02),
-	_INIT_DCS_CMD(0xB3, 0x0F),
-	_INIT_DCS_CMD(0xB4, 0x25),
-	_INIT_DCS_CMD(0xB5, 0x39),
-	_INIT_DCS_CMD(0xB6, 0x4E),
-	_INIT_DCS_CMD(0xB7, 0x72),
-	_INIT_DCS_CMD(0xB8, 0x97),
-	_INIT_DCS_CMD(0xB9, 0xDC),
-	_INIT_DCS_CMD(0xBA, 0x22),
-	_INIT_DCS_CMD(0xBB, 0xA4),
-	_INIT_DCS_CMD(0xBC, 0x2B),
-	_INIT_DCS_CMD(0xBD, 0x2F),
-	_INIT_DCS_CMD(0xBE, 0xA9),
-	_INIT_DCS_CMD(0xBF, 0x25),
-	_INIT_DCS_CMD(0xC0, 0x61),
-	_INIT_DCS_CMD(0xC1, 0x97),
-	_INIT_DCS_CMD(0xC2, 0xB2),
-	_INIT_DCS_CMD(0xC3, 0xCD),
-	_INIT_DCS_CMD(0xC4, 0xD9),
-	_INIT_DCS_CMD(0xC5, 0xE7),
-	_INIT_DCS_CMD(0xC6, 0xF4),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x0B),
-	_INIT_DCS_CMD(0xB1, 0x04),
-	_INIT_DCS_CMD(0xB2, 0x05),
-	_INIT_DCS_CMD(0xB3, 0x11),
-	_INIT_DCS_CMD(0xB4, 0x24),
-	_INIT_DCS_CMD(0xB5, 0x39),
-	_INIT_DCS_CMD(0xB6, 0x4F),
-	_INIT_DCS_CMD(0xB7, 0x72),
-	_INIT_DCS_CMD(0xB8, 0x98),
-	_INIT_DCS_CMD(0xB9, 0xDC),
-	_INIT_DCS_CMD(0xBA, 0x23),
-	_INIT_DCS_CMD(0xBB, 0xA6),
-	_INIT_DCS_CMD(0xBC, 0x2C),
-	_INIT_DCS_CMD(0xBD, 0x30),
-	_INIT_DCS_CMD(0xBE, 0xAA),
-	_INIT_DCS_CMD(0xBF, 0x26),
-	_INIT_DCS_CMD(0xC0, 0x62),
-	_INIT_DCS_CMD(0xC1, 0x9B),
-	_INIT_DCS_CMD(0xC2, 0xB5),
-	_INIT_DCS_CMD(0xC3, 0xCF),
-	_INIT_DCS_CMD(0xC4, 0xDB),
-	_INIT_DCS_CMD(0xC5, 0xE8),
-	_INIT_DCS_CMD(0xC6, 0xF5),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x0C),
-	_INIT_DCS_CMD(0xB1, 0x04),
-	_INIT_DCS_CMD(0xB2, 0x02),
-	_INIT_DCS_CMD(0xB3, 0x16),
-	_INIT_DCS_CMD(0xB4, 0x24),
-	_INIT_DCS_CMD(0xB5, 0x3B),
-	_INIT_DCS_CMD(0xB6, 0x4F),
-	_INIT_DCS_CMD(0xB7, 0x73),
-	_INIT_DCS_CMD(0xB8, 0x99),
-	_INIT_DCS_CMD(0xB9, 0xE0),
-	_INIT_DCS_CMD(0xBA, 0x26),
-	_INIT_DCS_CMD(0xBB, 0xAD),
-	_INIT_DCS_CMD(0xBC, 0x36),
-	_INIT_DCS_CMD(0xBD, 0x3A),
-	_INIT_DCS_CMD(0xBE, 0xAE),
-	_INIT_DCS_CMD(0xBF, 0x2A),
-	_INIT_DCS_CMD(0xC0, 0x66),
-	_INIT_DCS_CMD(0xC1, 0x9E),
-	_INIT_DCS_CMD(0xC2, 0xB8),
-	_INIT_DCS_CMD(0xC3, 0xD1),
-	_INIT_DCS_CMD(0xC4, 0xDD),
-	_INIT_DCS_CMD(0xC5, 0xE9),
-	_INIT_DCS_CMD(0xC6, 0xF6),
-	_INIT_DCS_CMD(0xC7, 0xFA),
-	_INIT_DCS_CMD(0xC8, 0xFC),
-	_INIT_DCS_CMD(0xC9, 0x00),
-	_INIT_DCS_CMD(0xCA, 0x00),
-	_INIT_DCS_CMD(0xCB, 0x16),
-	_INIT_DCS_CMD(0xCC, 0xAF),
-	_INIT_DCS_CMD(0xCD, 0xFF),
-	_INIT_DCS_CMD(0xCE, 0xFF),
-	_INIT_DCS_CMD(0xB0, 0x00),
-	_INIT_DCS_CMD(0xB3, 0x08),
-	_INIT_DCS_CMD(0xB0, 0x04),
-	_INIT_DCS_CMD(0xB8, 0x68),
-	_INIT_DELAY_CMD(150),
-	{},
-};
+static int inx_hj110iz_init(struct mipi_dsi_device *dsi) {
+	int ret;
 
-static const struct panel_init_cmd auo_kd101n80_45na_init_cmd[] = {
-	_INIT_DELAY_CMD(24),
-	_INIT_DCS_CMD(0x11),
-	_INIT_DELAY_CMD(120),
-	_INIT_DCS_CMD(0x29),
-	_INIT_DELAY_CMD(120),
-	{},
-};
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD1);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x8C);
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x4B);
+	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x69);
+	mipi_dsi_dcs_write_seq(dsi, 0x95, 0xF5);
+	mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF5);
+	mipi_dsi_dcs_write_seq(dsi, 0x9D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x9E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x69, 0x98);
+	mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
+	mipi_dsi_dcs_write_seq(dsi, 0x77, 0xB3);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x92, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x94, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x60, 0x96);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0xD0);
+	mipi_dsi_dcs_write_seq(dsi, 0x63, 0x70);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xCF);
+	mipi_dsi_dcs_write_seq(dsi, 0x9B, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x01, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x03, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x22);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x09, 0x1D);
+	mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x12);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x10, 0x0E);
+	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x17, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x22);
+	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x1D);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0x21, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x12);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x0E);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x03);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x32);
+	mipi_dsi_dcs_write_seq(dsi, 0x31, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x93);
+	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x40);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x4F, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x50, 0x87);
+	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x52, 0x56);
+	mipi_dsi_dcs_write_seq(dsi, 0x53, 0x34);
+	mipi_dsi_dcs_write_seq(dsi, 0x54, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x55, 0x83);
+	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
+	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x7A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x7B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x7C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x7D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
+	mipi_dsi_dcs_write_seq(dsi, 0x80, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x81, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x82, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0x97, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x55);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x27);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xE8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xE9, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xEA, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xEB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xEE, 0x7A);
+	mipi_dsi_dcs_write_seq(dsi, 0xEF, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xF0, 0x7A);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0xDF);
+	mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x43, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x44, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0x45, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x48, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x49, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0x68, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
+	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0x0A, 0xF2);
+	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
+	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
+	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
+	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
+	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
+	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x78);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x11);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x78);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x06);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x84);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x4D);
+	mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x4A);
+	mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
+	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
+	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
+	mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x68, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0x98, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0x9B, 0xBD);
+	mipi_dsi_dcs_write_seq(dsi, 0xA0, 0x90);
+	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x1B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x28);
+
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+	mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
+	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
+
+	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x96);
+	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x96);
+	mipi_dsi_dcs_write_seq(dsi, 0x6B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x6C, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x70, 0x92);
+	mipi_dsi_dcs_write_seq(dsi, 0x71, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x72, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xA2, 0x33);
+	mipi_dsi_dcs_write_seq(dsi, 0xA3, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xC0);
+	mipi_dsi_dcs_write_seq(dsi, 0xE8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x97, 0x3C);
+	mipi_dsi_dcs_write_seq(dsi, 0x98, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0x99, 0x95);
+	mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0x9B, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x9C, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0x9D, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0x9E, 0x90);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xD0);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x33);
+	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x09, 0xBF);
+	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x33);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
+	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x88);
+	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x0F, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
+	msleep(100);
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret)
+		return ret;
+	msleep(200);
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+	msleep(100);
 
-static const struct panel_init_cmd auo_b101uan08_3_init_cmd[] = {
-	_INIT_DELAY_CMD(24),
-	_INIT_DCS_CMD(0xB0, 0x01),
-	_INIT_DCS_CMD(0xC0, 0x48),
-	_INIT_DCS_CMD(0xC1, 0x48),
-	_INIT_DCS_CMD(0xC2, 0x47),
-	_INIT_DCS_CMD(0xC3, 0x47),
-	_INIT_DCS_CMD(0xC4, 0x46),
-	_INIT_DCS_CMD(0xC5, 0x46),
-	_INIT_DCS_CMD(0xC6, 0x45),
-	_INIT_DCS_CMD(0xC7, 0x45),
-	_INIT_DCS_CMD(0xC8, 0x64),
-	_INIT_DCS_CMD(0xC9, 0x64),
-	_INIT_DCS_CMD(0xCA, 0x4F),
-	_INIT_DCS_CMD(0xCB, 0x4F),
-	_INIT_DCS_CMD(0xCC, 0x40),
-	_INIT_DCS_CMD(0xCD, 0x40),
-	_INIT_DCS_CMD(0xCE, 0x66),
-	_INIT_DCS_CMD(0xCF, 0x66),
-	_INIT_DCS_CMD(0xD0, 0x4F),
-	_INIT_DCS_CMD(0xD1, 0x4F),
-	_INIT_DCS_CMD(0xD2, 0x41),
-	_INIT_DCS_CMD(0xD3, 0x41),
-	_INIT_DCS_CMD(0xD4, 0x48),
-	_INIT_DCS_CMD(0xD5, 0x48),
-	_INIT_DCS_CMD(0xD6, 0x47),
-	_INIT_DCS_CMD(0xD7, 0x47),
-	_INIT_DCS_CMD(0xD8, 0x46),
-	_INIT_DCS_CMD(0xD9, 0x46),
-	_INIT_DCS_CMD(0xDA, 0x45),
-	_INIT_DCS_CMD(0xDB, 0x45),
-	_INIT_DCS_CMD(0xDC, 0x64),
-	_INIT_DCS_CMD(0xDD, 0x64),
-	_INIT_DCS_CMD(0xDE, 0x4F),
-	_INIT_DCS_CMD(0xDF, 0x4F),
-	_INIT_DCS_CMD(0xE0, 0x40),
-	_INIT_DCS_CMD(0xE1, 0x40),
-	_INIT_DCS_CMD(0xE2, 0x66),
-	_INIT_DCS_CMD(0xE3, 0x66),
-	_INIT_DCS_CMD(0xE4, 0x4F),
-	_INIT_DCS_CMD(0xE5, 0x4F),
-	_INIT_DCS_CMD(0xE6, 0x41),
-	_INIT_DCS_CMD(0xE7, 0x41),
-	_INIT_DELAY_CMD(150),
-	{},
-};
+	return 0;
+}
 
-static const struct panel_init_cmd starry_qfh032011_53g_init_cmd[] = {
-	_INIT_DCS_CMD(0xB0, 0x01),
-	_INIT_DCS_CMD(0xC3, 0x4F),
-	_INIT_DCS_CMD(0xC4, 0x40),
-	_INIT_DCS_CMD(0xC5, 0x40),
-	_INIT_DCS_CMD(0xC6, 0x40),
-	_INIT_DCS_CMD(0xC7, 0x40),
-	_INIT_DCS_CMD(0xC8, 0x4D),
-	_INIT_DCS_CMD(0xC9, 0x52),
-	_INIT_DCS_CMD(0xCA, 0x51),
-	_INIT_DCS_CMD(0xCD, 0x5D),
-	_INIT_DCS_CMD(0xCE, 0x5B),
-	_INIT_DCS_CMD(0xCF, 0x4B),
-	_INIT_DCS_CMD(0xD0, 0x49),
-	_INIT_DCS_CMD(0xD1, 0x47),
-	_INIT_DCS_CMD(0xD2, 0x45),
-	_INIT_DCS_CMD(0xD3, 0x41),
-	_INIT_DCS_CMD(0xD7, 0x50),
-	_INIT_DCS_CMD(0xD8, 0x40),
-	_INIT_DCS_CMD(0xD9, 0x40),
-	_INIT_DCS_CMD(0xDA, 0x40),
-	_INIT_DCS_CMD(0xDB, 0x40),
-	_INIT_DCS_CMD(0xDC, 0x4E),
-	_INIT_DCS_CMD(0xDD, 0x52),
-	_INIT_DCS_CMD(0xDE, 0x51),
-	_INIT_DCS_CMD(0xE1, 0x5E),
-	_INIT_DCS_CMD(0xE2, 0x5C),
-	_INIT_DCS_CMD(0xE3, 0x4C),
-	_INIT_DCS_CMD(0xE4, 0x4A),
-	_INIT_DCS_CMD(0xE5, 0x48),
-	_INIT_DCS_CMD(0xE6, 0x46),
-	_INIT_DCS_CMD(0xE7, 0x42),
-	_INIT_DCS_CMD(0xB0, 0x03),
-	_INIT_DCS_CMD(0xBE, 0x03),
-	_INIT_DCS_CMD(0xCC, 0x44),
-	_INIT_DCS_CMD(0xC8, 0x07),
-	_INIT_DCS_CMD(0xC9, 0x05),
-	_INIT_DCS_CMD(0xCA, 0x42),
-	_INIT_DCS_CMD(0xCD, 0x3E),
-	_INIT_DCS_CMD(0xCF, 0x60),
-	_INIT_DCS_CMD(0xD2, 0x04),
-	_INIT_DCS_CMD(0xD3, 0x04),
-	_INIT_DCS_CMD(0xD4, 0x01),
-	_INIT_DCS_CMD(0xD5, 0x00),
-	_INIT_DCS_CMD(0xD6, 0x03),
-	_INIT_DCS_CMD(0xD7, 0x04),
-	_INIT_DCS_CMD(0xD9, 0x01),
-	_INIT_DCS_CMD(0xDB, 0x01),
-	_INIT_DCS_CMD(0xE4, 0xF0),
-	_INIT_DCS_CMD(0xE5, 0x0A),
-	_INIT_DCS_CMD(0xB0, 0x00),
-	_INIT_DCS_CMD(0xCC, 0x08),
-	_INIT_DCS_CMD(0xC2, 0x08),
-	_INIT_DCS_CMD(0xC4, 0x10),
-	_INIT_DCS_CMD(0xB0, 0x02),
-	_INIT_DCS_CMD(0xC0, 0x00),
-	_INIT_DCS_CMD(0xC1, 0x0A),
-	_INIT_DCS_CMD(0xC2, 0x20),
-	_INIT_DCS_CMD(0xC3, 0x24),
-	_INIT_DCS_CMD(0xC4, 0x23),
-	_INIT_DCS_CMD(0xC5, 0x29),
-	_INIT_DCS_CMD(0xC6, 0x23),
-	_INIT_DCS_CMD(0xC7, 0x1C),
-	_INIT_DCS_CMD(0xC8, 0x19),
-	_INIT_DCS_CMD(0xC9, 0x17),
-	_INIT_DCS_CMD(0xCA, 0x17),
-	_INIT_DCS_CMD(0xCB, 0x18),
-	_INIT_DCS_CMD(0xCC, 0x1A),
-	_INIT_DCS_CMD(0xCD, 0x1E),
-	_INIT_DCS_CMD(0xCE, 0x20),
-	_INIT_DCS_CMD(0xCF, 0x23),
-	_INIT_DCS_CMD(0xD0, 0x07),
-	_INIT_DCS_CMD(0xD1, 0x00),
-	_INIT_DCS_CMD(0xD2, 0x00),
-	_INIT_DCS_CMD(0xD3, 0x0A),
-	_INIT_DCS_CMD(0xD4, 0x13),
-	_INIT_DCS_CMD(0xD5, 0x1C),
-	_INIT_DCS_CMD(0xD6, 0x1A),
-	_INIT_DCS_CMD(0xD7, 0x13),
-	_INIT_DCS_CMD(0xD8, 0x17),
-	_INIT_DCS_CMD(0xD9, 0x1C),
-	_INIT_DCS_CMD(0xDA, 0x19),
-	_INIT_DCS_CMD(0xDB, 0x17),
-	_INIT_DCS_CMD(0xDC, 0x17),
-	_INIT_DCS_CMD(0xDD, 0x18),
-	_INIT_DCS_CMD(0xDE, 0x1A),
-	_INIT_DCS_CMD(0xDF, 0x1E),
-	_INIT_DCS_CMD(0xE0, 0x20),
-	_INIT_DCS_CMD(0xE1, 0x23),
-	_INIT_DCS_CMD(0xE2, 0x07),
-	_INIT_DCS_CMD(0X11),
-	_INIT_DELAY_CMD(120),
-	_INIT_DCS_CMD(0X29),
-	_INIT_DELAY_CMD(80),
-	{},
-};
+static int boe_init(struct mipi_dsi_device *dsi)
+{
+	msleep(24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0xE5);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x52);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x88);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x8B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x09);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x09);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x33);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x2E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x31);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x3F);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x37);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x2E);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x43);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xC0);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x0D);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x06);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0xA5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0xA5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x32);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x97);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x22);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA4);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x61);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x97);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB2);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCD);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xD9);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE7);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF4);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x98);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA6);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAA);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x62);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9B);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCF);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDB);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE8);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x09);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x3B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x73);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x99);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xAD);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x36);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x3A);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAE);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9E);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB8);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xD1);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDD);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE9);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF6);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x0F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x97);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x22);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA4);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2B);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x2F);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xA9);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x25);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x61);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x97);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB2);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCD);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xD9);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE7);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF4);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x11);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x98);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA6);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2C);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x30);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAA);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x62);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9B);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCF);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDB);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE8);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF5);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0C);
+	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x3B);
+	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x73);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x99);
+	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xE0);
+	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x26);
+	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xAD);
+	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x36);
+	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x3A);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAE);
+	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x2A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9E);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB8);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xD1);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDD);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE9);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF6);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x68);
+	msleep(150);
 
-static inline struct boe_panel *to_boe_panel(struct drm_panel *panel)
+	return 0;
+}
+
+static int auo_kd101n80_45na_init(struct mipi_dsi_device *dsi)
 {
-	return container_of(panel, struct boe_panel, base);
+	int ret;
+
+	msleep(24);
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret)
+		return ret;
+	msleep(120);
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+	msleep(120);
+
+	return 0;
 }
 
-static int boe_panel_init_dcs_cmd(struct boe_panel *boe)
+static int auo_b101uan08_3_init(struct mipi_dsi_device *dsi)
 {
-	struct mipi_dsi_device *dsi = boe->dsi;
-	struct drm_panel *panel = &boe->base;
-	int i, err = 0;
-
-	if (boe->desc->init_cmds) {
-		const struct panel_init_cmd *init_cmds = boe->desc->init_cmds;
-
-		for (i = 0; init_cmds[i].len != 0; i++) {
-			const struct panel_init_cmd *cmd = &init_cmds[i];
-
-			switch (cmd->type) {
-			case DELAY_CMD:
-				msleep(cmd->data[0]);
-				err = 0;
-				break;
-
-			case INIT_DCS_CMD:
-				err = mipi_dsi_dcs_write(dsi, cmd->data[0],
-							 cmd->len <= 1 ? NULL :
-							 &cmd->data[1],
-							 cmd->len - 1);
-				break;
-
-			default:
-				err = -EINVAL;
-			}
-
-			if (err < 0) {
-				dev_err(panel->dev,
-					"failed to write command %u\n", i);
-				return err;
-			}
-		}
-	}
+	msleep(24);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x64);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x64);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x64);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x64);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x66);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x41);
+	msleep(150);
+
+	return 0;
+}
+
+static int starry_qfh032011_53g_init(struct mipi_dsi_device *dsi)
+{
+	int ret;
+
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x4D);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x52);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x51);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x5D);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x5B);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x4B);
+	mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x49);
+	mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x47);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x45);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x41);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x50);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x40);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x4E);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x52);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x51);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x5E);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x5C);
+	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x4C);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x4A);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x48);
+	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x46);
+	mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x42);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x44);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x05);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x42);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x3E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x60);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x03);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x04);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x01);
+	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xF0);
+	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x08);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x10);
+	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x02);
+	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x24);
+	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x29);
+	mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x19);
+	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x1E);
+	mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x07);
+	mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x00);
+	mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x0A);
+	mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x13);
+	mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x1C);
+	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x19);
+	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x17);
+	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x18);
+	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x1A);
+	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x1E);
+	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x20);
+	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x23);
+	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x07);
+
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret)
+		return ret;
+	msleep(120);
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+	msleep(80);
+
 	return 0;
 }
 
+static inline struct boe_panel *to_boe_panel(struct drm_panel *panel)
+{
+	return container_of(panel, struct boe_panel, base);
+}
+
 static int boe_panel_enter_sleep_mode(struct boe_panel *boe)
 {
 	struct mipi_dsi_device *dsi = boe->dsi;
@@ -1373,10 +1349,12 @@ static int boe_panel_prepare(struct drm_panel *panel)
 	gpiod_set_value(boe->enable_gpio, 1);
 	usleep_range(6000, 10000);
 
-	ret = boe_panel_init_dcs_cmd(boe);
-	if (ret < 0) {
-		dev_err(panel->dev, "failed to init panel: %d\n", ret);
-		goto poweroff;
+	if (boe->desc->init) {
+		ret = boe->desc->init(boe->dsi);
+		if (ret < 0) {
+			dev_err(panel->dev, "failed to init panel: %d\n", ret);
+			goto poweroff;
+		}
 	}
 
 	boe->prepared = true;
@@ -1427,7 +1405,7 @@ static const struct panel_desc boe_tv110c9m_desc = {
 			| MIPI_DSI_MODE_VIDEO_HSE
 			| MIPI_DSI_CLOCK_NON_CONTINUOUS
 			| MIPI_DSI_MODE_VIDEO_BURST,
-	.init_cmds = boe_tv110c9m_init_cmd,
+	.init = boe_tv110c9m_init,
 };
 
 static const struct drm_display_mode inx_hj110iz_default_mode = {
@@ -1456,7 +1434,7 @@ static const struct panel_desc inx_hj110iz_desc = {
 			| MIPI_DSI_MODE_VIDEO_HSE
 			| MIPI_DSI_CLOCK_NON_CONTINUOUS
 			| MIPI_DSI_MODE_VIDEO_BURST,
-	.init_cmds = inx_hj110iz_init_cmd,
+	.init = inx_hj110iz_init,
 };
 
 static const struct drm_display_mode boe_tv101wum_nl6_default_mode = {
@@ -1482,7 +1460,7 @@ static const struct panel_desc boe_tv101wum_nl6_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = boe_init_cmd,
+	.init = boe_init,
 	.discharge_on_disable = false,
 };
 
@@ -1509,7 +1487,7 @@ static const struct panel_desc auo_kd101n80_45na_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = auo_kd101n80_45na_init_cmd,
+	.init = auo_kd101n80_45na_init,
 	.discharge_on_disable = true,
 };
 
@@ -1537,7 +1515,7 @@ static const struct panel_desc boe_tv101wum_n53_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = boe_init_cmd,
+	.init = boe_init,
 };
 
 static const struct drm_display_mode auo_b101uan08_3_default_mode = {
@@ -1564,7 +1542,7 @@ static const struct panel_desc auo_b101uan08_3_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = auo_b101uan08_3_init_cmd,
+	.init = auo_b101uan08_3_init,
 };
 
 static const struct drm_display_mode boe_tv105wum_nw0_default_mode = {
@@ -1591,7 +1569,7 @@ static const struct panel_desc boe_tv105wum_nw0_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = boe_init_cmd,
+	.init = boe_init,
 };
 
 static const struct drm_display_mode starry_qfh032011_53g_default_mode = {
@@ -1617,7 +1595,7 @@ static const struct panel_desc starry_qfh032011_53g_desc = {
 	.format = MIPI_DSI_FMT_RGB888,
 	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
 		      MIPI_DSI_MODE_LPM,
-	.init_cmds = starry_qfh032011_53g_init_cmd,
+	.init = starry_qfh032011_53g_init,
 };
 
 static int boe_panel_get_modes(struct drm_panel *panel,

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/2] drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
  2023-06-16 21:07 ` Linus Walleij
@ 2023-06-16 21:07   ` Linus Walleij
  -1 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
  To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
	Sam Ravnborg, David Airlie, Daniel Vetter
  Cc: dri-devel, linux-kernel, Linus Walleij

The DRM panel core already keeps track of if the panel is already
prepared so do not reimplement this.

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index bc806d420ca7..24fbc1629e40 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -50,8 +50,6 @@ struct boe_panel {
 	struct regulator *avee;
 	struct regulator *avdd;
 	struct gpio_desc *enable_gpio;
-
-	bool prepared;
 };
 
 static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
@@ -1286,9 +1284,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
 {
 	struct boe_panel *boe = to_boe_panel(panel);
 
-	if (!boe->prepared)
-		return 0;
-
 	if (boe->desc->discharge_on_disable) {
 		regulator_disable(boe->avee);
 		regulator_disable(boe->avdd);
@@ -1307,8 +1302,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
 		regulator_disable(boe->pp3300);
 	}
 
-	boe->prepared = false;
-
 	return 0;
 }
 
@@ -1317,9 +1310,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
 	struct boe_panel *boe = to_boe_panel(panel);
 	int ret;
 
-	if (boe->prepared)
-		return 0;
-
 	gpiod_set_value(boe->enable_gpio, 0);
 	usleep_range(1000, 1500);
 
@@ -1357,8 +1347,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
 		}
 	}
 
-	boe->prepared = true;
-
 	return 0;
 
 poweroff:

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/2] drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
@ 2023-06-16 21:07   ` Linus Walleij
  0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
  To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
	Sam Ravnborg, David Airlie, Daniel Vetter
  Cc: linux-kernel, dri-devel

The DRM panel core already keeps track of if the panel is already
prepared so do not reimplement this.

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index bc806d420ca7..24fbc1629e40 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -50,8 +50,6 @@ struct boe_panel {
 	struct regulator *avee;
 	struct regulator *avdd;
 	struct gpio_desc *enable_gpio;
-
-	bool prepared;
 };
 
 static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
@@ -1286,9 +1284,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
 {
 	struct boe_panel *boe = to_boe_panel(panel);
 
-	if (!boe->prepared)
-		return 0;
-
 	if (boe->desc->discharge_on_disable) {
 		regulator_disable(boe->avee);
 		regulator_disable(boe->avdd);
@@ -1307,8 +1302,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
 		regulator_disable(boe->pp3300);
 	}
 
-	boe->prepared = false;
-
 	return 0;
 }
 
@@ -1317,9 +1310,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
 	struct boe_panel *boe = to_boe_panel(panel);
 	int ret;
 
-	if (boe->prepared)
-		return 0;
-
 	gpiod_set_value(boe->enable_gpio, 0);
 	usleep_range(1000, 1500);
 
@@ -1357,8 +1347,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
 		}
 	}
 
-	boe->prepared = true;
-
 	return 0;
 
 poweroff:

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver
  2023-06-16 21:07 ` Linus Walleij
@ 2023-06-30  9:48   ` Neil Armstrong
  -1 siblings, 0 replies; 9+ messages in thread
From: Neil Armstrong @ 2023-06-30  9:48 UTC (permalink / raw)
  To: Linus Walleij, Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi,
	Sam Ravnborg, David Airlie, Daniel Vetter
  Cc: linux-kernel, dri-devel

Hi Linus,

On 16/06/2023 23:07, Linus Walleij wrote:
> This is two patches fixing things I would normally complain about
> in reviews, but alas I missed this one, so I go in and fix it up
> myself.

The serie doesn't apply cleanly on drm-misc-next.

Thanks,
Neil

> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Changes in v2:
> - Fix a missed static keyword
> - Link to v1: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v1-0-8ac378405fb7@linaro.org
> 
> ---
> Linus Walleij (2):
>        drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
>        drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
> 
>   drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2420 ++++++++++++------------
>   1 file changed, 1193 insertions(+), 1227 deletions(-)
> ---
> base-commit: ac9a78681b921877518763ba0e89202254349d1b
> change-id: 20230615-fix-boe-tv101wum-nl6-6aa3fab22b44
> 
> Best regards,


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver
@ 2023-06-30  9:48   ` Neil Armstrong
  0 siblings, 0 replies; 9+ messages in thread
From: Neil Armstrong @ 2023-06-30  9:48 UTC (permalink / raw)
  To: Linus Walleij, Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi,
	Sam Ravnborg, David Airlie, Daniel Vetter
  Cc: dri-devel, linux-kernel

Hi Linus,

On 16/06/2023 23:07, Linus Walleij wrote:
> This is two patches fixing things I would normally complain about
> in reviews, but alas I missed this one, so I go in and fix it up
> myself.

The serie doesn't apply cleanly on drm-misc-next.

Thanks,
Neil

> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Changes in v2:
> - Fix a missed static keyword
> - Link to v1: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v1-0-8ac378405fb7@linaro.org
> 
> ---
> Linus Walleij (2):
>        drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
>        drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
> 
>   drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2420 ++++++++++++------------
>   1 file changed, 1193 insertions(+), 1227 deletions(-)
> ---
> base-commit: ac9a78681b921877518763ba0e89202254349d1b
> change-id: 20230615-fix-boe-tv101wum-nl6-6aa3fab22b44
> 
> Best regards,


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
@ 2023-06-17 15:43 kernel test robot
  0 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2023-06-17 15:43 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230615-fix-boe-tv101wum-nl6-v2-1-457d7ece4590@linaro.org>
References: <20230615-fix-boe-tv101wum-nl6-v2-1-457d7ece4590@linaro.org>
TO: Linus Walleij <linus.walleij@linaro.org>
TO: Ruihai Zhou <zhouruihai@huaqin.corp-partner.google.com>
TO: Stephen Boyd <swboyd@chromium.org>
TO: yangcong <yangcong5@huaqin.corp-partner.google.com>
TO: Jitao Shi <jitao.shi@mediatek.com>
TO: Neil Armstrong <neil.armstrong@linaro.org>
TO: Sam Ravnborg <sam@ravnborg.org>
TO: David Airlie <airlied@gmail.com>
TO: Daniel Vetter <daniel@ffwll.ch>
CC: linux-kernel@vger.kernel.org
CC: dri-devel@lists.freedesktop.org

Hi Linus,

kernel test robot noticed the following build warnings:

[auto build test WARNING on ac9a78681b921877518763ba0e89202254349d1b]

url:    https://github.com/intel-lab-lkp/linux/commits/Linus-Walleij/drm-panel-boe-tv101wum-nl6-Drop-macros-and-open-code-sequences/20230617-050920
base:   ac9a78681b921877518763ba0e89202254349d1b
patch link:    https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v2-1-457d7ece4590%40linaro.org
patch subject: [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
:::::: branch date: 18 hours ago
:::::: commit date: 18 hours ago
config: x86_64-randconfig-m001-20230617 (https://download.01.org/0day-ci/archive/20230617/202306172300.HNeMG90x-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230617/202306172300.HNeMG90x-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202306172300.HNeMG90x-lkp@intel.com/

smatch warnings:
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c:161 boe_tv110c9m_init() warn: Function too hairy.  No more merges.
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c:519 inx_hj110iz_init() warn: Function too hairy.  No more merges.
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c:857 boe_init() warn: Function too hairy.  No more merges.
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c:1222 starry_qfh032011_53g_init() warn: Function too hairy.  No more merges.

vim +161 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c

a869b9db7adf3bd Jitao Shi     2020-01-16   56  
f24d88dac9221ea Linus Walleij 2023-06-16   57  static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
f24d88dac9221ea Linus Walleij 2023-06-16   58  {
f24d88dac9221ea Linus Walleij 2023-06-16   59  	int ret;
a869b9db7adf3bd Jitao Shi     2020-01-16   60  
f24d88dac9221ea Linus Walleij 2023-06-16   61  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16   62  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16   63  	mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD9);
f24d88dac9221ea Linus Walleij 2023-06-16   64  	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x78);
f24d88dac9221ea Linus Walleij 2023-06-16   65  	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x5A);
f24d88dac9221ea Linus Walleij 2023-06-16   66  	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
f24d88dac9221ea Linus Walleij 2023-06-16   67  	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
f24d88dac9221ea Linus Walleij 2023-06-16   68  	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x73);
f24d88dac9221ea Linus Walleij 2023-06-16   69  	mipi_dsi_dcs_write_seq(dsi, 0x95, 0xE6);
f24d88dac9221ea Linus Walleij 2023-06-16   70  	mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF0);
f24d88dac9221ea Linus Walleij 2023-06-16   71  	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16   72  	mipi_dsi_dcs_write_seq(dsi, 0x6D, 0x66);
f24d88dac9221ea Linus Walleij 2023-06-16   73  	mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
f24d88dac9221ea Linus Walleij 2023-06-16   74  	mipi_dsi_dcs_write_seq(dsi, 0x77, 0x3B);
93ee1a2c0f08345 yangcong      2021-09-14   75  
f24d88dac9221ea Linus Walleij 2023-06-16   76  	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
f24d88dac9221ea Linus Walleij 2023-06-16   77  	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
f24d88dac9221ea Linus Walleij 2023-06-16   78  	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
f24d88dac9221ea Linus Walleij 2023-06-16   79  	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
93ee1a2c0f08345 yangcong      2021-09-14   80  
f24d88dac9221ea Linus Walleij 2023-06-16   81  	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
f24d88dac9221ea Linus Walleij 2023-06-16   82  	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
f24d88dac9221ea Linus Walleij 2023-06-16   83  	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
f24d88dac9221ea Linus Walleij 2023-06-16   84  	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16   85  	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
f24d88dac9221ea Linus Walleij 2023-06-16   86  	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
f24d88dac9221ea Linus Walleij 2023-06-16   87  	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
f24d88dac9221ea Linus Walleij 2023-06-16   88  	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16   89  
f24d88dac9221ea Linus Walleij 2023-06-16   90  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x21);
f24d88dac9221ea Linus Walleij 2023-06-16   91  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16   92  
f24d88dac9221ea Linus Walleij 2023-06-16   93  	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
f24d88dac9221ea Linus Walleij 2023-06-16   94  	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
f24d88dac9221ea Linus Walleij 2023-06-16   95  	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
f24d88dac9221ea Linus Walleij 2023-06-16   96  
f24d88dac9221ea Linus Walleij 2023-06-16   97  	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16   98  	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
f24d88dac9221ea Linus Walleij 2023-06-16   99  	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
f24d88dac9221ea Linus Walleij 2023-06-16  100  	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
f24d88dac9221ea Linus Walleij 2023-06-16  101  	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16  102  
f24d88dac9221ea Linus Walleij 2023-06-16  103  	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
f24d88dac9221ea Linus Walleij 2023-06-16  104  	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
f24d88dac9221ea Linus Walleij 2023-06-16  105  	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
f24d88dac9221ea Linus Walleij 2023-06-16  106  
f24d88dac9221ea Linus Walleij 2023-06-16  107  	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16  108  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
f24d88dac9221ea Linus Walleij 2023-06-16  109  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  110  
f24d88dac9221ea Linus Walleij 2023-06-16  111  	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  112  	mipi_dsi_dcs_write_seq(dsi, 0x01, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  113  
f24d88dac9221ea Linus Walleij 2023-06-16  114  	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x1C);
f24d88dac9221ea Linus Walleij 2023-06-16  115  	mipi_dsi_dcs_write_seq(dsi, 0x03, 0x1C);
f24d88dac9221ea Linus Walleij 2023-06-16  116  
f24d88dac9221ea Linus Walleij 2023-06-16  117  	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x1D);
f24d88dac9221ea Linus Walleij 2023-06-16  118  	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x1D);
f24d88dac9221ea Linus Walleij 2023-06-16  119  
f24d88dac9221ea Linus Walleij 2023-06-16  120  	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16  121  	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16  122  
f24d88dac9221ea Linus Walleij 2023-06-16  123  	mipi_dsi_dcs_write_seq(dsi, 0x08, 0x0F);
f24d88dac9221ea Linus Walleij 2023-06-16  124  	mipi_dsi_dcs_write_seq(dsi, 0x09, 0x0F);
f24d88dac9221ea Linus Walleij 2023-06-16  125  
f24d88dac9221ea Linus Walleij 2023-06-16  126  	mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x0E);
f24d88dac9221ea Linus Walleij 2023-06-16  127  	mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x0E);
f24d88dac9221ea Linus Walleij 2023-06-16  128  
f24d88dac9221ea Linus Walleij 2023-06-16  129  	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16  130  	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16  131  
f24d88dac9221ea Linus Walleij 2023-06-16  132  	mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16  133  	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16  134  
f24d88dac9221ea Linus Walleij 2023-06-16  135  	mipi_dsi_dcs_write_seq(dsi, 0x10, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16  136  	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16  137  
f24d88dac9221ea Linus Walleij 2023-06-16  138  	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  139  	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  140  	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  141  	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  142  
f24d88dac9221ea Linus Walleij 2023-06-16  143  	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  144  	mipi_dsi_dcs_write_seq(dsi, 0x17, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  145  
f24d88dac9221ea Linus Walleij 2023-06-16  146  	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x1C);
f24d88dac9221ea Linus Walleij 2023-06-16  147  	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x1C);
f24d88dac9221ea Linus Walleij 2023-06-16  148  
f24d88dac9221ea Linus Walleij 2023-06-16  149  	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x1D);
f24d88dac9221ea Linus Walleij 2023-06-16  150  	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x1D);
f24d88dac9221ea Linus Walleij 2023-06-16  151  
f24d88dac9221ea Linus Walleij 2023-06-16  152  	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16  153  	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16  154  
f24d88dac9221ea Linus Walleij 2023-06-16  155  	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x0F);
f24d88dac9221ea Linus Walleij 2023-06-16  156  	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x0F);
f24d88dac9221ea Linus Walleij 2023-06-16  157  
f24d88dac9221ea Linus Walleij 2023-06-16  158  	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x0E);
f24d88dac9221ea Linus Walleij 2023-06-16  159  	mipi_dsi_dcs_write_seq(dsi, 0x21, 0x0E);
f24d88dac9221ea Linus Walleij 2023-06-16  160  
f24d88dac9221ea Linus Walleij 2023-06-16 @161  	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16  162  	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16  163  
f24d88dac9221ea Linus Walleij 2023-06-16  164  	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16  165  	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16  166  
f24d88dac9221ea Linus Walleij 2023-06-16  167  	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16  168  	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16  169  
f24d88dac9221ea Linus Walleij 2023-06-16  170  	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  171  	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  172  	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  173  	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  174  
f24d88dac9221ea Linus Walleij 2023-06-16  175  	mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16  176  	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x0A);
f24d88dac9221ea Linus Walleij 2023-06-16  177  	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16  178  	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16  179  	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
f24d88dac9221ea Linus Walleij 2023-06-16  180  
f24d88dac9221ea Linus Walleij 2023-06-16  181  	mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16  182  	mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
f24d88dac9221ea Linus Walleij 2023-06-16  183  	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  184  	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x5D);
f24d88dac9221ea Linus Walleij 2023-06-16  185  	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  186  	mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x42);
f24d88dac9221ea Linus Walleij 2023-06-16  187  	mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x06);
f24d88dac9221ea Linus Walleij 2023-06-16  188  	mipi_dsi_dcs_write_seq(dsi, 0x43, 0x06);
f24d88dac9221ea Linus Walleij 2023-06-16  189  	mipi_dsi_dcs_write_seq(dsi, 0x47, 0x66);
f24d88dac9221ea Linus Walleij 2023-06-16  190  	mipi_dsi_dcs_write_seq(dsi, 0x4A, 0x5D);
f24d88dac9221ea Linus Walleij 2023-06-16  191  	mipi_dsi_dcs_write_seq(dsi, 0x4B, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  192  	mipi_dsi_dcs_write_seq(dsi, 0x4C, 0x91);
f24d88dac9221ea Linus Walleij 2023-06-16  193  	mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
f24d88dac9221ea Linus Walleij 2023-06-16  194  	mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
f24d88dac9221ea Linus Walleij 2023-06-16  195  	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x12);
f24d88dac9221ea Linus Walleij 2023-06-16  196  	mipi_dsi_dcs_write_seq(dsi, 0x52, 0x34);
f24d88dac9221ea Linus Walleij 2023-06-16  197  	mipi_dsi_dcs_write_seq(dsi, 0x55, 0x82, 0x02);
f24d88dac9221ea Linus Walleij 2023-06-16  198  	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16  199  	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
f24d88dac9221ea Linus Walleij 2023-06-16  200  	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x30);
f24d88dac9221ea Linus Walleij 2023-06-16  201  	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  202  	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16  203  	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x06);
f24d88dac9221ea Linus Walleij 2023-06-16  204  	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  205  	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x82);
f24d88dac9221ea Linus Walleij 2023-06-16  206  	mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16  207  	mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
f24d88dac9221ea Linus Walleij 2023-06-16  208  	mipi_dsi_dcs_write_seq(dsi, 0x82, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16  209  	mipi_dsi_dcs_write_seq(dsi, 0x97, 0xC0);
f24d88dac9221ea Linus Walleij 2023-06-16  210  
f24d88dac9221ea Linus Walleij 2023-06-16  211  	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  212  	mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16  213  	mipi_dsi_dcs_write_seq(dsi, 0x92, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16  214  	mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
f24d88dac9221ea Linus Walleij 2023-06-16  215  	mipi_dsi_dcs_write_seq(dsi, 0x94, 0x96);
f24d88dac9221ea Linus Walleij 2023-06-16  216  	mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x55);
f24d88dac9221ea Linus Walleij 2023-06-16  217  	mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x0A);
f24d88dac9221ea Linus Walleij 2023-06-16  218  	mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16  219  	mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16  220  	mipi_dsi_dcs_write_seq(dsi, 0xDC, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16  221  	mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x22);
f24d88dac9221ea Linus Walleij 2023-06-16  222  
f24d88dac9221ea Linus Walleij 2023-06-16  223  	mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16  224  	mipi_dsi_dcs_write_seq(dsi, 0xE0, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16  225  	mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16  226  	mipi_dsi_dcs_write_seq(dsi, 0xE2, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16  227  	mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16  228  	mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16  229  	mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16  230  	mipi_dsi_dcs_write_seq(dsi, 0xE6, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16  231  	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  232  	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  233  	mipi_dsi_dcs_write_seq(dsi, 0x8D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  234  	mipi_dsi_dcs_write_seq(dsi, 0x8E, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  235  	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x90);
f24d88dac9221ea Linus Walleij 2023-06-16  236  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
f24d88dac9221ea Linus Walleij 2023-06-16  237  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  238  	mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  239  	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x07);
f24d88dac9221ea Linus Walleij 2023-06-16  240  	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  241  	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16  242  	mipi_dsi_dcs_write_seq(dsi, 0x26, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  243  	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16  244  	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  245  	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16  246  	mipi_dsi_dcs_write_seq(dsi, 0x3F, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16  247  	mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  248  	mipi_dsi_dcs_write_seq(dsi, 0x44, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  249  	mipi_dsi_dcs_write_seq(dsi, 0x45, 0x40);
f24d88dac9221ea Linus Walleij 2023-06-16  250  	mipi_dsi_dcs_write_seq(dsi, 0x48, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  251  	mipi_dsi_dcs_write_seq(dsi, 0x49, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16  252  	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  253  	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  254  	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  255  	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0xD0);
f24d88dac9221ea Linus Walleij 2023-06-16  256  	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  257  	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16  258  	mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16  259  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
f24d88dac9221ea Linus Walleij 2023-06-16  260  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  261  
f24d88dac9221ea Linus Walleij 2023-06-16  262  	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16  263  	mipi_dsi_dcs_write_seq(dsi, 0x67, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16  264  	mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16  265  
f24d88dac9221ea Linus Walleij 2023-06-16  266  	mipi_dsi_dcs_write_seq(dsi, 0x70, 0x30);
f24d88dac9221ea Linus Walleij 2023-06-16  267  
f24d88dac9221ea Linus Walleij 2023-06-16  268  	mipi_dsi_dcs_write_seq(dsi, 0xA2, 0xF3);
f24d88dac9221ea Linus Walleij 2023-06-16  269  	mipi_dsi_dcs_write_seq(dsi, 0xA3, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16  270  	mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16  271  	mipi_dsi_dcs_write_seq(dsi, 0xA5, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16  272  
f24d88dac9221ea Linus Walleij 2023-06-16  273  	mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16  274  
f24d88dac9221ea Linus Walleij 2023-06-16  275  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
f24d88dac9221ea Linus Walleij 2023-06-16  276  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  277  	mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
f24d88dac9221ea Linus Walleij 2023-06-16  278  
f24d88dac9221ea Linus Walleij 2023-06-16  279  	mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
f24d88dac9221ea Linus Walleij 2023-06-16  280  	mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
f24d88dac9221ea Linus Walleij 2023-06-16  281  	mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
f24d88dac9221ea Linus Walleij 2023-06-16  282  	mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16  283  	mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16  284  	mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  285  	mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  286  	mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16  287  	mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
f24d88dac9221ea Linus Walleij 2023-06-16  288  	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
f24d88dac9221ea Linus Walleij 2023-06-16  289  	mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  290  	mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16  291  	mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
f24d88dac9221ea Linus Walleij 2023-06-16  292  	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
f24d88dac9221ea Linus Walleij 2023-06-16  293  	mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16  294  	mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
f24d88dac9221ea Linus Walleij 2023-06-16  295  	mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16  296  	mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
f24d88dac9221ea Linus Walleij 2023-06-16  297  	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  298  	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  299  	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16  300  	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
f24d88dac9221ea Linus Walleij 2023-06-16  301  
f24d88dac9221ea Linus Walleij 2023-06-16  302  	mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  303  	mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16  304  	mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16  305  	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  306  	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16  307  	mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16  308  	mipi_dsi_dcs_write_seq(dsi, 0x30, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16  309  	mipi_dsi_dcs_write_seq(dsi, 0x31, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16  310  	mipi_dsi_dcs_write_seq(dsi, 0x32, 0x7D);
f24d88dac9221ea Linus Walleij 2023-06-16  311  	mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  312  	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16  313  	mipi_dsi_dcs_write_seq(dsi, 0x20, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  314  	mipi_dsi_dcs_write_seq(dsi, 0x33, 0x11);
f24d88dac9221ea Linus Walleij 2023-06-16  315  	mipi_dsi_dcs_write_seq(dsi, 0x34, 0x78);
f24d88dac9221ea Linus Walleij 2023-06-16  316  	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16  317  	mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16  318  	mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x9E);
f24d88dac9221ea Linus Walleij 2023-06-16  319  	mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
f24d88dac9221ea Linus Walleij 2023-06-16  320  	mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  321  
f24d88dac9221ea Linus Walleij 2023-06-16  322  	mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x49);
f24d88dac9221ea Linus Walleij 2023-06-16  323  	mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4B);
f24d88dac9221ea Linus Walleij 2023-06-16  324  	mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x48);
f24d88dac9221ea Linus Walleij 2023-06-16  325  	mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x43);
f24d88dac9221ea Linus Walleij 2023-06-16  326  	mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x40);
f24d88dac9221ea Linus Walleij 2023-06-16  327  	mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16  328  	mipi_dsi_dcs_write_seq(dsi, 0xAF, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16  329  	mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x54);
f24d88dac9221ea Linus Walleij 2023-06-16  330  	mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x4E);
f24d88dac9221ea Linus Walleij 2023-06-16  331  	mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x4D);
f24d88dac9221ea Linus Walleij 2023-06-16  332  	mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x4C);
f24d88dac9221ea Linus Walleij 2023-06-16  333  	mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x41);
f24d88dac9221ea Linus Walleij 2023-06-16  334  	mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x47);
f24d88dac9221ea Linus Walleij 2023-06-16  335  	mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x53);
f24d88dac9221ea Linus Walleij 2023-06-16  336  	mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x3E);
f24d88dac9221ea Linus Walleij 2023-06-16  337  	mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x51);
f24d88dac9221ea Linus Walleij 2023-06-16  338  	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x3C);
f24d88dac9221ea Linus Walleij 2023-06-16  339  	mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x3B);
f24d88dac9221ea Linus Walleij 2023-06-16  340  	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x46);
f24d88dac9221ea Linus Walleij 2023-06-16  341  	mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x45);
f24d88dac9221ea Linus Walleij 2023-06-16  342  	mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x55);
f24d88dac9221ea Linus Walleij 2023-06-16  343  	mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x3D);
f24d88dac9221ea Linus Walleij 2023-06-16  344  	mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x3F);
f24d88dac9221ea Linus Walleij 2023-06-16  345  	mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x52);
f24d88dac9221ea Linus Walleij 2023-06-16  346  	mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x4A);
f24d88dac9221ea Linus Walleij 2023-06-16  347  	mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x39);
f24d88dac9221ea Linus Walleij 2023-06-16  348  	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
f24d88dac9221ea Linus Walleij 2023-06-16  349  	mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x3A);
f24d88dac9221ea Linus Walleij 2023-06-16  350  	mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x42);
f24d88dac9221ea Linus Walleij 2023-06-16  351  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
f24d88dac9221ea Linus Walleij 2023-06-16  352  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  353  
f24d88dac9221ea Linus Walleij 2023-06-16  354  	mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
f24d88dac9221ea Linus Walleij 2023-06-16  355  	mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
f24d88dac9221ea Linus Walleij 2023-06-16  356  	mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
f24d88dac9221ea Linus Walleij 2023-06-16  357  	mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  358  	mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
f24d88dac9221ea Linus Walleij 2023-06-16  359  	mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  360  	mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  361  	mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16  362  	mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16  363  	mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  364  	mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
f24d88dac9221ea Linus Walleij 2023-06-16  365  	mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  366  	mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  367  	mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
f24d88dac9221ea Linus Walleij 2023-06-16  368  	mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
f24d88dac9221ea Linus Walleij 2023-06-16  369  	mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  370  	mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  371  	mipi_dsi_dcs_write_seq(dsi, 0x68, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16  372  
f24d88dac9221ea Linus Walleij 2023-06-16  373  	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  374  	mipi_dsi_dcs_write_seq(dsi, 0x78, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  375  	mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  376  
f24d88dac9221ea Linus Walleij 2023-06-16  377  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
f24d88dac9221ea Linus Walleij 2023-06-16  378  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  379  
f24d88dac9221ea Linus Walleij 2023-06-16  380  	mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
f24d88dac9221ea Linus Walleij 2023-06-16  381  	mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16  382  
f24d88dac9221ea Linus Walleij 2023-06-16  383  	mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  384  	mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16  385  	mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
f24d88dac9221ea Linus Walleij 2023-06-16  386  	mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  387  	mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
f24d88dac9221ea Linus Walleij 2023-06-16  388  	mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  389  	mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
f24d88dac9221ea Linus Walleij 2023-06-16  390  	mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  391  	mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
f24d88dac9221ea Linus Walleij 2023-06-16  392  
f24d88dac9221ea Linus Walleij 2023-06-16  393  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
f24d88dac9221ea Linus Walleij 2023-06-16  394  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  395  
f24d88dac9221ea Linus Walleij 2023-06-16  396  	mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
f24d88dac9221ea Linus Walleij 2023-06-16  397  	mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  398  
f24d88dac9221ea Linus Walleij 2023-06-16  399  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16  400  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  401  	mipi_dsi_dcs_write_seq(dsi, 0x14, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16  402  	mipi_dsi_dcs_write_seq(dsi, 0x16, 0xC0);
f24d88dac9221ea Linus Walleij 2023-06-16  403  
f24d88dac9221ea Linus Walleij 2023-06-16  404  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
f24d88dac9221ea Linus Walleij 2023-06-16  405  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  406  	mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16  407  
f24d88dac9221ea Linus Walleij 2023-06-16  408  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16  409  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  410  	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  411  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16  412  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  413  	mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
f24d88dac9221ea Linus Walleij 2023-06-16  414  
f24d88dac9221ea Linus Walleij 2023-06-16  415  	mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16  416  	mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16  417  	mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
f24d88dac9221ea Linus Walleij 2023-06-16  418  	mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  419  	mipi_dsi_dcs_write_seq(dsi, 0x51, 0x00, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16  420  	mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
f24d88dac9221ea Linus Walleij 2023-06-16  421  	mipi_dsi_dcs_write_seq(dsi, 0x55, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16  422  	mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
f24d88dac9221ea Linus Walleij 2023-06-16  423  	mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16  424  	msleep(100);
f24d88dac9221ea Linus Walleij 2023-06-16  425  	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
f24d88dac9221ea Linus Walleij 2023-06-16  426  	if (ret)
f24d88dac9221ea Linus Walleij 2023-06-16  427  		return ret;
f24d88dac9221ea Linus Walleij 2023-06-16  428  	msleep(200);
f24d88dac9221ea Linus Walleij 2023-06-16  429  	ret = mipi_dsi_dcs_set_display_on(dsi);
f24d88dac9221ea Linus Walleij 2023-06-16  430  	if (ret)
f24d88dac9221ea Linus Walleij 2023-06-16  431  		return ret;
f24d88dac9221ea Linus Walleij 2023-06-16  432  	msleep(100);
93ee1a2c0f08345 yangcong      2021-09-14  433  
f24d88dac9221ea Linus Walleij 2023-06-16  434  	return 0;
f24d88dac9221ea Linus Walleij 2023-06-16  435  }
a869b9db7adf3bd Jitao Shi     2020-01-16  436  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-06-30  9:49 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-16 21:07 [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver Linus Walleij
2023-06-16 21:07 ` Linus Walleij
2023-06-16 21:07 ` [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences Linus Walleij
2023-06-16 21:07   ` Linus Walleij
2023-06-16 21:07 ` [PATCH v2 2/2] drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking Linus Walleij
2023-06-16 21:07   ` Linus Walleij
2023-06-30  9:48 ` [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver Neil Armstrong
2023-06-30  9:48   ` Neil Armstrong
2023-06-17 15:43 [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.