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