* [PATCH] drm/panel: Replace deprecated DCS display-on calls
@ 2026-11-04 7:38 amit
0 siblings, 0 replies; only message 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] only message in thread
only message in thread, other threads:[~2026-11-04 7:38 UTC | newest]
Thread overview: (only message) (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
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®