mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] drm/panel: Replace deprecated DCS display-on calls
@ 2026-11-04  7:38 amit
  2026-11-04 12:11 ` Linus Walleij
  2026-11-07 21:44 ` kernel test robot
  0 siblings, 2 replies; 3+ messages in thread
From: amit @ 2026-11-04  7:38 UTC (permalink / raw)
  To: neil.armstrong
  Cc: hanxu5, jesszhan0024, maarten.lankhorst, mripard, tzimmermann,
	airlied, simona, icenowy, jagan, linusw, robert.chiras,
	dri-devel, linux-kernel, amit

Signed-off-by: amit <amittibi123@gmail.com>
---
 drivers/gpu/drm/panel/panel-boe-himax8279d.c       | 14 ++++++++++++--
 drivers/gpu/drm/panel/panel-dsi-cm.c               |  7 ++++++-
 drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c  |  7 +++++--
 .../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c  |  6 +++++-
 drivers/gpu/drm/panel/panel-innolux-p079zca.c      |  7 ++++++-
 drivers/gpu/drm/panel/panel-khadas-ts050.c         |  7 ++++++-
 drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c |  7 ++++++-
 drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c |  7 ++++++-
 drivers/gpu/drm/panel/panel-newvision-nv3051d.c    |  7 ++++++-
 drivers/gpu/drm/panel/panel-novatek-nt35510.c      |  7 ++++++-
 drivers/gpu/drm/panel/panel-raydium-rm67191.c      |  7 ++++++-
 drivers/gpu/drm/panel/panel-raydium-rm68200.c      |  7 ++++++-
 drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c   |  7 ++++++-
 drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c    |  7 ++++++-
 14 files changed, 88 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
index 4a8560b4b..a4b35e042 100644
--- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c
+++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
@@ -155,7 +155,12 @@ static int boe_panel_prepare(struct drm_panel *panel)
 	/* T6: 120ms - 121ms */
 	usleep_range(120000, 121000);
 
-	err = mipi_dsi_dcs_set_display_on(pinfo->link);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = pinfo->link,
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	err = dsi_ctx.accum_err;
 	if (err < 0) {
 		dev_err(panel->dev, "failed to set display on: %d\n", err);
 		goto poweroff;
@@ -178,7 +183,12 @@ static int boe_panel_enable(struct drm_panel *panel)
 
 	usleep_range(120000, 121000);
 
-	ret = mipi_dsi_dcs_set_display_on(pinfo->link);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = pinfo->link,
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	ret = dsi_ctx.accum_err;
 	if (ret < 0) {
 		dev_err(panel->dev, "failed to set display on: %d\n", ret);
 		return ret;
diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c b/drivers/gpu/drm/panel/panel-dsi-cm.c
index ae6e9ffc4..37dd2961a 100644
--- a/drivers/gpu/drm/panel/panel-dsi-cm.c
+++ b/drivers/gpu/drm/panel/panel-dsi-cm.c
@@ -289,6 +289,10 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 
 	ddata->dsi->mode_flags |= MIPI_DSI_MODE_LPM;
 
+	struct mipi_dsi_multi_context ctx = {
+		.dsi = ddata->dsi,
+	};
+
 	r = dsicm_sleep_out(ddata);
 	if (r)
 		goto err;
@@ -314,7 +318,8 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 	if (r)
 		goto err;
 
-	r = mipi_dsi_dcs_set_display_on(ddata->dsi);
+	mipi_dsi_dcs_set_display_on_multi(&ctx);
+	r = ctx.accum_err;
 	if (r)
 		goto err;
 
diff --git a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
index 8c3a231c1..baa64b7ae 100644
--- a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
+++ b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
@@ -344,12 +344,15 @@ static int k101_im2ba02_enable(struct drm_panel *panel)
 {
 	struct k101_im2ba02 *ctx = panel_to_k101_im2ba02(panel);
 	const struct k101_im2ba02_init_cmd *cmd = &timed_cmds[1];
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = ctx->dsi,
+	};
 	int ret;
 
 	msleep(150);
 
-	ret = mipi_dsi_dcs_set_display_on(ctx->dsi);
-	if (ret < 0)
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	if (dsi_ctx.accum_err)
 		return ret;
 
 	msleep(50);
diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
index c1d8ca5ca..070faf55f 100644
--- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
+++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
@@ -93,11 +93,15 @@ static int feiyang_prepare(struct drm_panel *panel)
 static int feiyang_enable(struct drm_panel *panel)
 {
 	struct feiyang *ctx = panel_to_feiyang(panel);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = ctx->dsi,
+	};
 
 	/* T12 (video & logic signal rise + backlight rise) T12 >= 200ms */
 	msleep(200);
 
-	return mipi_dsi_dcs_set_display_on(ctx->dsi);
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	return dsi_ctx.accum_err;
 }
 
 static int feiyang_disable(struct drm_panel *panel)
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index 80afeeab9..300cb5a3c 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -117,7 +117,12 @@ static int innolux_panel_prepare(struct drm_panel *panel)
 	/* T6: 120ms - 1000ms*/
 	msleep(120);
 
-	err = mipi_dsi_dcs_set_display_on(innolux->link);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = innolux->link,
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	err = dsi_ctx.accum_err;
 	if (err < 0) {
 		dev_err(panel->dev, "failed to set display on: %d\n", err);
 		goto poweroff;
diff --git a/drivers/gpu/drm/panel/panel-khadas-ts050.c b/drivers/gpu/drm/panel/panel-khadas-ts050.c
index 67ca055f0..1dca6c592 100644
--- a/drivers/gpu/drm/panel/panel-khadas-ts050.c
+++ b/drivers/gpu/drm/panel/panel-khadas-ts050.c
@@ -694,7 +694,12 @@ static int khadas_ts050_panel_prepare(struct drm_panel *panel)
 		goto poweroff;
 	}
 
-	err = mipi_dsi_dcs_set_display_on(khadas_ts050->link);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = khadas_ts050->link,
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	err = dsi_ctx.accum_err;
 	if (err < 0) {
 		dev_err(panel->dev, "failed to set display on: %d\n", err);
 		goto poweroff;
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index 893af9b16..deb82404d 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -250,7 +250,12 @@ static int kingdisplay_panel_prepare(struct drm_panel *panel)
 	/* T6: 120ms */
 	msleep(120);
 
-	err = mipi_dsi_dcs_set_display_on(kingdisplay->link);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = kingdisplay->link,
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	err = dsi_ctx.accum_err;
 	if (err < 0) {
 		dev_err(panel->dev, "failed to set display on: %d\n", err);
 		goto poweroff;
diff --git a/drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c b/drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c
index ff35b62a3..f1d9e4eed 100644
--- a/drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c
+++ b/drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c
@@ -553,7 +553,12 @@ static int ltk500hd1829_prepare(struct drm_panel *panel)
 	/* 120ms to exit sleep mode */
 	msleep(120);
 
-	ret = mipi_dsi_dcs_set_display_on(dsi);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = dsi
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	ret = dsi_ctx.accum_err;
 	if (ret < 0) {
 		dev_err(panel->dev, "failed to set display on: %d\n", ret);
 		goto disable_iovcc;
diff --git a/drivers/gpu/drm/panel/panel-newvision-nv3051d.c b/drivers/gpu/drm/panel/panel-newvision-nv3051d.c
index 22560384e..eeb18ad87 100644
--- a/drivers/gpu/drm/panel/panel-newvision-nv3051d.c
+++ b/drivers/gpu/drm/panel/panel-newvision-nv3051d.c
@@ -303,7 +303,12 @@ static int panel_nv3051d_prepare(struct drm_panel *panel)
 
 	msleep(200);
 
-	ret = mipi_dsi_dcs_set_display_on(dsi);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = dsi
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	ret = dsi_ctx.accum_err;
 	if (ret < 0) {
 		dev_err(ctx->dev, "Failed to set display on: %d\n", ret);
 		goto disable_vdd;
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt35510.c b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
index 3189d89c7..d977b9f28 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt35510.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
@@ -1039,7 +1039,12 @@ static int nt35510_prepare(struct drm_panel *panel)
 			return ret;
 	}
 
-	ret = mipi_dsi_dcs_set_display_on(dsi);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = dsi
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	ret = dsi_ctx.accum_err;
 	if (ret) {
 		dev_err(nt->dev, "failed to turn display on (%d)\n", ret);
 		return ret;
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
index 2af6aa47a..bf9644424 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
@@ -371,7 +371,12 @@ static int rad_panel_enable(struct drm_panel *panel)
 
 	usleep_range(5000, 7000);
 
-	ret = mipi_dsi_dcs_set_display_on(dsi);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = dsi
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	ret = dsi_ctx.accum_err;
 	if (ret < 0) {
 		dev_err(dev, "Failed to set display ON (%d)\n", ret);
 		goto fail;
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm68200.c b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
index c535dc931..38993f821 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm68200.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
@@ -281,7 +281,12 @@ static int rm68200_prepare(struct drm_panel *panel)
 
 	msleep(125);
 
-	ret = mipi_dsi_dcs_set_display_on(dsi);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = dsi
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	ret = dsi_ctx.accum_err;
 	if (ret)
 		return ret;
 
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
index 1f825d995..36edb80b1 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
@@ -389,7 +389,12 @@ static int s6e63j0x03_enable(struct drm_panel *panel)
 	if (ret < 0)
 		return ret;
 
-	ret = mipi_dsi_dcs_set_display_on(dsi);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = dsi
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	ret = dsi_ctx.accum_err;
 	if (ret < 0)
 		return ret;
 
diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
index d159b0e4f..e462c47f6 100644
--- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
@@ -206,7 +206,12 @@ static int sharp_panel_prepare(struct drm_panel *panel)
 		goto poweroff;
 	}
 
-	err = mipi_dsi_dcs_set_display_on(sharp->link1);
+	struct mipi_dsi_multi_context dsi_ctx = {
+		.dsi = sharp->link1,
+	};
+
+	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+	err = dsi_ctx.accum_err;
 	if (err < 0) {
 		dev_err(panel->dev, "failed to set display on: %d\n", err);
 		goto poweroff;
-- 
2.54.0


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

* Re: [PATCH] drm/panel: Replace deprecated DCS display-on calls
  2026-11-04  7:38 [PATCH] drm/panel: Replace deprecated DCS display-on calls amit
@ 2026-11-04 12:11 ` Linus Walleij
  2026-11-07 21:44 ` kernel test robot
  1 sibling, 0 replies; 3+ messages in thread
From: Linus Walleij @ 2026-11-04 12:11 UTC (permalink / raw)
  To: amit
  Cc: neil.armstrong, hanxu5, jesszhan0024, maarten.lankhorst, mripard,
	tzimmermann, airlied, simona, icenowy, jagan, robert.chiras,
	dri-devel, linux-kernel

On Wed, Nov 4, 2026 at 8:38 AM amit <amittibi123@gmail.com> wrote:
>
> Signed-off-by: amit <amittibi123@gmail.com>

No commit message? Why?

Motivate the change, especially since it adds a lot of code to a lot
of drivers.

I guess the motivation is multi-context but spell it out in the commit
message.

Yours,
Linus Walleij

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

* Re: [PATCH] drm/panel: Replace deprecated DCS display-on calls
  2026-11-04  7:38 [PATCH] drm/panel: Replace deprecated DCS display-on calls amit
  2026-11-04 12:11 ` Linus Walleij
@ 2026-11-07 21:44 ` kernel test robot
  1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2026-11-07 21:44 UTC (permalink / raw)
  To: amit, neil.armstrong
  Cc: llvm, oe-kbuild-all, hanxu5, jesszhan0024, maarten.lankhorst,
	mripard, tzimmermann, airlied, simona, icenowy, jagan, linusw,
	robert.chiras, dri-devel, linux-kernel, amit

Hi amit,

kernel test robot noticed the following build warnings:

[auto build test WARNING on v7.4-rc1]
[also build test WARNING on linus/master next-20261105]
[cannot apply to drm-misc/drm-misc-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/amit/drm-panel-Replace-deprecated-DCS-display-on-calls/20261104-093813
base:   v7.4-rc1
patch link:    https://lore.kernel.org/r/20261104073813.42429-1-amittibi123%40gmail.com
patch subject: [PATCH] drm/panel: Replace deprecated DCS display-on calls
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20261108/202611080509.DZUY4PHf-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
rustc: rustc 1.96.0 (ac68faa20 2026-05-25)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261108/202611080509.DZUY4PHf-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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202611080509.DZUY4PHf-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c:356:10: warning: variable 'ret' is uninitialized when used here [-Wuninitialized]
     356 |                 return ret;
         |                        ^~~
   drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c:350:9: note: initialize the variable 'ret' to silence this warning
     350 |         int ret;
         |                ^
         |                 = 0
   1 warning generated.


vim +/ret +356 drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c

fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  342  
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  343  static int k101_im2ba02_enable(struct drm_panel *panel)
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  344  {
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  345  	struct k101_im2ba02 *ctx = panel_to_k101_im2ba02(panel);
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  346  	const struct k101_im2ba02_init_cmd *cmd = &timed_cmds[1];
7bb5e5e01ffc36b amit          2026-11-04  347  	struct mipi_dsi_multi_context dsi_ctx = {
7bb5e5e01ffc36b amit          2026-11-04  348  		.dsi = ctx->dsi,
7bb5e5e01ffc36b amit          2026-11-04  349  	};
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  350  	int ret;
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  351  
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  352  	msleep(150);
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  353  
7bb5e5e01ffc36b amit          2026-11-04  354  	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
7bb5e5e01ffc36b amit          2026-11-04  355  	if (dsi_ctx.accum_err)
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16 @356  		return ret;
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  357  
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  358  	msleep(50);
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  359  
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  360  	return mipi_dsi_dcs_write_buffer(ctx->dsi, cmd->data, K101_IM2BA02_INIT_CMD_LEN);
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  361  }
fac47b1ebeda3b5 Icenowy Zheng 2020-01-16  362  

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

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

end of thread, other threads:[~2026-11-07 21:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-04  7:38 [PATCH] drm/panel: Replace deprecated DCS display-on calls amit
2026-11-04 12:11 ` Linus Walleij
2026-11-07 21:44 ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®