Re: [PATCH v3] drm/panel: tdo-tl070wsh30: Use mipi_dsi_*_multi(); fix minor bugs

Doug Anderson <[email protected]>
Newsgroups org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Message-ID <CAD=FV=WKkbLX-J9wncxQgNTxxBEFezNKE+EFb-MgLY-APJfMpw@mail.gmail.com>
Hi,

On Fri, Jul 31, 2026 at 11:05 AM Doug Anderson <[email protected]> wrote:
>
> Hi,
>
> On Thu, Jul 30, 2026 at 5:11 PM Akash Sukhavasi
> <[email protected]> wrote:
> >
> > The mipi_dsi_dcs_*() functions used by this driver are deprecated in
> > favor of their _multi() counterparts, as noted in
> > Documentation/gpu/todo.rst. The _multi() variants record the first
> > error in a context structure and skip every later call once an error
> > is set, so the return value no longer has to be checked after each
> > command. They also log their own failures, which makes the per-call
> > dev_err() calls redundant.
> >
> > Convert prepare() and unprepare(). prepare() uses mipi_dsi_msleep()
> > for the delays between DSI commands. unprepare() uses plain
> > usleep_range() so the delays run unconditionally after the
> > accumulated error is cleared. The delays in the GPIO reset sequence
> > stay as plain msleep() and usleep_range(), since they run before any
> > DSI transaction.
> >
> > unprepare() now disables the regulator unconditionally and returns 0.
> > Previously a failure of set_display_off() was logged and the sequence
> > continued, while a failure of enter_sleep_mode() returned early,
> > leaving the regulator enabled and the panel unable to be brought back
> > up, since drm_panel_unprepare() skips panel->prepared = false on
> > error. The accumulated error from set_display_off() is cleared so
> > that the delay and enter_sleep_mode() are still attempted, preserving
> > the original fall-through behavior. Both drm_panel_prepare() and
> > drm_panel_unprepare() return void, so the error was never propagated
> > to a caller in any case.
> >
> > Signed-off-by: Akash Sukhavasi <[email protected]>
> > ---
> > Changes in v3:
> > - Update subject line to reflect the minor bugfixes, per Doug's review.
> > - Pack blank lines in both functions per Doug's review.
> > - Preserve the original fall-through behavior in unprepare(): clear
> >   accum_err after set_display_off() so the delay and enter_sleep_mode()
> >   are still attempted even if display off fails.
> > - Link to v2: https://lore.kernel.org/r/[email protected]
> >
> > Compile tested only, no hardware available. checkpatch and a W=1 build
> > are clean.
> >
> > Changes in v2:
> > - unprepare() disables the regulator unconditionally and returns 0,
> >   per Sashiko's review on v1. Returning an error left panel->prepared
> >   set, so the panel could not be prepared again.
> > - Link to v1: https://lore.kernel.org/r/[email protected]
> > ---
> >  drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c | 40 +++++++++-------------------
> >  1 file changed, 12 insertions(+), 28 deletions(-)
>
> Looks good to me.
>
> Reviewed-by: Douglas Anderson <[email protected]>
>
> Even though it has some minor fixes, I'll still probably put it in
> "drm-misc-next" rather than "drm-misc-fixes". That gives us extra bake
> time, which is especially good since the fixes are all based on code
> inspection.
>
> I'll plan to apply in ~1 week unless something comes up.

Pushed to drm-misc-next:

[1/1] drm/panel: tdo-tl070wsh30: Use mipi_dsi_*_multi(); fix minor bugs
      commit: 263728b4c4d03dbed2e6106cccd24626d682b6cb
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.