From nobody Mon Feb 9 14:23:34 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 494D0241139 for ; Mon, 5 Jan 2026 20:25:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767644705; cv=none; b=ZZKini4IxMT6VDg7hlRs2UZqGuQ78a4QQWCSgLKnXtoZRislZBkO+vrDGr82cXBgJMu5fbfRZ+YdK83KgYiwM+d+5S+zsO3puXze1K/xZtYH74FP2tZtXYsSi5hojymrC7pSg898NuoXwEnqVl4b3Hevb4BogwnTeQnqcloC3fg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767644705; c=relaxed/simple; bh=3rxe3rmT1bk2LVddtFgDhbwvJy5XvcZCpn517/udXR0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=t9dsc6so3Hj7dOFHAM7upM493ySs9i/F6Dq5o7mAHunk1S6wL22/5vdaBa0CYZAmKDe//UWZ25SU/lqmom+RzyK+jgZ74s+z4H4A8jzfTF7rV9MvVjjTPo7657nDWO/FBq+70dAzmHqD2wzlwRG/3rES/w5PjM1b2C1WhJpEd0k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qD3wGVrl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qD3wGVrl" Received: by smtp.kernel.org (Postfix) with ESMTPS id 190FDC19423; Mon, 5 Jan 2026 20:25:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767644705; bh=3rxe3rmT1bk2LVddtFgDhbwvJy5XvcZCpn517/udXR0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=qD3wGVrlGPMmIuNGArI/I0zkicv1CMomY8jlm/vcKQaH5d7nMpuqCfDWm2TmFBZxX n7mhDylPQAMMWsxtRAazJp/RiBDiWcUabzagXW28BXd99P3aJ4HfRnj/Pfsuh0/q9P EigYUeJ+pUWzGxgKeDe4Qt5fwWGYRZOm2TKh0KXr8cSnw1hotQkiv1J6Dcmwp2NOGU qLTCFUF4ay6QfsO7tCx8IxE5saF1oUMsEmkvGP/IOsLdXbVor1Kog9bf1i+IE3TrYX xWfYE0fwMmnCYscn0/NiDjDcJGAZyMVeskZbTCVjh8fhux9k5qAagYMiMRIc1VMnV0 FDQYavqyPULCw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0DD4DC98333; Mon, 5 Jan 2026 20:25:05 +0000 (UTC) From: Sebastian Krzyszkowiak via B4 Relay Date: Mon, 05 Jan 2026 21:24:41 +0100 Subject: [PATCH 2/5] drm/panel: mantix: Improve power on sequence timings 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: <20260105-mantix-halo-fixes-v1-2-1ebc9b195a34@puri.sm> References: <20260105-mantix-halo-fixes-v1-0-1ebc9b195a34@puri.sm> In-Reply-To: <20260105-mantix-halo-fixes-v1-0-1ebc9b195a34@puri.sm> To: =?utf-8?q?Guido_G=C3=BCnther?= , Purism Kernel Team , Neil Armstrong , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Sebastian Krzyszkowiak X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2841; i=sebastian.krzyszkowiak@puri.sm; h=from:subject:message-id; bh=+lx7oCnZsmz/hc+E2uLHt5Sr9SJYKGdqkUO7Y9TOBro=; b=owEBbQKS/ZANAwAKAejyNc8728P/AcsmYgBpXB4f/GmJrvlrjFV+kFaqlM8tsoozNtfq0l8re dXchf5Xx1eJAjMEAAEKAB0WIQQi3Z+uAGoRQ1g2YXzo8jXPO9vD/wUCaVweHwAKCRDo8jXPO9vD /8aLD/0XAsfH4wAd4HcK59CrMKyM3EmfoTOGwWMw6CA4VKIkQd52yS7TnCLTm/E/MvSZqsIXfIX QeckWjjUpwyHg3I43k/GF/OYYFfzYvvX5VZIeq7pEmWrWbSJnGT19QktMgk2fAB3h7IgrUzFx3u MwElljOjJdbesFzbKOWXxnKlZCg7uJ86otSt58uydb1d5T5ZicbyUXwSQdS1vR8Iz0rTIRjhp8e +14CBtT62UzXz/g/NcNjezve/U876rBgDeTXy3JttC1rhuIpyzkkw9NsdbEcrDdcKS4P/j8pQ1q nLlqei/TZP+hy+xqNwSJWW/K7dsBXcza/y9mTXMbA+LZcTokQoah7cEbznpCY/rb/82O6s9lySs iYtGXBT/PqK6kfkGkK7Xp0ORRe5ehke6AJZMqSAICYeBzk3nlcejCgtWrUJaSJMUQJxxTkr4fyt hj4hc3X75LvxRb9LUK1KL03SHF9iFMYLomH2RutZDA11ra1s1YJVQjjNqbUEVYtjjdrWKffjhZO F5lY+YZdaZ750pG9EsyfW/rPq/qgzlsX5c+ME4MKExoowkX86Si+zSLWEPATtlFH6qcz3v4CWpM 35YiWv5YER+jwhUVXoZ0J487Ar4HQEdoNtLhbW/KXZTrxOjwHBpn+kuJdZ9LnEQlUcNcqLohX95 ekitXjoGK3cReKQ== X-Developer-Key: i=sebastian.krzyszkowiak@puri.sm; a=openpgp; fpr=22DD9FAE006A11435836617CE8F235CF3BDBC3FF X-Endpoint-Received: by B4 Relay for sebastian.krzyszkowiak@puri.sm/default with auth_id=32 X-Original-From: Sebastian Krzyszkowiak Reply-To: sebastian.krzyszkowiak@puri.sm From: Sebastian Krzyszkowiak FP8006P datasheet mentions: > It is necessary to wait 15msec after releasing RESX before sending > commands. Also Sleep Out command cannot be sent for 120 msec. This hasn't been respected by the driver so far, which could interfere with the LCD init code sequence performed by the controller. In some cases this leads to VCOM voltage being set to a wrong value, causing "halo" effects, temporary burn-in around the edges of the screen and degraded image contrast. T3 and T4 are counted from when VDDI is enabled. There's no need to add them when we've already waited more than that in T2 and T2d. While FT8006P datasheet does not mention a delay between exiting sleep mode and turning the display on, code provided by the vendor uses 120ms there and it happens to be the same value as required in newer datasheets for newer controllers from the same family, so it seems appropriate to use it here as well. Signed-off-by: Sebastian Krzyszkowiak Reviewed-by: Neil Armstrong --- drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c b/drivers/gpu= /drm/panel/panel-mantix-mlaf057we51.c index fafd80f3e952..bb5489e4d7a9 100644 --- a/drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c +++ b/drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c @@ -58,11 +58,9 @@ static void mantix_init_sequence(struct mipi_dsi_multi_c= ontext *dsi_ctx) =20 mipi_dsi_generic_write_seq_multi(dsi_ctx, MANTIX_CMD_OTP_STOP_RELOAD_MIPI= , 0x5a, 0x09); mipi_dsi_generic_write_seq_multi(dsi_ctx, 0x80, 0x64, 0x00, 0x64, 0x00, 0= x00); - mipi_dsi_msleep(dsi_ctx, 20); =20 mipi_dsi_generic_write_seq_multi(dsi_ctx, MANTIX_CMD_SPI_FINISH, 0xa5); mipi_dsi_generic_write_seq_multi(dsi_ctx, MANTIX_CMD_OTP_STOP_RELOAD_MIPI= , 0x00, 0x2f); - mipi_dsi_msleep(dsi_ctx, 20); } =20 static int mantix_enable(struct drm_panel *panel) @@ -75,8 +73,11 @@ static int mantix_enable(struct drm_panel *panel) if (!dsi_ctx.accum_err) dev_dbg(ctx->dev, "Panel init sequence done\n"); =20 + /* remainder to 120ms (7.3.1 Note 4) */ + mipi_dsi_msleep(&dsi_ctx, 70); + mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); - mipi_dsi_msleep(&dsi_ctx, 20); + mipi_dsi_msleep(&dsi_ctx, 120); =20 mipi_dsi_dcs_set_display_on_multi(&dsi_ctx); mipi_dsi_usleep_range(&dsi_ctx, 10000, 12000); @@ -147,10 +148,10 @@ static int mantix_prepare(struct drm_panel *panel) return ret; } =20 - /* T3 + T4 + time for voltage to become stable: */ - usleep_range(6000, 7000); - gpiod_set_value_cansleep(ctx->reset_gpio, 0); + usleep_range(100, 200); gpiod_set_value_cansleep(ctx->tp_rstn_gpio, 0); + usleep_range(100, 200); + gpiod_set_value_cansleep(ctx->reset_gpio, 0); =20 /* T6 */ msleep(50); --=20 2.52.0