From nobody Tue Apr 7 03:52:37 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 40C9B269CE6 for ; Wed, 11 Mar 2026 07:48:55 +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=1773215342; cv=none; b=RhlVxGRH2KhfJTSFEDqybp2Axp8GqnL9ki5VXd8q+Q6kor8qgoOANWF+yRxJuaSC7t6a8nQlfI9iJAX7tjiDz6C+dmKXOAjZZ2klzPNLITnndcR4194Ulx9m71CDw0/i7CitrXSNkhAz8h2Me1KnTZq6XUvN2Qdw2xJOKriCuls= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773215342; c=relaxed/simple; bh=b4GVL1v/Wmdcx+qdZ7S2rzI12pbFTYNCd5xdqz222G8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NEIEajTEf1J1pSmPSWSKUYWoY9Iq7tLk/+y4V3zC98ynI471G+qL+IW9ML/2M9Sp5wJBhCEbluYZIcVD1YnaPakp9HpbB0VY6u9R1xZEvIbl9N9RMabUKoOl4VHjIKTAdYpEFPdQB6jvXmB9nK8H2Eq1YO84Ka31o13rGyQY+KI= 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=qC4d0qAw; 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="qC4d0qAw" 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 80688121A; Wed, 11 Mar 2026 08:47:33 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1773215254; bh=b4GVL1v/Wmdcx+qdZ7S2rzI12pbFTYNCd5xdqz222G8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=qC4d0qAwGBoPrHTHSjWT657mOVTetfMLdOB+5foww8e9n0Lk9ysZF3iMG3toNknpD S16VRSebZskzhgoydPVuKmf/37BwyFRn62VsMkMt2HlcYfeO9PlCwd7bjKQHsEVFKP kY3cr49UKIM1SMJrKLUr57tDf5ZmO2xLSW1UbYhg= From: Tomi Valkeinen Date: Wed, 11 Mar 2026 09:48:15 +0200 Subject: [PATCH v2 4/7] drm/bridge: tc358768: Support non-continuous clock 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: <20260311-tc358768-v2-4-e75a99131bd5@ideasonboard.com> References: <20260311-tc358768-v2-0-e75a99131bd5@ideasonboard.com> In-Reply-To: <20260311-tc358768-v2-0-e75a99131bd5@ideasonboard.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Parth Pancholi , Francesco Dolcini Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Tomi Valkeinen , Dmitry Osipenko , =?utf-8?q?Jo=C3=A3o_Paulo_Gon=C3=A7alves?= X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2697; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=b4GVL1v/Wmdcx+qdZ7S2rzI12pbFTYNCd5xdqz222G8=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBpsR5TdSCwpOANJ1yru0ZO/hNWSfT2cBZTnSrlE VAjq7mLB5GJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCabEeUwAKCRD6PaqMvJYe 9fhZD/9TFv6ZqfK79G4tcXEbEoD1LuU+e7cwszQVyPSelV9b1UK+nhnNV6Hq2BzuE+DgfIvv18P nmyVwEvFrh3gNE5LLaqElVAxpMAhTEbwUbImX6BtRsrEkjl8HJRe3NTOx5/bxj2s1A7fvJ1TyCo s2NAXkWiDOc9fiG3PFeLtN2V/1wOWugkXqzzC/i1f6lt14AnUsgZXNspi/f4DigRI2PPAo+ao8A hftNP0Zn5wbF2o0iNaAAPnsoF4A1pwqB0odgFbNP7hj03aD0ZMRpBreoPmysqhoWJJZgBoxLUCA 0Rv60PRoAA7JXLkr8EsEnwP9eRVHxOOTwANMTjvYxxOVZV74xwHxrGg5hmLbvOtPAekkqEuYLjl 21I5YyIDueHudB5H+5fzBQAviximUBL3P0AEpcNfchljS64kAy+/X0KHSlKA/33YUEWFatMDrhH RCgPXYCcNaJCUYO8vdoeKDHrk279YPzkBh09N1LJV3GGMROaEfqWTyM/HfZwqreXRYaIhi7UmPd bqVKLRyzDN0Yje3eCPtYb502Yf85nDES4lrVU6alEl/NhpVmu4934XAYkz1Otye5woldk8xeiQy kXEb8ZU2cGqT9tHWLHrFhrDG2NGmaUKqNTRY4SnwDNP6/6zwLSWRNTlNkjfIcpQ9cZ4wxgpAmJQ sqMX8OgojzV1LtA== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 The driver prints a warning if MIPI_DSI_CLOCK_NON_CONTINUOUS is set, and falls back to continuous clock mode. This was added in commit fbc5a90e82c1 ("drm/bridge: tc358768: Disable non-continuous clock mode"). However, there have been multiple changes to the driver since then, and at least in my setup, non-continuous clock mode works: I can see an image on the panel, and I can see the clock lanes being non-continuous with an oscilloscope. So, let's enable MIPI_DSI_CLOCK_NON_CONTINUOUS support. Cc: Dmitry Osipenko Tested-by: Jo=C3=A3o Paulo Gon=C3=A7alves # To= radex Verdin AM62 Reviewed-by: Francesco Dolcini Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/tc358768.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358768.c b/drivers/gpu/drm/bridge/tc3= 58768.c index 755ed6483b2e..a276fbc75dde 100644 --- a/drivers/gpu/drm/bridge/tc358768.c +++ b/drivers/gpu/drm/bridge/tc358768.c @@ -722,7 +722,6 @@ static void tc358768_bridge_atomic_pre_enable(struct dr= m_bridge *bridge, { struct tc358768_priv *priv =3D bridge_to_tc358768(bridge); struct mipi_dsi_device *dsi_dev =3D priv->output.dev; - unsigned long mode_flags =3D dsi_dev->mode_flags; u32 val, mask, val2, lptxcnt, hact, data_type; s32 raw_val; struct drm_crtc_state *crtc_state; @@ -744,11 +743,6 @@ static void tc358768_bridge_atomic_pre_enable(struct d= rm_bridge *bridge, u32 dsi_vsdly; const u32 internal_dly =3D 40; =20 - if (mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) { - dev_warn_once(dev, "Non-continuous mode unimplemented, falling back to c= ontinuous\n"); - mode_flags &=3D ~MIPI_DSI_CLOCK_NON_CONTINUOUS; - } - tc358768_hw_enable(priv); =20 ret =3D tc358768_sw_reset(priv); @@ -1032,7 +1026,7 @@ static void tc358768_bridge_atomic_pre_enable(struct = drm_bridge *bridge, tc358768_write(priv, TC358768_HSTXVREGEN, val); =20 tc358768_write(priv, TC358768_TXOPTIONCNTRL, - (mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) ? 0 : BIT(0)); + (dsi_dev->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) ? 0 : BIT(0= )); =20 /* TXTAGOCNT[26:16] RXTASURECNT[10:0] */ val =3D tc358768_ps_to_ns((lptxcnt + 1) * hsbyteclk_ps * 4); @@ -1099,7 +1093,7 @@ static void tc358768_bridge_atomic_pre_enable(struct = drm_bridge *bridge, =20 val |=3D TC358768_DSI_CONTROL_TXMD; =20 - if (!(mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)) + if (!(dsi_dev->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)) val |=3D TC358768_DSI_CONTROL_HSCKMD; =20 if (dsi_dev->mode_flags & MIPI_DSI_MODE_NO_EOT_PACKET) --=20 2.43.0