devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/2] Modify the method of sending 11/29 commands
@ 2024-07-25  8:32 Zhaoxiong Lv
  2024-07-25  8:32 ` [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command Zhaoxiong Lv
  2024-07-25  8:32 ` [PATCH v1 2/2] drm/panel: jd9365da: Modify the init code of Melfas Zhaoxiong Lv
  0 siblings, 2 replies; 12+ messages in thread
From: Zhaoxiong Lv @ 2024-07-25  8:32 UTC (permalink / raw)
  To: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan
  Cc: dri-devel, devicetree, linux-kernel, Zhaoxiong Lv

This 11/29 command needs to be sent in LP mode, so move 11/29 command
to the init() function.

Modify the Melfas panel init code to satisfy the gamma value of 2.2.

Zhaoxiong Lv (2):
  drm/panel: jd9365da: Move the sending location of the 11/29 command
  drm/panel: jd9365da: Modify the init code of Melfas

 .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 137 +++++++++---------
 1 file changed, 71 insertions(+), 66 deletions(-)

-- 
2.17.1


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

* [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-07-25  8:32 [PATCH v1 0/2] Modify the method of sending 11/29 commands Zhaoxiong Lv
@ 2024-07-25  8:32 ` Zhaoxiong Lv
  2024-07-25  8:41   ` Jani Nikula
  2024-07-27 16:59   ` Dmitry Baryshkov
  2024-07-25  8:32 ` [PATCH v1 2/2] drm/panel: jd9365da: Modify the init code of Melfas Zhaoxiong Lv
  1 sibling, 2 replies; 12+ messages in thread
From: Zhaoxiong Lv @ 2024-07-25  8:32 UTC (permalink / raw)
  To: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan
  Cc: dri-devel, devicetree, linux-kernel, Zhaoxiong Lv

Move the 11/29 command from enable() to init() function

As mentioned in the patch:
https://lore.kernel.org/all/20240624141926.5250-2-lvzhaoxiong@huaqin.corp-partner.google.com/

Our DSI host has different modes in prepare() and enable()
functions. prepare() is in LP mode and enable() is in HS mode.
Since the 11/29 command must also be sent in LP mode,
so we also move 11/29 command to the init() function.

After moving the 11/29 command to the init() function,
we no longer need additional delay judgment, so we delete
variables "exit_sleep_to_display_on_delay_ms" and
"display_on_delay_ms".

Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
---
 .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 59 ++++++++++---------
 1 file changed, 32 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
index 04d315d96bff..ce73e8cb1db5 100644
--- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
+++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
@@ -31,8 +31,6 @@ struct jadard_panel_desc {
 	bool reset_before_power_off_vcioo;
 	unsigned int vcioo_to_lp11_delay_ms;
 	unsigned int lp11_to_reset_delay_ms;
-	unsigned int exit_sleep_to_display_on_delay_ms;
-	unsigned int display_on_delay_ms;
 	unsigned int backlight_off_to_display_off_delay_ms;
 	unsigned int display_off_to_enter_sleep_delay_ms;
 	unsigned int enter_sleep_to_reset_down_delay_ms;
@@ -66,26 +64,6 @@ static inline struct jadard *panel_to_jadard(struct drm_panel *panel)
 	return container_of(panel, struct jadard, panel);
 }
 
-static int jadard_enable(struct drm_panel *panel)
-{
-	struct jadard *jadard = panel_to_jadard(panel);
-	struct mipi_dsi_multi_context dsi_ctx = { .dsi = jadard->dsi };
-
-	msleep(120);
-
-	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
-
-	if (jadard->desc->exit_sleep_to_display_on_delay_ms)
-		mipi_dsi_msleep(&dsi_ctx, jadard->desc->exit_sleep_to_display_on_delay_ms);
-
-	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
-
-	if (jadard->desc->display_on_delay_ms)
-		mipi_dsi_msleep(&dsi_ctx, jadard->desc->display_on_delay_ms);
-
-	return dsi_ctx.accum_err;
-}
-
 static int jadard_disable(struct drm_panel *panel)
 {
 	struct jadard *jadard = panel_to_jadard(panel);
@@ -202,7 +180,6 @@ static const struct drm_panel_funcs jadard_funcs = {
 	.disable = jadard_disable,
 	.unprepare = jadard_unprepare,
 	.prepare = jadard_prepare,
-	.enable = jadard_enable,
 	.get_modes = jadard_get_modes,
 	.get_orientation = jadard_panel_get_orientation,
 };
@@ -382,6 +359,12 @@ static int radxa_display_8hd_ad002_init_cmds(struct jadard *jadard)
 
 	jd9365da_switch_page(&dsi_ctx, 0x00);
 
+	mipi_dsi_msleep(&dsi_ctx, 120);
+
+	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+
 	return dsi_ctx.accum_err;
 };
 
@@ -608,6 +591,12 @@ static int cz101b4001_init_cmds(struct jadard *jadard)
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xE6, 0x02);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xE7, 0x0C);
 
+	mipi_dsi_msleep(&dsi_ctx, 120);
+
+	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+
 	return dsi_ctx.accum_err;
 };
 
@@ -831,6 +820,16 @@ static int kingdisplay_kd101ne3_init_cmds(struct jadard *jadard)
 
 	jd9365da_switch_page(&dsi_ctx, 0x00);
 
+	mipi_dsi_msleep(&dsi_ctx, 120);
+
+	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
+
+	mipi_dsi_msleep(&dsi_ctx, 120);
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+
+	mipi_dsi_msleep(&dsi_ctx, 20);
+
 	return dsi_ctx.accum_err;
 };
 
@@ -859,8 +858,6 @@ static const struct jadard_panel_desc kingdisplay_kd101ne3_40ti_desc = {
 	.reset_before_power_off_vcioo = true,
 	.vcioo_to_lp11_delay_ms = 5,
 	.lp11_to_reset_delay_ms = 10,
-	.exit_sleep_to_display_on_delay_ms = 120,
-	.display_on_delay_ms = 20,
 	.backlight_off_to_display_off_delay_ms = 100,
 	.display_off_to_enter_sleep_delay_ms = 50,
 	.enter_sleep_to_reset_down_delay_ms = 100,
@@ -1074,6 +1071,16 @@ static int melfas_lmfbx101117480_init_cmds(struct jadard *jadard)
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xe6, 0x02);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xe7, 0x06);
 
+	mipi_dsi_msleep(&dsi_ctx, 120);
+
+	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
+
+	mipi_dsi_msleep(&dsi_ctx, 120);
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+
+	mipi_dsi_msleep(&dsi_ctx, 20);
+
 	return dsi_ctx.accum_err;
 };
 
@@ -1102,8 +1109,6 @@ static const struct jadard_panel_desc melfas_lmfbx101117480_desc = {
 	.reset_before_power_off_vcioo = true,
 	.vcioo_to_lp11_delay_ms = 5,
 	.lp11_to_reset_delay_ms = 10,
-	.exit_sleep_to_display_on_delay_ms = 120,
-	.display_on_delay_ms = 20,
 	.backlight_off_to_display_off_delay_ms = 100,
 	.display_off_to_enter_sleep_delay_ms = 50,
 	.enter_sleep_to_reset_down_delay_ms = 100,
-- 
2.17.1


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

* [PATCH v1 2/2] drm/panel: jd9365da: Modify the init code of Melfas
  2024-07-25  8:32 [PATCH v1 0/2] Modify the method of sending 11/29 commands Zhaoxiong Lv
  2024-07-25  8:32 ` [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command Zhaoxiong Lv
@ 2024-07-25  8:32 ` Zhaoxiong Lv
  2024-07-26 18:38   ` Jessica Zhang
  1 sibling, 1 reply; 12+ messages in thread
From: Zhaoxiong Lv @ 2024-07-25  8:32 UTC (permalink / raw)
  To: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan
  Cc: dri-devel, devicetree, linux-kernel, Zhaoxiong Lv

Modify the Melfas panel init code to satisfy the gamma
value of 2.2

Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
---
 .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 78 +++++++++----------
 1 file changed, 39 insertions(+), 39 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
index ce73e8cb1db5..44897e5218a6 100644
--- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
+++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
@@ -873,22 +873,22 @@ static int melfas_lmfbx101117480_init_cmds(struct jadard *jadard)
 	jd9365da_switch_page(&dsi_ctx, 0x01);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0c, 0x74);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x17, 0x00);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x18, 0xbf);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x19, 0x00);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x18, 0xd7);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x19, 0x01);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1a, 0x00);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1b, 0xbf);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1c, 0x00);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1b, 0xd7);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1c, 0x01);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1f, 0x70);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x20, 0x2d);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x21, 0x2d);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x22, 0x7e);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x24, 0xfe);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x24, 0xfd);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x37, 0x19);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x35, 0x28);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x38, 0x05);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x39, 0x08);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3a, 0x12);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3c, 0x78);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3c, 0x7e);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3d, 0xff);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3e, 0xff);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3f, 0x7f);
@@ -899,47 +899,47 @@ static int melfas_lmfbx101117480_init_cmds(struct jadard *jadard)
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0c, 0x74);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x55, 0x02);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x56, 0x01);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x57, 0x8e);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x57, 0x6a);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x58, 0x09);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x59, 0x0a);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5a, 0x2e);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5b, 0x1a);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5c, 0x15);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5d, 0x7f);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5e, 0x69);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5f, 0x59);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x60, 0x4e);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x61, 0x4c);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x62, 0x40);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x63, 0x45);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x64, 0x30);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x65, 0x4a);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x66, 0x49);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x67, 0x4a);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x68, 0x68);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x69, 0x57);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6a, 0x5b);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6b, 0x4e);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6c, 0x49);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5d, 0x73);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5e, 0x56);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5f, 0x43);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x60, 0x38);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x61, 0x36);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x62, 0x28);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x63, 0x2f);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x64, 0x19);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x65, 0x32);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x66, 0x31);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x67, 0x31);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x68, 0x4f);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x69, 0x3e);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6a, 0x47);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6b, 0x36);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6c, 0x31);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6d, 0x24);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6e, 0x12);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6f, 0x02);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x70, 0x7f);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x71, 0x69);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x72, 0x59);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x73, 0x4e);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x74, 0x4c);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x75, 0x40);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x76, 0x45);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x77, 0x30);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x78, 0x4a);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x79, 0x49);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7a, 0x4a);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7b, 0x68);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7c, 0x57);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7d, 0x5b);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7e, 0x4e);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7f, 0x49);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x70, 0x73);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x71, 0x56);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x72, 0x43);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x73, 0x38);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x74, 0x36);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x75, 0x28);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x76, 0x2f);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x77, 0x19);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x78, 0x32);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x79, 0x31);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7a, 0x31);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7b, 0x4f);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7c, 0x3e);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7d, 0x47);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7e, 0x36);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7f, 0x31);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x80, 0x24);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x81, 0x12);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x82, 0x02);
-- 
2.17.1


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

* Re: [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-07-25  8:32 ` [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command Zhaoxiong Lv
@ 2024-07-25  8:41   ` Jani Nikula
  2024-07-26  1:17     ` zhaoxiong lv
  2024-07-27 16:59   ` Dmitry Baryshkov
  1 sibling, 1 reply; 12+ messages in thread
From: Jani Nikula @ 2024-07-25  8:41 UTC (permalink / raw)
  To: Zhaoxiong Lv, neil.armstrong, quic_jesszhan, maarten.lankhorst,
	mripard, tzimmermann, dianders, hsinyi, airlied, daniel, jagan
  Cc: dri-devel, devicetree, linux-kernel, Zhaoxiong Lv

On Thu, 25 Jul 2024, Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com> wrote:
> Move the 11/29 command from enable() to init() function

OOC, what is the "11/29" command?

BR,
Jani.

>
> As mentioned in the patch:
> https://lore.kernel.org/all/20240624141926.5250-2-lvzhaoxiong@huaqin.corp-partner.google.com/
>
> Our DSI host has different modes in prepare() and enable()
> functions. prepare() is in LP mode and enable() is in HS mode.
> Since the 11/29 command must also be sent in LP mode,
> so we also move 11/29 command to the init() function.
>
> After moving the 11/29 command to the init() function,
> we no longer need additional delay judgment, so we delete
> variables "exit_sleep_to_display_on_delay_ms" and
> "display_on_delay_ms".
>
> Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
> ---
>  .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 59 ++++++++++---------
>  1 file changed, 32 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> index 04d315d96bff..ce73e8cb1db5 100644
> --- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> +++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> @@ -31,8 +31,6 @@ struct jadard_panel_desc {
>  	bool reset_before_power_off_vcioo;
>  	unsigned int vcioo_to_lp11_delay_ms;
>  	unsigned int lp11_to_reset_delay_ms;
> -	unsigned int exit_sleep_to_display_on_delay_ms;
> -	unsigned int display_on_delay_ms;
>  	unsigned int backlight_off_to_display_off_delay_ms;
>  	unsigned int display_off_to_enter_sleep_delay_ms;
>  	unsigned int enter_sleep_to_reset_down_delay_ms;
> @@ -66,26 +64,6 @@ static inline struct jadard *panel_to_jadard(struct drm_panel *panel)
>  	return container_of(panel, struct jadard, panel);
>  }
>  
> -static int jadard_enable(struct drm_panel *panel)
> -{
> -	struct jadard *jadard = panel_to_jadard(panel);
> -	struct mipi_dsi_multi_context dsi_ctx = { .dsi = jadard->dsi };
> -
> -	msleep(120);
> -
> -	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> -
> -	if (jadard->desc->exit_sleep_to_display_on_delay_ms)
> -		mipi_dsi_msleep(&dsi_ctx, jadard->desc->exit_sleep_to_display_on_delay_ms);
> -
> -	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> -
> -	if (jadard->desc->display_on_delay_ms)
> -		mipi_dsi_msleep(&dsi_ctx, jadard->desc->display_on_delay_ms);
> -
> -	return dsi_ctx.accum_err;
> -}
> -
>  static int jadard_disable(struct drm_panel *panel)
>  {
>  	struct jadard *jadard = panel_to_jadard(panel);
> @@ -202,7 +180,6 @@ static const struct drm_panel_funcs jadard_funcs = {
>  	.disable = jadard_disable,
>  	.unprepare = jadard_unprepare,
>  	.prepare = jadard_prepare,
> -	.enable = jadard_enable,
>  	.get_modes = jadard_get_modes,
>  	.get_orientation = jadard_panel_get_orientation,
>  };
> @@ -382,6 +359,12 @@ static int radxa_display_8hd_ad002_init_cmds(struct jadard *jadard)
>  
>  	jd9365da_switch_page(&dsi_ctx, 0x00);
>  
> +	mipi_dsi_msleep(&dsi_ctx, 120);
> +
> +	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> +
> +	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> +
>  	return dsi_ctx.accum_err;
>  };
>  
> @@ -608,6 +591,12 @@ static int cz101b4001_init_cmds(struct jadard *jadard)
>  	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xE6, 0x02);
>  	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xE7, 0x0C);
>  
> +	mipi_dsi_msleep(&dsi_ctx, 120);
> +
> +	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> +
> +	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> +
>  	return dsi_ctx.accum_err;
>  };
>  
> @@ -831,6 +820,16 @@ static int kingdisplay_kd101ne3_init_cmds(struct jadard *jadard)
>  
>  	jd9365da_switch_page(&dsi_ctx, 0x00);
>  
> +	mipi_dsi_msleep(&dsi_ctx, 120);
> +
> +	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> +
> +	mipi_dsi_msleep(&dsi_ctx, 120);
> +
> +	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> +
> +	mipi_dsi_msleep(&dsi_ctx, 20);
> +
>  	return dsi_ctx.accum_err;
>  };
>  
> @@ -859,8 +858,6 @@ static const struct jadard_panel_desc kingdisplay_kd101ne3_40ti_desc = {
>  	.reset_before_power_off_vcioo = true,
>  	.vcioo_to_lp11_delay_ms = 5,
>  	.lp11_to_reset_delay_ms = 10,
> -	.exit_sleep_to_display_on_delay_ms = 120,
> -	.display_on_delay_ms = 20,
>  	.backlight_off_to_display_off_delay_ms = 100,
>  	.display_off_to_enter_sleep_delay_ms = 50,
>  	.enter_sleep_to_reset_down_delay_ms = 100,
> @@ -1074,6 +1071,16 @@ static int melfas_lmfbx101117480_init_cmds(struct jadard *jadard)
>  	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xe6, 0x02);
>  	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xe7, 0x06);
>  
> +	mipi_dsi_msleep(&dsi_ctx, 120);
> +
> +	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> +
> +	mipi_dsi_msleep(&dsi_ctx, 120);
> +
> +	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> +
> +	mipi_dsi_msleep(&dsi_ctx, 20);
> +
>  	return dsi_ctx.accum_err;
>  };
>  
> @@ -1102,8 +1109,6 @@ static const struct jadard_panel_desc melfas_lmfbx101117480_desc = {
>  	.reset_before_power_off_vcioo = true,
>  	.vcioo_to_lp11_delay_ms = 5,
>  	.lp11_to_reset_delay_ms = 10,
> -	.exit_sleep_to_display_on_delay_ms = 120,
> -	.display_on_delay_ms = 20,
>  	.backlight_off_to_display_off_delay_ms = 100,
>  	.display_off_to_enter_sleep_delay_ms = 50,
>  	.enter_sleep_to_reset_down_delay_ms = 100,

-- 
Jani Nikula, Intel

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

* Re: [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-07-25  8:41   ` Jani Nikula
@ 2024-07-26  1:17     ` zhaoxiong lv
  2024-07-26  8:06       ` Jani Nikula
  0 siblings, 1 reply; 12+ messages in thread
From: zhaoxiong lv @ 2024-07-26  1:17 UTC (permalink / raw)
  To: Jani Nikula
  Cc: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan, dri-devel,
	devicetree, linux-kernel

On Thu, Jul 25, 2024 at 4:41 PM Jani Nikula <jani.nikula@linux.intel.com> wrote:
>
> On Thu, 25 Jul 2024, Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com> wrote:
> > Move the 11/29 command from enable() to init() function
>
> OOC, what is the "11/29" command?
>
> BR,
> Jani.

hi Jani
Sorry, maybe I didn't describe it clearly. The 11/29 commands are sent
by these two functions.

mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);

MIPI_DCS_EXIT_SLEEP_MODE = 0x11,
MIPI_DCS_SET_DISPLAY_ON= 0x29,

BR,
>
> >
> > As mentioned in the patch:
> > https://lore.kernel.org/all/20240624141926.5250-2-lvzhaoxiong@huaqin.corp-partner.google.com/
> >
> > Our DSI host has different modes in prepare() and enable()
> > functions. prepare() is in LP mode and enable() is in HS mode.
> > Since the 11/29 command must also be sent in LP mode,
> > so we also move 11/29 command to the init() function.
> >
> > After moving the 11/29 command to the init() function,
> > we no longer need additional delay judgment, so we delete
> > variables "exit_sleep_to_display_on_delay_ms" and
> > "display_on_delay_ms".
> >
> > Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
> > ---
> >  .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 59 ++++++++++---------
> >  1 file changed, 32 insertions(+), 27 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> > index 04d315d96bff..ce73e8cb1db5 100644
> > --- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> > +++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> > @@ -31,8 +31,6 @@ struct jadard_panel_desc {
> >       bool reset_before_power_off_vcioo;
> >       unsigned int vcioo_to_lp11_delay_ms;
> >       unsigned int lp11_to_reset_delay_ms;
> > -     unsigned int exit_sleep_to_display_on_delay_ms;
> > -     unsigned int display_on_delay_ms;
> >       unsigned int backlight_off_to_display_off_delay_ms;
> >       unsigned int display_off_to_enter_sleep_delay_ms;
> >       unsigned int enter_sleep_to_reset_down_delay_ms;
> > @@ -66,26 +64,6 @@ static inline struct jadard *panel_to_jadard(struct drm_panel *panel)
> >       return container_of(panel, struct jadard, panel);
> >  }
> >
> > -static int jadard_enable(struct drm_panel *panel)
> > -{
> > -     struct jadard *jadard = panel_to_jadard(panel);
> > -     struct mipi_dsi_multi_context dsi_ctx = { .dsi = jadard->dsi };
> > -
> > -     msleep(120);
> > -
> > -     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> > -
> > -     if (jadard->desc->exit_sleep_to_display_on_delay_ms)
> > -             mipi_dsi_msleep(&dsi_ctx, jadard->desc->exit_sleep_to_display_on_delay_ms);
> > -
> > -     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> > -
> > -     if (jadard->desc->display_on_delay_ms)
> > -             mipi_dsi_msleep(&dsi_ctx, jadard->desc->display_on_delay_ms);
> > -
> > -     return dsi_ctx.accum_err;
> > -}
> > -
> >  static int jadard_disable(struct drm_panel *panel)
> >  {
> >       struct jadard *jadard = panel_to_jadard(panel);
> > @@ -202,7 +180,6 @@ static const struct drm_panel_funcs jadard_funcs = {
> >       .disable = jadard_disable,
> >       .unprepare = jadard_unprepare,
> >       .prepare = jadard_prepare,
> > -     .enable = jadard_enable,
> >       .get_modes = jadard_get_modes,
> >       .get_orientation = jadard_panel_get_orientation,
> >  };
> > @@ -382,6 +359,12 @@ static int radxa_display_8hd_ad002_init_cmds(struct jadard *jadard)
> >
> >       jd9365da_switch_page(&dsi_ctx, 0x00);
> >
> > +     mipi_dsi_msleep(&dsi_ctx, 120);
> > +
> > +     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> > +
> > +     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> > +
> >       return dsi_ctx.accum_err;
> >  };
> >
> > @@ -608,6 +591,12 @@ static int cz101b4001_init_cmds(struct jadard *jadard)
> >       mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xE6, 0x02);
> >       mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xE7, 0x0C);
> >
> > +     mipi_dsi_msleep(&dsi_ctx, 120);
> > +
> > +     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> > +
> > +     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> > +
> >       return dsi_ctx.accum_err;
> >  };
> >
> > @@ -831,6 +820,16 @@ static int kingdisplay_kd101ne3_init_cmds(struct jadard *jadard)
> >
> >       jd9365da_switch_page(&dsi_ctx, 0x00);
> >
> > +     mipi_dsi_msleep(&dsi_ctx, 120);
> > +
> > +     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> > +
> > +     mipi_dsi_msleep(&dsi_ctx, 120);
> > +
> > +     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> > +
> > +     mipi_dsi_msleep(&dsi_ctx, 20);
> > +
> >       return dsi_ctx.accum_err;
> >  };
> >
> > @@ -859,8 +858,6 @@ static const struct jadard_panel_desc kingdisplay_kd101ne3_40ti_desc = {
> >       .reset_before_power_off_vcioo = true,
> >       .vcioo_to_lp11_delay_ms = 5,
> >       .lp11_to_reset_delay_ms = 10,
> > -     .exit_sleep_to_display_on_delay_ms = 120,
> > -     .display_on_delay_ms = 20,
> >       .backlight_off_to_display_off_delay_ms = 100,
> >       .display_off_to_enter_sleep_delay_ms = 50,
> >       .enter_sleep_to_reset_down_delay_ms = 100,
> > @@ -1074,6 +1071,16 @@ static int melfas_lmfbx101117480_init_cmds(struct jadard *jadard)
> >       mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xe6, 0x02);
> >       mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xe7, 0x06);
> >
> > +     mipi_dsi_msleep(&dsi_ctx, 120);
> > +
> > +     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> > +
> > +     mipi_dsi_msleep(&dsi_ctx, 120);
> > +
> > +     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
> > +
> > +     mipi_dsi_msleep(&dsi_ctx, 20);
> > +
> >       return dsi_ctx.accum_err;
> >  };
> >
> > @@ -1102,8 +1109,6 @@ static const struct jadard_panel_desc melfas_lmfbx101117480_desc = {
> >       .reset_before_power_off_vcioo = true,
> >       .vcioo_to_lp11_delay_ms = 5,
> >       .lp11_to_reset_delay_ms = 10,
> > -     .exit_sleep_to_display_on_delay_ms = 120,
> > -     .display_on_delay_ms = 20,
> >       .backlight_off_to_display_off_delay_ms = 100,
> >       .display_off_to_enter_sleep_delay_ms = 50,
> >       .enter_sleep_to_reset_down_delay_ms = 100,
>
> --
> Jani Nikula, Intel

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

* Re: [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-07-26  1:17     ` zhaoxiong lv
@ 2024-07-26  8:06       ` Jani Nikula
  0 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2024-07-26  8:06 UTC (permalink / raw)
  To: zhaoxiong lv
  Cc: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan, dri-devel,
	devicetree, linux-kernel

On Fri, 26 Jul 2024, zhaoxiong lv <lvzhaoxiong@huaqin.corp-partner.google.com> wrote:
> On Thu, Jul 25, 2024 at 4:41 PM Jani Nikula <jani.nikula@linux.intel.com> wrote:
>>
>> On Thu, 25 Jul 2024, Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com> wrote:
>> > Move the 11/29 command from enable() to init() function
>>
>> OOC, what is the "11/29" command?
>>
>> BR,
>> Jani.
>
> hi Jani
> Sorry, maybe I didn't describe it clearly. The 11/29 commands are sent
> by these two functions.
>
> mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
> mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
>
> MIPI_DCS_EXIT_SLEEP_MODE = 0x11,
> MIPI_DCS_SET_DISPLAY_ON= 0x29,

Maybe refer to the commands with their names then? Exit sleep mode and
set display on.

BR,
Jani.



>
> BR,
>>
>> >
>> > As mentioned in the patch:
>> > https://lore.kernel.org/all/20240624141926.5250-2-lvzhaoxiong@huaqin.corp-partner.google.com/
>> >
>> > Our DSI host has different modes in prepare() and enable()
>> > functions. prepare() is in LP mode and enable() is in HS mode.
>> > Since the 11/29 command must also be sent in LP mode,
>> > so we also move 11/29 command to the init() function.
>> >
>> > After moving the 11/29 command to the init() function,
>> > we no longer need additional delay judgment, so we delete
>> > variables "exit_sleep_to_display_on_delay_ms" and
>> > "display_on_delay_ms".
>> >
>> > Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
>> > ---
>> >  .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 59 ++++++++++---------
>> >  1 file changed, 32 insertions(+), 27 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
>> > index 04d315d96bff..ce73e8cb1db5 100644
>> > --- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
>> > +++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
>> > @@ -31,8 +31,6 @@ struct jadard_panel_desc {
>> >       bool reset_before_power_off_vcioo;
>> >       unsigned int vcioo_to_lp11_delay_ms;
>> >       unsigned int lp11_to_reset_delay_ms;
>> > -     unsigned int exit_sleep_to_display_on_delay_ms;
>> > -     unsigned int display_on_delay_ms;
>> >       unsigned int backlight_off_to_display_off_delay_ms;
>> >       unsigned int display_off_to_enter_sleep_delay_ms;
>> >       unsigned int enter_sleep_to_reset_down_delay_ms;
>> > @@ -66,26 +64,6 @@ static inline struct jadard *panel_to_jadard(struct drm_panel *panel)
>> >       return container_of(panel, struct jadard, panel);
>> >  }
>> >
>> > -static int jadard_enable(struct drm_panel *panel)
>> > -{
>> > -     struct jadard *jadard = panel_to_jadard(panel);
>> > -     struct mipi_dsi_multi_context dsi_ctx = { .dsi = jadard->dsi };
>> > -
>> > -     msleep(120);
>> > -
>> > -     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
>> > -
>> > -     if (jadard->desc->exit_sleep_to_display_on_delay_ms)
>> > -             mipi_dsi_msleep(&dsi_ctx, jadard->desc->exit_sleep_to_display_on_delay_ms);
>> > -
>> > -     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
>> > -
>> > -     if (jadard->desc->display_on_delay_ms)
>> > -             mipi_dsi_msleep(&dsi_ctx, jadard->desc->display_on_delay_ms);
>> > -
>> > -     return dsi_ctx.accum_err;
>> > -}
>> > -
>> >  static int jadard_disable(struct drm_panel *panel)
>> >  {
>> >       struct jadard *jadard = panel_to_jadard(panel);
>> > @@ -202,7 +180,6 @@ static const struct drm_panel_funcs jadard_funcs = {
>> >       .disable = jadard_disable,
>> >       .unprepare = jadard_unprepare,
>> >       .prepare = jadard_prepare,
>> > -     .enable = jadard_enable,
>> >       .get_modes = jadard_get_modes,
>> >       .get_orientation = jadard_panel_get_orientation,
>> >  };
>> > @@ -382,6 +359,12 @@ static int radxa_display_8hd_ad002_init_cmds(struct jadard *jadard)
>> >
>> >       jd9365da_switch_page(&dsi_ctx, 0x00);
>> >
>> > +     mipi_dsi_msleep(&dsi_ctx, 120);
>> > +
>> > +     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
>> > +
>> > +     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
>> > +
>> >       return dsi_ctx.accum_err;
>> >  };
>> >
>> > @@ -608,6 +591,12 @@ static int cz101b4001_init_cmds(struct jadard *jadard)
>> >       mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xE6, 0x02);
>> >       mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xE7, 0x0C);
>> >
>> > +     mipi_dsi_msleep(&dsi_ctx, 120);
>> > +
>> > +     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
>> > +
>> > +     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
>> > +
>> >       return dsi_ctx.accum_err;
>> >  };
>> >
>> > @@ -831,6 +820,16 @@ static int kingdisplay_kd101ne3_init_cmds(struct jadard *jadard)
>> >
>> >       jd9365da_switch_page(&dsi_ctx, 0x00);
>> >
>> > +     mipi_dsi_msleep(&dsi_ctx, 120);
>> > +
>> > +     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
>> > +
>> > +     mipi_dsi_msleep(&dsi_ctx, 120);
>> > +
>> > +     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
>> > +
>> > +     mipi_dsi_msleep(&dsi_ctx, 20);
>> > +
>> >       return dsi_ctx.accum_err;
>> >  };
>> >
>> > @@ -859,8 +858,6 @@ static const struct jadard_panel_desc kingdisplay_kd101ne3_40ti_desc = {
>> >       .reset_before_power_off_vcioo = true,
>> >       .vcioo_to_lp11_delay_ms = 5,
>> >       .lp11_to_reset_delay_ms = 10,
>> > -     .exit_sleep_to_display_on_delay_ms = 120,
>> > -     .display_on_delay_ms = 20,
>> >       .backlight_off_to_display_off_delay_ms = 100,
>> >       .display_off_to_enter_sleep_delay_ms = 50,
>> >       .enter_sleep_to_reset_down_delay_ms = 100,
>> > @@ -1074,6 +1071,16 @@ static int melfas_lmfbx101117480_init_cmds(struct jadard *jadard)
>> >       mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xe6, 0x02);
>> >       mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xe7, 0x06);
>> >
>> > +     mipi_dsi_msleep(&dsi_ctx, 120);
>> > +
>> > +     mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
>> > +
>> > +     mipi_dsi_msleep(&dsi_ctx, 120);
>> > +
>> > +     mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
>> > +
>> > +     mipi_dsi_msleep(&dsi_ctx, 20);
>> > +
>> >       return dsi_ctx.accum_err;
>> >  };
>> >
>> > @@ -1102,8 +1109,6 @@ static const struct jadard_panel_desc melfas_lmfbx101117480_desc = {
>> >       .reset_before_power_off_vcioo = true,
>> >       .vcioo_to_lp11_delay_ms = 5,
>> >       .lp11_to_reset_delay_ms = 10,
>> > -     .exit_sleep_to_display_on_delay_ms = 120,
>> > -     .display_on_delay_ms = 20,
>> >       .backlight_off_to_display_off_delay_ms = 100,
>> >       .display_off_to_enter_sleep_delay_ms = 50,
>> >       .enter_sleep_to_reset_down_delay_ms = 100,
>>
>> --
>> Jani Nikula, Intel

-- 
Jani Nikula, Intel

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

* Re: [PATCH v1 2/2] drm/panel: jd9365da: Modify the init code of Melfas
  2024-07-25  8:32 ` [PATCH v1 2/2] drm/panel: jd9365da: Modify the init code of Melfas Zhaoxiong Lv
@ 2024-07-26 18:38   ` Jessica Zhang
  0 siblings, 0 replies; 12+ messages in thread
From: Jessica Zhang @ 2024-07-26 18:38 UTC (permalink / raw)
  To: Zhaoxiong Lv, neil.armstrong, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan
  Cc: dri-devel, devicetree, linux-kernel



On 7/25/2024 1:32 AM, Zhaoxiong Lv wrote:
> Modify the Melfas panel init code to satisfy the gamma
> value of 2.2
> 
> Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>

Hi Zhaoxiong,

Acked-by: Jessica Zhang <quic_jesszhan@quicinc.com>

Thanks,

Jessica Zhang

> ---
>   .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 78 +++++++++----------
>   1 file changed, 39 insertions(+), 39 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> index ce73e8cb1db5..44897e5218a6 100644
> --- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> +++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
> @@ -873,22 +873,22 @@ static int melfas_lmfbx101117480_init_cmds(struct jadard *jadard)
>   	jd9365da_switch_page(&dsi_ctx, 0x01);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0c, 0x74);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x17, 0x00);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x18, 0xbf);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x19, 0x00);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x18, 0xd7);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x19, 0x01);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1a, 0x00);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1b, 0xbf);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1c, 0x00);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1b, 0xd7);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1c, 0x01);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1f, 0x70);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x20, 0x2d);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x21, 0x2d);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x22, 0x7e);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x24, 0xfe);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x24, 0xfd);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x37, 0x19);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x35, 0x28);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x38, 0x05);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x39, 0x08);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3a, 0x12);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3c, 0x78);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3c, 0x7e);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3d, 0xff);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3e, 0xff);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3f, 0x7f);
> @@ -899,47 +899,47 @@ static int melfas_lmfbx101117480_init_cmds(struct jadard *jadard)
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0c, 0x74);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x55, 0x02);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x56, 0x01);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x57, 0x8e);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x57, 0x6a);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x58, 0x09);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x59, 0x0a);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5a, 0x2e);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5b, 0x1a);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5c, 0x15);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5d, 0x7f);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5e, 0x69);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5f, 0x59);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x60, 0x4e);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x61, 0x4c);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x62, 0x40);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x63, 0x45);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x64, 0x30);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x65, 0x4a);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x66, 0x49);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x67, 0x4a);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x68, 0x68);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x69, 0x57);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6a, 0x5b);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6b, 0x4e);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6c, 0x49);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5d, 0x73);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5e, 0x56);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5f, 0x43);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x60, 0x38);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x61, 0x36);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x62, 0x28);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x63, 0x2f);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x64, 0x19);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x65, 0x32);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x66, 0x31);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x67, 0x31);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x68, 0x4f);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x69, 0x3e);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6a, 0x47);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6b, 0x36);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6c, 0x31);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6d, 0x24);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6e, 0x12);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6f, 0x02);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x70, 0x7f);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x71, 0x69);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x72, 0x59);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x73, 0x4e);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x74, 0x4c);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x75, 0x40);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x76, 0x45);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x77, 0x30);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x78, 0x4a);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x79, 0x49);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7a, 0x4a);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7b, 0x68);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7c, 0x57);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7d, 0x5b);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7e, 0x4e);
> -	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7f, 0x49);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x70, 0x73);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x71, 0x56);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x72, 0x43);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x73, 0x38);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x74, 0x36);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x75, 0x28);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x76, 0x2f);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x77, 0x19);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x78, 0x32);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x79, 0x31);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7a, 0x31);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7b, 0x4f);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7c, 0x3e);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7d, 0x47);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7e, 0x36);
> +	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7f, 0x31);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x80, 0x24);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x81, 0x12);
>   	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x82, 0x02);
> -- 
> 2.17.1
> 

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

* Re: [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-07-25  8:32 ` [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command Zhaoxiong Lv
  2024-07-25  8:41   ` Jani Nikula
@ 2024-07-27 16:59   ` Dmitry Baryshkov
  2024-07-29  3:10     ` zhaoxiong lv
  1 sibling, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-07-27 16:59 UTC (permalink / raw)
  To: Zhaoxiong Lv
  Cc: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan, dri-devel,
	devicetree, linux-kernel

On Thu, Jul 25, 2024 at 04:32:44PM GMT, Zhaoxiong Lv wrote:
> Move the 11/29 command from enable() to init() function
> 
> As mentioned in the patch:
> https://lore.kernel.org/all/20240624141926.5250-2-lvzhaoxiong@huaqin.corp-partner.google.com/
> 
> Our DSI host has different modes in prepare() and enable()
> functions. prepare() is in LP mode and enable() is in HS mode.
> Since the 11/29 command must also be sent in LP mode,
> so we also move 11/29 command to the init() function.
> 
> After moving the 11/29 command to the init() function,
> we no longer need additional delay judgment, so we delete
> variables "exit_sleep_to_display_on_delay_ms" and
> "display_on_delay_ms".

Won't this result in a garbage being displayed on the panel during
startup?

> 
> Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
> ---
>  .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 59 ++++++++++---------
>  1 file changed, 32 insertions(+), 27 deletions(-)


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

* Re: [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-07-27 16:59   ` Dmitry Baryshkov
@ 2024-07-29  3:10     ` zhaoxiong lv
  2024-07-29 20:09       ` Dmitry Baryshkov
  0 siblings, 1 reply; 12+ messages in thread
From: zhaoxiong lv @ 2024-07-29  3:10 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan, dri-devel,
	devicetree, linux-kernel

On Sun, Jul 28, 2024 at 12:59 AM Dmitry Baryshkov
<dmitry.baryshkov@linaro.org> wrote:
>
> On Thu, Jul 25, 2024 at 04:32:44PM GMT, Zhaoxiong Lv wrote:
> > Move the 11/29 command from enable() to init() function
> >
> > As mentioned in the patch:
> > https://lore.kernel.org/all/20240624141926.5250-2-lvzhaoxiong@huaqin.corp-partner.google.com/
> >
> > Our DSI host has different modes in prepare() and enable()
> > functions. prepare() is in LP mode and enable() is in HS mode.
> > Since the 11/29 command must also be sent in LP mode,
> > so we also move 11/29 command to the init() function.
> >
> > After moving the 11/29 command to the init() function,
> > we no longer need additional delay judgment, so we delete
> > variables "exit_sleep_to_display_on_delay_ms" and
> > "display_on_delay_ms".
>
> Won't this result in a garbage being displayed on the panel during
> startup?

Hi Dmitry

We just moved "Exit sleep mode" and "set display on" from the enable()
function to the init() function and did not make any other changes.
It seems that many drivers also put the "init code" and "Exit sleep
mode" in one function.
In addition, we briefly tested the kingdisplay_kd101ne3 panel and
melfas_lmfbx101117480 panel, and it seems that there is no garbage on
the panel.

BR
>
> >
> > Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
> > ---
> >  .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 59 ++++++++++---------
> >  1 file changed, 32 insertions(+), 27 deletions(-)
>

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

* Re: [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-07-29  3:10     ` zhaoxiong lv
@ 2024-07-29 20:09       ` Dmitry Baryshkov
  2024-08-05  2:38         ` zhaoxiong lv
  0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-07-29 20:09 UTC (permalink / raw)
  To: zhaoxiong lv
  Cc: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan, dri-devel,
	devicetree, linux-kernel

On Mon, 29 Jul 2024 at 06:10, zhaoxiong lv
<lvzhaoxiong@huaqin.corp-partner.google.com> wrote:
>
> On Sun, Jul 28, 2024 at 12:59 AM Dmitry Baryshkov
> <dmitry.baryshkov@linaro.org> wrote:
> >
> > On Thu, Jul 25, 2024 at 04:32:44PM GMT, Zhaoxiong Lv wrote:
> > > Move the 11/29 command from enable() to init() function
> > >
> > > As mentioned in the patch:
> > > https://lore.kernel.org/all/20240624141926.5250-2-lvzhaoxiong@huaqin.corp-partner.google.com/
> > >
> > > Our DSI host has different modes in prepare() and enable()
> > > functions. prepare() is in LP mode and enable() is in HS mode.
> > > Since the 11/29 command must also be sent in LP mode,
> > > so we also move 11/29 command to the init() function.
> > >
> > > After moving the 11/29 command to the init() function,
> > > we no longer need additional delay judgment, so we delete
> > > variables "exit_sleep_to_display_on_delay_ms" and
> > > "display_on_delay_ms".
> >
> > Won't this result in a garbage being displayed on the panel during
> > startup?
>
> Hi Dmitry
>
> We just moved "Exit sleep mode" and "set display on" from the enable()
> function to the init() function and did not make any other changes.
> It seems that many drivers also put the "init code" and "Exit sleep
> mode" in one function.

You have moved the functions that actually enable the display out. And
by the definition it's expected that there is no video stream during
pre_enable(), it gets turned on afterwards. That's why I asked if
there is any kind of garbage or not.

> In addition, we briefly tested the kingdisplay_kd101ne3 panel and
> melfas_lmfbx101117480 panel, and it seems that there is no garbage on
> the panel.

Ack.

>
> BR
> >
> > >
> > > Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
> > > ---
> > >  .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 59 ++++++++++---------
> > >  1 file changed, 32 insertions(+), 27 deletions(-)
> >



-- 
With best wishes
Dmitry

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

* Re: [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-07-29 20:09       ` Dmitry Baryshkov
@ 2024-08-05  2:38         ` zhaoxiong lv
  2024-08-05 15:56           ` Doug Anderson
  0 siblings, 1 reply; 12+ messages in thread
From: zhaoxiong lv @ 2024-08-05  2:38 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: neil.armstrong, quic_jesszhan, maarten.lankhorst, mripard,
	tzimmermann, dianders, hsinyi, airlied, daniel, jagan, dri-devel,
	devicetree, linux-kernel

Hi all

Do you have any other suggestions for this patch?
Looking forward to your reply, thank you

BR

On Tue, Jul 30, 2024 at 4:09 AM Dmitry Baryshkov
<dmitry.baryshkov@linaro.org> wrote:
>
> On Mon, 29 Jul 2024 at 06:10, zhaoxiong lv
> <lvzhaoxiong@huaqin.corp-partner.google.com> wrote:
> >
> > On Sun, Jul 28, 2024 at 12:59 AM Dmitry Baryshkov
> > <dmitry.baryshkov@linaro.org> wrote:
> > >
> > > On Thu, Jul 25, 2024 at 04:32:44PM GMT, Zhaoxiong Lv wrote:
> > > > Move the 11/29 command from enable() to init() function
> > > >
> > > > As mentioned in the patch:
> > > > https://lore.kernel.org/all/20240624141926.5250-2-lvzhaoxiong@huaqin.corp-partner.google.com/
> > > >
> > > > Our DSI host has different modes in prepare() and enable()
> > > > functions. prepare() is in LP mode and enable() is in HS mode.
> > > > Since the 11/29 command must also be sent in LP mode,
> > > > so we also move 11/29 command to the init() function.
> > > >
> > > > After moving the 11/29 command to the init() function,
> > > > we no longer need additional delay judgment, so we delete
> > > > variables "exit_sleep_to_display_on_delay_ms" and
> > > > "display_on_delay_ms".
> > >
> > > Won't this result in a garbage being displayed on the panel during
> > > startup?
> >
> > Hi Dmitry
> >
> > We just moved "Exit sleep mode" and "set display on" from the enable()
> > function to the init() function and did not make any other changes.
> > It seems that many drivers also put the "init code" and "Exit sleep
> > mode" in one function.
>
> You have moved the functions that actually enable the display out. And
> by the definition it's expected that there is no video stream during
> pre_enable(), it gets turned on afterwards. That's why I asked if
> there is any kind of garbage or not.
>
> > In addition, we briefly tested the kingdisplay_kd101ne3 panel and
> > melfas_lmfbx101117480 panel, and it seems that there is no garbage on
> > the panel.
>
> Ack.
>
> >
> > BR
> > >
> > > >
> > > > Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
> > > > ---
> > > >  .../gpu/drm/panel/panel-jadard-jd9365da-h3.c  | 59 ++++++++++---------
> > > >  1 file changed, 32 insertions(+), 27 deletions(-)
> > >
>
>
>
> --
> With best wishes
> Dmitry

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

* Re: [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command
  2024-08-05  2:38         ` zhaoxiong lv
@ 2024-08-05 15:56           ` Doug Anderson
  0 siblings, 0 replies; 12+ messages in thread
From: Doug Anderson @ 2024-08-05 15:56 UTC (permalink / raw)
  To: zhaoxiong lv
  Cc: Dmitry Baryshkov, neil.armstrong, quic_jesszhan,
	maarten.lankhorst, mripard, tzimmermann, hsinyi, airlied, daniel,
	jagan, dri-devel, devicetree, linux-kernel

Hi,

On Sun, Aug 4, 2024 at 7:38 PM zhaoxiong lv
<lvzhaoxiong@huaqin.corp-partner.google.com> wrote:
>
> Hi all
>
> Do you have any other suggestions for this patch?
> Looking forward to your reply, thank you

Please make sure not to "top post". Folks on the mailing lists
generally frown on this and it's a good way to get your email ignored
by some people.

At this point I think folks are waiting for you to post the next
version addressing comments. Specifically, things you'd want to change
for the next version:

* In the commit message (and subject), "refer to the commands with
their names" (Jani)

* In the commit message, address Dmitry's concern. In other words, say
something about the fact that this doesn't cause garbage being
displayed on the panel during startup and why not.


When sending v2, don't forget to include Jessica's "Ack" on patch #2.

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

end of thread, other threads:[~2024-08-05 15:56 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-25  8:32 [PATCH v1 0/2] Modify the method of sending 11/29 commands Zhaoxiong Lv
2024-07-25  8:32 ` [PATCH v1 1/2] drm/panel: jd9365da: Move the sending location of the 11/29 command Zhaoxiong Lv
2024-07-25  8:41   ` Jani Nikula
2024-07-26  1:17     ` zhaoxiong lv
2024-07-26  8:06       ` Jani Nikula
2024-07-27 16:59   ` Dmitry Baryshkov
2024-07-29  3:10     ` zhaoxiong lv
2024-07-29 20:09       ` Dmitry Baryshkov
2024-08-05  2:38         ` zhaoxiong lv
2024-08-05 15:56           ` Doug Anderson
2024-07-25  8:32 ` [PATCH v1 2/2] drm/panel: jd9365da: Modify the init code of Melfas Zhaoxiong Lv
2024-07-26 18:38   ` Jessica Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).