From patchwork Mon Feb 3 14:58:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Herve Codina X-Patchwork-Id: 13957678 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7419FC02192 for ; Mon, 3 Feb 2025 14:58:34 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C8F6F10E0D7; Mon, 3 Feb 2025 14:58:33 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=bootlin.com header.i=@bootlin.com header.b="nJSEHFZn"; dkim-atps=neutral Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) by gabe.freedesktop.org (Postfix) with ESMTPS id D6E3610E0D7 for ; Mon, 3 Feb 2025 14:58:32 +0000 (UTC) Received: by mail.gandi.net (Postfix) with ESMTPA id CAD1E43396; Mon, 3 Feb 2025 14:58:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1738594711; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IcNL3kWLWPBscOUAjJ3bIyEiP0E267EDYYmnfJEELaQ=; b=nJSEHFZn/z4brCQ/RLs4at33/8KH6k87ell/C6irEeRYFjhGM9zVAX6xqhhARhf8ogZxIr xZHpQ8h2vb9jxgEhIoFIU9RUByP88ZuH5uzySE2Vi4zN6YCvvPJi1OgZ21QDYfvu/2MeV0 zoPDhYrcBNG14aGomXMqP4DUNIXB7tERSzSUq2OPhkegM/d7//DuiKnkYHqx8O6Cj4N48a HPgsJQS2vg/cLf62YsWyjjmL+azW6rVZJHY3oquJYplMRmgUsDxy5rDZcYYFb+0ZHl+GDx X3gr7s6eo/YHYImzu4vvTxm/+IctDRvCf7H9jpVNdiEDcYDGBSi1B9nLeGKkYA== From: Herve Codina To: Alexander Stein , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Marek Vasut Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Louis Chauvet , Luca Ceresoli , Thomas Petazzoni , Herve Codina Subject: [PATCH v4 0/4] Add support for errors recovery in the TI SN65DSI83 bridge driver Date: Mon, 3 Feb 2025 15:58:19 +0100 Message-ID: <20250203145824.155869-1-herve.codina@bootlin.com> X-Mailer: git-send-email 2.47.1 MIME-Version: 1.0 X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddujeeltdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpefjvghrvhgvucevohguihhnrgcuoehhvghrvhgvrdgtohguihhnrgessghoohhtlhhinhdrtghomheqnecuggftrfgrthhtvghrnhepleetudffledtvddtffegudfgjeffgeegkeehjeeigffgieevhfekffehheehieeunecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucfkphepledtrdekledrudeifedruddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeltddrkeelrdduieefrdduvdejpdhhvghloheplhhotggrlhhhohhsthdrlhhotggrlhguohhmrghinhdpmhgrihhlfhhrohhmpehhvghrvhgvrdgtohguihhnrgessghoohhtlhhinhdrtghomhdpnhgspghrtghpthhtohepvdeipdhrtghpthhtoheprghlvgigrghnuggvrhdrshhtvghinhesvgifrdhtqhdqghhrohhuphdrtghomhdprhgtphhtthhopegrnhgurhiivghjrdhhrghjuggrsehinhhtvghlrdgtohhmpdhrtghpthhtohepnhgvihhlrdgrrhhmshhtrhhonhhgsehlihhnrghrohdrohhrghdprhgtphhtthhopehrfhhoshhssehkvghrnhgvlhdro hhrghdprhgtphhtthhopefnrghurhgvnhhtrdhpihhntghhrghrthesihguvggrshhonhgsohgrrhgurdgtohhmpdhrtghpthhtohepjhhonhgrsheskhifihgsohhordhsvgdprhgtphhtthhopehjvghrnhgvjhdrshhkrhgrsggvtgesghhmrghilhdrtghomhdprhgtphhtthhopegrihhrlhhivggusehgmhgrihhlrdgtohhm X-GND-Sasl: herve.codina@bootlin.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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 v4 series: - 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 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 ' Add 'Acked-by: Conor Dooley ' - 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(-)