[PATCH v5 0/4] Add support for errors recovery in the TI SN65DSI83 bridge driver

Herve Codina
2025-02-03T16:16:12Z

Hi,

Usually the TI SN65DSI83 recovers from error by itself but during ESD
tests, we have some cases where the TI SN65DSI83 didn't recover.

In order to handle those cases, this series adds support for a recovery
mechanism.

Compare to the previous iteration, this v5 series fixes the v4 series
because the v4 series fails to apply on top of v6.14-rc1.

The modification are still the same as for the v4 series (v4 series
should be simply ignored):
- rebase on top of v6.14-rc1
- disable/re-enable irq in the failure detection and reset process
- Split the patch moving reset_pipe() from VC4 to a new helper
- Rename the new helper to drm_atomic_helper_reset_crtc()
- Remove state duplication and use bridge.encoder->crtc

Best regards,
Hervé Codina

Changes v4 -> v5
v4: https://lore.kernel.org/lkml/20250203145824.155869-1-herve.codina@bootlin.com/

Exact same changes as the v4. The v4 series doesn't apply on top of
v6.14-rc1 and should be simply ignore.
This v5 series is the v4 fixed to apply on top of v6.14-rc1.

Changes v3 -> v4
v3: https://lore.kernel.org/lkml/20250108101907.410456-1-herve.codina@bootlin.com/

- Patch 1:
No changes

- Patch 2 and 3 (patch 2 in v3):
Rename the helper to drm_atomic_helper_reset_crtc()
Split the patch available in v3 in two patches.

- Patch 4 (patch 3 in v3):
Take into account commit d2b8c6d549570 ("drm/bridge: ti-sn65dsi83:
Add ti,lvds-vod-swing optional properties"), available in v6.14-rc1.
Disable irq when a fault is detected and re-enable it after the pipe
reset.
Remove state duplication and use bridge.encoder->crtc directly

Changes v2 -> v3
v2: https://lore.kernel.org/lkml/20241217143216.658461-1-herve.codina@bootlin.com/

- Patch 1:
No changes

- Patch 2 (new in v3)
Move reset_pipe() from VC4 HDMI driver to a new atomic helper

- Patch 3
Use the new drm_atomic_helper_reset_pipe()

Patch removed in v3
- Patch 2 in v2
No more needed

Changes v1 -> v2
v1: https://lore.kernel.org/lkml/20241024095539.1637280-1-herve.codina@bootlin.com/

- Patch 1:
Add 'Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>'
Add 'Acked-by: Conor Dooley <conor.dooley@microchip.com>'

- Patch 2 (new patch in v2)
Introduce drm_atomic_helper_disable_connector()

- Patch 3 (patch 2 in v1)
Reset the output path instead of the full pipeline.
Update and add more information related to the bridge in commit log.

Herve Codina (4):
dt-bindings: display: bridge: sn65dsi83: Add interrupt
drm/atomic-helper: Introduce drm_atomic_helper_reset_crtc()
drm/vc4: hdmi: Use drm_atomic_helper_reset_crtc()
drm: bridge: ti-sn65dsi83: Add error recovery mechanism

.../bindings/display/bridge/ti,sn65dsi83.yaml | 3 +
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 131 ++++++++++++++++++
drivers/gpu/drm/drm_atomic_helper.c | 41 ++++++
drivers/gpu/drm/vc4/vc4_hdmi.c | 30 +---
include/drm/drm_atomic_helper.h | 2 +
5 files changed, 178 insertions(+), 29 deletions(-)

--
2.47.1