From nobody Thu Apr 2 19:00:59 2026 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C9AE23DE454 for ; Fri, 27 Mar 2026 10:22:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774606968; cv=none; b=Qeumox8MVOXvUwgPiHK+RzpjOEvVA2Gs4GrfK640r0lox72ip/MGJt+CoXoda0XGY3qk6n2vgPsQCGsdcx+JDqnezV4ZXzhq91aYR6dXhHqoE7WE0licRBsR0EgzZdBHMoSSONlBY4t8V6/0NvzEcC2PlFuZuf0cStqq7LYWoD0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774606968; c=relaxed/simple; bh=TmiIsUoOnSYn7v4FOtHaFJlsgHLUN95fq+hz7XO4ZaM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z7BL5HAeUNn/03hIlNAM1JF+EgGYeuia4/iKOexT6TQkDBe8GkxJMs4AMsC0n/p05DhDb/Pi1p4P+oMv2c1Hyb17t3OfGVVaGsNYeUwXNMu+03uUJvzNQ7GEOLeZWtan3pEPiOlwlqCnkhjeLi+k3ImiJoYXfzslbJh1V9Ihk7c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=ONZHD4ni; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ONZHD4ni" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0C1C33026; Fri, 27 Mar 2026 11:21:15 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1774606875; bh=TmiIsUoOnSYn7v4FOtHaFJlsgHLUN95fq+hz7XO4ZaM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ONZHD4niOtR4V9zeT10ujVftRpoLDwJSIth4pJ8BpIKNnssh1m2mcxvZZcPzaM3zX w81w+Ib07Ew2LcKVj5Liok815HbGjTchwdLahGZNKiPGdhms3KbVCbLdYoN5B3Hisd gYBGL/CK7UAgklf4JEXgXKup/+BLRAxi/NYcQ2UU= From: Tomi Valkeinen Date: Fri, 27 Mar 2026 12:22:00 +0200 Subject: [PATCH v2 12/12] drm/bridge: tc358762: Set DE_POL and DCLK_POL properly Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260327-tc358762-fixes-v2-12-3589d3c45f4a@ideasonboard.com> References: <20260327-tc358762-fixes-v2-0-3589d3c45f4a@ideasonboard.com> In-Reply-To: <20260327-tc358762-fixes-v2-0-3589d3c45f4a@ideasonboard.com> To: Marek Vasut , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2009; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=TmiIsUoOnSYn7v4FOtHaFJlsgHLUN95fq+hz7XO4ZaM=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBpxlpdwFKaJQnmLeAN+G/E87uUvWkLXU7Nf0J+i F2MLe41kT2JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCacZaXQAKCRD6PaqMvJYe 9cq4D/9Xg1ouaDAnEPGQvrs7BtaCQ0sA4qjtRSnEwjYXl4fHIK87iNedUtTx3hdnI2ZnelZbZ9n Ri4EIafytPXH29cVq0jX0WYZswIYYsWOzgggFE1xxcEutNgBZX/O4DX/sGTNg3Ynzu0tPvluYaf m1Q8S8iveY0yU54t45j0hbFqGeMdeM7uBQVKq4KjDBckfN1a2eIprPhEnOG5gmnKyj3Tq2N7pbs gOwX8wai5FC6U99BgWxRq54eDzVCKxBnlolQ+niCZ4IPJiDBvgK8f6j38C9Xr0UvV29aBIWT2OF +LLdhtWG0X478FaCyzdy1tXgKjFo45x6bHawzYNKaaSE/lLsA9IRjnwmHpVT1kWLgbM+Ek6zRe1 t6dMHMybh1p6bcwQrquMuuHDaMyWuWqnKQluzcEXOlnnBEYBgXRZEfSAmhfGgJlhGHaY52IHmLl 0xyt/U87PRyL5QnV7/aMYBIZKuWtrXLvoil/Pd2YGVt0mnENpkTBS8LSI06XgdrKubeIBt6kEHq O40Thpi+g/8aRynyt391SaAPNa9sBXzvXuaHDkU0IRSr09ExHqgfIRF+zPbPMc3BqM2FbcQZAtq +1dEg1vyALOJtehQFSeCh4oKKwKh5KostfkK8KuS4LNYK3tMTA5snKRnqYMc5WQN4cZfHsY+Ob5 9ZreSFqjWe5MrMg== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 The driver hardcodes LCDCTRL_DCLK_POL and ~DE_POL, ignoring what the panel actuall wants. Fix this by looking at the bridge_state->output_bus_cfg.flags, and set the polarities correctly. Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/tc358762.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/tc358762.c b/drivers/gpu/drm/bridge/tc3= 58762.c index eba910ce8bd7..f81aac632eee 100644 --- a/drivers/gpu/drm/bridge/tc358762.c +++ b/drivers/gpu/drm/bridge/tc358762.c @@ -186,12 +186,15 @@ static void tc358762_enable(struct drm_bridge *bridge, { struct tc358762 *ctx =3D bridge_to_tc358762(bridge); struct drm_connector_state *conn_state; + struct drm_bridge_state *bridge_state; struct drm_crtc_state *crtc_state; struct drm_connector *connector; struct drm_display_mode *mode; u32 lcdctrl; int ret; =20 + bridge_state =3D drm_atomic_get_new_bridge_state(state, bridge); + connector =3D drm_atomic_get_new_connector_for_encoder(state, bridge->enc= oder); conn_state =3D drm_atomic_get_new_connector_state(state, connector); crtc_state =3D drm_atomic_get_new_crtc_state(state, conn_state->crtc); @@ -243,7 +246,9 @@ static void tc358762_enable(struct drm_bridge *bridge, if (ctx->use_vtg) lcdctrl |=3D LCDCTRL_VTGEN; =20 - lcdctrl |=3D LCDCTRL_DCLK_POL; + /* Note: DCLK_POL affects pixdata, de and syncs */ + if (bridge_state->output_bus_cfg.flags & DRM_BUS_FLAG_PIXDATA_DRIVE_POSED= GE) + lcdctrl |=3D LCDCTRL_DCLK_POL; =20 if (mode->flags & DRM_MODE_FLAG_PHSYNC) lcdctrl |=3D LCDCTRL_HSYNC_POL; @@ -251,6 +256,9 @@ static void tc358762_enable(struct drm_bridge *bridge, if (mode->flags & DRM_MODE_FLAG_PVSYNC) lcdctrl |=3D LCDCTRL_VSYNC_POL; =20 + if (bridge_state->output_bus_cfg.flags & DRM_BUS_FLAG_DE_LOW) + lcdctrl |=3D LCDCTRL_DE_POL; + tc358762_write(ctx, LCDCTRL, lcdctrl); =20 tc358762_write(ctx, PPI_STARTPPI, PPI_STARTPPI_STARTPPI); --=20 2.43.0