Hi Esben,

On Mon, 31 Aug 2026 14:21:32 +0200
Esben Haabendal <[email protected]> wrote:

> The error handling of sn65dsi83_reset_pipe() in sn65dsi83_reset_work() has
> seen a couple of changes that seems to cause a bit of confusion.
> 
> While sn65dsi83_reset_work() has implemented an early exit if
> sn65dsi83_reset_pipe() fails since it was added, when a commit from Maxime
> Ripard switched to use drm_bridge_helper_reset_crtc() [1] the
> sn65dsi83_reset_pipe() function would no longer return an error code, so
> the early exit was then a no-op, and even on sn65dsi83_reset_pipe()
> failure, enable_irq() has been called.
> 
> When drm_bridge_enter()/drm_bridge_exit() resource protection was added,
> the drm_bridge_exit() incidentally was always called, which is the correct
> approach. But only because the early exit in sn65dsi83_reset_pipe() was
> never hit because sn65dsi83_reset_pipe() always returns 0.
> 
> In order get back to a situation where enable_irq() is not called on
> sn65dsi83_reset_pipe() failure, which should help protect against irq
> storms, we need to reintroduce a non-zero return value from
> sn65dsi83_reset_pipe() on error, and fix sn65dsi83_reset_work() so that we
> always exit the DRM bridge critical section with drm_bridge_exit().
> 
> [1] commit e17fadff7ab9 ("drm/bridge: ti-sn65dsi83: Switch to 
> drm_bridge_helper_reset_crtc")
> [2] commit d2e8d1bc840b ("drm/bridge: ti-sn65dsi83: protect device resources 
> on unplug")
> 
> Fixes: e17fadff7ab9 ("drm/bridge: ti-sn65dsi83: Switch to 
> drm_bridge_helper_reset_crtc")
> Cc: [email protected]
> Signed-off-by: Esben Haabendal <[email protected]>
> ---
>  drivers/gpu/drm/bridge/ti-sn65dsi83.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 

LGTM.

Reviewed-by: Herve Codina <[email protected]>

Best regards,
Hervé

Reply via email to