Re: [PATCH 0/4] drm/panel: Convert four panel drivers to mipi_dsi_*_multi()

From: Doug Anderson

Date: Wed Nov 04 2026 - 20:07:40 EST


Hi,

On Mon, Oct 12, 2026 at 9:35 PM Akash Sukhavasi
<akash.sukhavasi@xxxxxxxxx> wrote:
>
> This series converts deprecated mipi_dsi_dcs_*() calls to their
> _multi() equivalents in four panel drivers: leadtek-ltk500hd1829,
> kingdisplay-kd097d04, innolux-p079zca, and newvision-nv3051d. The
> first two drivers also convert mipi_dsi_generic_write().
>
> In patches 2-4, unprepare() previously returned early when
> enter_sleep_mode() failed, skipping GPIO and regulator teardown.
> Because drm_panel_unprepare() leaves panel->prepared set when the
> callback returns an error, the panel could not be prepared again.
> These patches remove the early return, so GPIO and regulator
> teardown always runs, and have unprepare() always return 0, so
> drm_panel_unprepare() clears panel->prepared. Patches 2 and 3
> likewise stop returning regulator disable errors from unprepare().
>
> In patches 1, 3, and 4, the original code treated a set_display_off()
> failure as non-fatal and still attempted enter_sleep_mode(). These
> patches clear accum_err after set_display_off_multi() to keep that
> behaviour.
>
> All four patches are compile tested only. checkpatch and a W=1 build
> are clean. Tested-by tags would be very welcome.
>
> While converting nv3051d, I noticed that panel_nv3051d_init_sequence()
> always returns 0, so init sequence errors never reach prepare(). This
> series leaves that unchanged, and I plan to send a separate fix.
>
> Signed-off-by: Akash Sukhavasi <akash.sukhavasi@xxxxxxxxx>
> ---
> Akash Sukhavasi (4):
> drm/panel: leadtek-ltk500hd1829: Use mipi_dsi_*_multi()
> drm/panel: kingdisplay-kd097d04: Use mipi_dsi_*_multi(); fix minor bugs
> drm/panel: innolux-p079zca: Use mipi_dsi_*_multi(); fix minor bugs
> drm/panel: newvision-nv3051d: Use mipi_dsi_*_multi(); fix minor bugs
>
> drivers/gpu/drm/panel/panel-innolux-p079zca.c | 43 +++++++-----------
> drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 53 ++++++++--------------
> drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c | 40 ++++++----------
> drivers/gpu/drm/panel/panel-newvision-nv3051d.c | 36 ++++++---------
> 4 files changed, 61 insertions(+), 111 deletions(-)

Pushed all 4 to drm-misc-next:

[1/4] drm/panel: leadtek-ltk500hd1829: Use mipi_dsi_*_multi()
commit: d8b25f5f482250ecb4afc48913cb34de4938234c
[2/4] drm/panel: kingdisplay-kd097d04: Use mipi_dsi_*_multi(); fix minor bugs
commit: 7877fc6d086f861e0006dc5f008217899d7af3e3
[3/4] drm/panel: innolux-p079zca: Use mipi_dsi_*_multi(); fix minor bugs
commit: a00bd7fb1dcdb3d2e33d11242e38e317a4111828
[4/4] drm/panel: newvision-nv3051d: Use mipi_dsi_*_multi(); fix minor bugs
commit: 3944ca3e6b7d25e545e8ef6498f69941e8e0c8ae

There were followups suggested in several of the threads, but these
patches still improve the status quo.

-Doug