lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20241115160641.74074-2-dse@thaumatec.com>
Date: Fri, 15 Nov 2024 17:06:32 +0100
From: Daniel Semkowicz <dse@...umatec.com>
To: Andrzej Hajda <andrzej.hajda@...el.com>,
	Neil Armstrong <neil.armstrong@...aro.org>,
	Robert Foss <rfoss@...nel.org>
Cc: Daniel Semkowicz <dse@...umatec.com>,
	David Airlie <airlied@...il.com>,
	Jernej Skrabec <jernej.skrabec@...il.com>,
	Jonas Karlman <jonas@...boo.se>,
	Laurent Pinchart <Laurent.pinchart@...asonboard.com>,
	Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
	Maxime Ripard <mripard@...nel.org>,
	Michael Walle <mwalle@...nel.org>,
	Simona Vetter <simona@...ll.ch>,
	Thomas Zimmermann <tzimmermann@...e.de>,
	Tony Lindgren <tony@...mide.com>,
	dri-devel@...ts.freedesktop.org,
	linux-kernel@...r.kernel.org
Subject: [PATCH 1/1] drm/bridge: tc358775: Remove burst mode support

Current tc358775 bridge driver implementation assumes that DSI clock
is used as a source for LVDS pixel clock. Moreover, clock divider
PCLKDIV has a hard-coded value. This means that driver expects DSI
clock to always match a panel pixel clock. With such assumption, LVDS
pixel clock is configured to be (DSI pixel clock / 3) for single link.
This is true for DSI non-burst video modes. In burst mode, DSI host
is allowed to set transmission rate higher than pixel clock to allow
shorter data bursts. When the transmission rate is higher than expected
by the bridge, LVDS output timings are still configured for the lower
frequency, but the output is clocked with the higher one. In most cases,
bad LVDS timings cause incorrect panel operation.

Remove support for burst mode, so the non-burst mode is used by DSI
host by default. Burst mode is supported by the bridge itself,
but requires proper implementation in the driver to operate correctly
in all scenarios.

Fixes: a4ed72e85c46 ("drm/bridge: tc358775: Add burst and low-power modes")
Signed-off-by: Daniel Semkowicz <dse@...umatec.com>
---

 drivers/gpu/drm/bridge/tc358775.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/bridge/tc358775.c b/drivers/gpu/drm/bridge/tc358775.c
index 0b4efaca6d682..7496681c7b883 100644
--- a/drivers/gpu/drm/bridge/tc358775.c
+++ b/drivers/gpu/drm/bridge/tc358775.c
@@ -632,8 +632,7 @@ static int tc_attach_host(struct tc_data *tc)
 
 	dsi->lanes = tc->num_dsi_lanes;
 	dsi->format = MIPI_DSI_FMT_RGB888;
-	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
-			  MIPI_DSI_MODE_LPM;
+	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_LPM;
 
 	/*
 	 * The hs_rate and lp_rate are data rate values. The HS mode is
-- 
2.47.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ