From nobody Mon Feb 9 09:43:26 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 5225A30F546 for ; Tue, 23 Sep 2025 06:23:19 +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=1758608599; cv=none; b=LWQT4T2Bn4OImk91BeAfWy0oCO1UG0mcoc3I+olCppOq+yKx7nUq+WW/c9PwvSw0ruTDZb4+4vKIcageqhQpPMuANWFxns8X7fzdqRTxApRdGwF5X6h+HMM5B3iCRJkrrySGPSvHLtn8RsErjHRvnIdb9Lb/4Jw6UB1c8ZGzs7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758608599; c=relaxed/simple; bh=2Phu2egmghoPfL6y1RTRkWn4vN4ATsYrUz9yWVyMvvc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DM2FxX++Cb/3Z5oqkFeVBw0+ELrBh9N4nmY9bT1KbY97dAq6ZVZEnVWayVEE4Ed7dRJOF8C4ml1RV0rElCVNinlNF3rgYXhEd3W0fXRZCteWmAv7pU1FGCGxdv7vTR3LhX5sKEM0H0wdn/ymxGmi8guk2pxqMSql8oTRgJkkzos= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cQo/YsiW; 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="cQo/YsiW" Received: by smtp.kernel.org (Postfix) with ESMTPS id E3D18C116B1; Tue, 23 Sep 2025 06:23:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758608599; bh=2Phu2egmghoPfL6y1RTRkWn4vN4ATsYrUz9yWVyMvvc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=cQo/YsiWa2tejcSwS7Zz45gLFdTuk/1yOJM1PDMTSsUje1cIg3q6JhLx30OUSqYGG rwGMZTUNfP1+dmvcAH1L/dyzJ26HshKP+EEiYeAphYsEt+IhLVSKt9qxFQ16QYZDKK DeGph1SWuhfJ5z6Qp7YgCUY7Ff0ET8y0r+W7F+iv6+1HcHyidryRBkcXDmRTto/XYr dhTuOwkmhvmFmLXLFKi6y4WuVMIIQsdrQJQUjEGVKJe4RfmpSaCSELFwhYrtXYxDXR 93wyK0KPO9dKpjqS//9wiF9tszNky+GXNP/aBB2z560/E8R6+n+JXE0jgMyzPXvM7M tJK0RS4/PVjlg== 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 D27A4CAC5A5; Tue, 23 Sep 2025 06:23:18 +0000 (UTC) From: Hermes Wu via B4 Relay Date: Tue, 23 Sep 2025 14:23:41 +0800 Subject: [PATCH v4 1/4] drm/bridge: it6505: fix link training state HW register reset 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: <20250923-fix-link-training-v4-1-7c18f5d3891e@ite.com.tw> References: <20250923-fix-link-training-v4-0-7c18f5d3891e@ite.com.tw> In-Reply-To: <20250923-fix-link-training-v4-0-7c18f5d3891e@ite.com.tw> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , AngeloGioacchino Del Regno , Allen Chen , Hermes Wu Cc: Pet.Weng@ite.com.tw, Kenneth.Hung@ite.com.tw, treapking@chromium.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Hermes Wu , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1758608643; l=1890; i=Hermes.wu@ite.com.tw; s=20241230; h=from:subject:message-id; bh=qgBUHkzuf4hAHpGTg2Rk6XpngHItzj84KgxjHfNDNYQ=; b=8MEYUYtNzt1UrC9NDCNt1Zln0R2+1n3rBKsdQP9iyuRSlQcL7uyzqyrcLP75cbwQ3y60gorEi ZNNZjxr6gyLCWsAupEuGiqORx9jEv3sE7XaVc2KrjymOi2BHUpZn5w0 X-Developer-Key: i=Hermes.wu@ite.com.tw; a=ed25519; pk=qho5Dawp2WWj9CGyjtJ6/Y10xH8odjRdS6SXDaDAerU= X-Endpoint-Received: by B4 Relay for Hermes.wu@ite.com.tw/20241230 with auth_id=310 X-Original-From: Hermes Wu Reply-To: Hermes.wu@ite.com.tw From: Hermes Wu When connect to a DP-to-HDMI device which does not connect to HDMI sink, it will report DPCD 00200h with SINK_COUNT =3D "0", and issue HPD_IRQ when SINK_COUNT change to "1". IT6505 can not recive HPD_IRQ before training done and driver will force HW enter training done state when connect to such devices. When HW is force to training done state and restart link training, bits FORCE_RETRAIN and MANUAL_TRAIN at REG_TRAIN_CTRL1 must be set at the same time to reset HW state. Fixes: b5c84a9edcd4 ("drm/bridge: add it6505 driver") Reviewed-by: Dmitry Baryshkov Signed-off-by: Hermes Wu --- drivers/gpu/drm/bridge/ite-it6505.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/i= te-it6505.c index 88ef76a37fe6accacdd343839ff2569b31b18ceb..b47042dc06bb1e1dfd92bc0dc6d= 69dc918a140ba 100644 --- a/drivers/gpu/drm/bridge/ite-it6505.c +++ b/drivers/gpu/drm/bridge/ite-it6505.c @@ -1806,7 +1806,9 @@ static bool it6505_link_start_auto_train(struct it650= 5 *it6505) mutex_lock(&it6505->aux_lock); it6505_set_bits(it6505, REG_TRAIN_CTRL0, FORCE_CR_DONE | FORCE_EQ_DONE, 0x00); - it6505_write(it6505, REG_TRAIN_CTRL1, FORCE_RETRAIN); + /* reset link state machine and re start training*/ + it6505_write(it6505, REG_TRAIN_CTRL1, + FORCE_RETRAIN | MANUAL_TRAIN); it6505_write(it6505, REG_TRAIN_CTRL1, AUTO_TRAIN); =20 while (timeout > 0) { @@ -2377,7 +2379,7 @@ static void it6505_stop_link_train(struct it6505 *it6= 505) { it6505->link_state =3D LINK_IDLE; cancel_work_sync(&it6505->link_works); - it6505_write(it6505, REG_TRAIN_CTRL1, FORCE_RETRAIN); + it6505_write(it6505, REG_TRAIN_CTRL1, FORCE_RETRAIN | MANUAL_TRAIN); } =20 static void it6505_link_train_ok(struct it6505 *it6505) --=20 2.34.1