From nobody Mon Jun 15 05:20:29 2026 Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EF4D03A9619 for ; Wed, 8 Apr 2026 08:45:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775637919; cv=none; b=PV2JRb9o+NRcw2QUG46X82z7b9Lveb3xl/Clr/HNSvfVYZNUA8EWrIiVZxxRCwWg2UaaQ8Y2mAoeXZ8SgUZ5Lyzs1tZDZ9CwXjCmckeSa0h5GgqIev8qaaOXuzEwHkmopDE3gWE8oDJoAVH1yfUdQRo1IMYSMhKZVCOO4vDKnI0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775637919; c=relaxed/simple; bh=7Pm1SzDh7q+Stzk6dBkSmE/3AS0ra9g+3C3p5V2q6p8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=W42zAzortGvdhik5zqsW+egtjRewouE4IPiXfHaL/W214q7GWt7LXx/VNBHbyVlijPnF4DTkbLyowK5XSFKKqdD4+/YEB8d6u+I0qBQZ3vCHBJn+KV5M3cW3mTRBlpuw4i66EecORFNV7bVM4SWfvpPPUeMX/GyatFUVVFjVGRg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=fail (p=reject dis=none) header.from=canonical.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CEwIIyFb; arc=none smtp.client-ip=209.85.222.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=reject dis=none) header.from=canonical.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CEwIIyFb" Received: by mail-qk1-f169.google.com with SMTP id af79cd13be357-8cb40149037so655225485a.2 for ; Wed, 08 Apr 2026 01:45:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775637917; x=1776242717; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:from:to:cc:subject:date:message-id:reply-to; bh=3lr+SQhutbSWGABS7oQ2OjJMnCc+Y1xCXHP8EbLYn64=; b=CEwIIyFb+OlEWmHSzihx7RK3XiFIvLkPnMxSskszRAfVyYZlW4Q+QOEIUMxSciz4N6 zT0SxzAAbiolj0VVtJ4guHtEevFdMR3eqEWxn+5pSV+dYDGAr7Y1uGXK4h33xEw5fFnu Uo3Hiou6T+dRkmNTvO2snr830P+mwM+OLCK8aHrMfxdB0w2Yf52pTK35m85OqR0JSb8t mm7Ut0w2g5zk4mIJcmQyMHoP5exz8EF2moNlrVErJMQ4Qt1je8849+kq+KYQlytkum2+ nNLPjHWHUsLwPNBj+MLLu3EHBKQ3B5G58rm21/7EmKrhrRjDO8xbG93iS48h79P8xkSq pPDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775637917; x=1776242717; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=3lr+SQhutbSWGABS7oQ2OjJMnCc+Y1xCXHP8EbLYn64=; b=MgPssqnP34vyhT0wrbKzJbb9qQsUHCJ2zRmgUvJhrvDoK9VzasBxm4OqtT84Y2qDcN B7MaVtNhe7nONhhQBWHa2sEGg9mfsD0mj2wpMAA4FtMegUjYV8UZiDv6AoeZCUe7h2Kf UWaVofapHLLc/Ig1KgI3Pq5JIgTFjVjHjyG3N2+G7FTVQVWbdAxAE2pln2uv3oWxzatn y6t5R64FeHQXG4CmsoouhlyJyCOJiqnZcKElPyXYm75Z0np8TTC5nWPDJqbslQlRSZf2 /RBMqS1KjGem5KGe+6+PxmXolytWXrr9G1NN5vOpjP2oMsXdzKdwcQbr89KFPNJ+U8jK D/nQ== X-Forwarded-Encrypted: i=1; AJvYcCWrrfbTKOZ/ePBaUXytMB3DVshVHmafBIQgKydPfV15Lo22zE2FVjePxSrHQIiHE+zkn2hx5MTxN9fHId4=@vger.kernel.org X-Gm-Message-State: AOJu0YyFyc/1PoReDQhqN0ARBZJLoGsdsD8hQIf8ZvL/5RACD2wscHLe yw5ejLn4jG9OokpVFDuFbsB20civyZ1pfDyYz6S6Sp8zfVB4gQlhCIs9 X-Gm-Gg: AeBDieu4qbr16THYYe+J2xwilQRqpnoMhjJ+0HSjgo937eppwIcSDiKFtqRL/Isxpt9 Q17TCbW19MI2VuE1MH+QbzXEEqZFek5S++8PhO0Np7U217gjXXLJEzIRK4iu25R1fWFbz8wQbBd Mi7ZMLdLWwZngTF5X9l2CoLu45Jgejlp10LVpq/VBvlfnXSxM6kpzx9J4o8LtVXlW4oePXRIsIC MTv7X6K9IvaR7zE20xkTL8+C2zmJ72AP5hqJX2x6h34i7/XZWiXe9I6QMWebHGkY/2q2MZ/2I/b UjnsoAmkyxwajlyaHlSY7sFqegjPfym54TezdFwyA4gG/sfPoZjjrJ4EwuUauO9eMz0c3ZSkJbo qiwgWMwK/s8pC6+kbvx6aJtw1F6BQHHmXpD5/yl7H9KrzN3o8nj9++6o5cY9AXE14/i+kbYyrpE J3tLaqmk674+wTUekF X-Received: by 2002:a05:6214:468c:b0:89c:e4c3:dc2d with SMTP id 6a1803df08f44-8a7022bbe6amr337024886d6.2.1775637916961; Wed, 08 Apr 2026 01:45:16 -0700 (PDT) Received: from localhost ([2001:67c:1562:8007::aac:4468]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8ac56e3a898sm39028506d6.38.2026.04.08.01.45.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2026 01:45:16 -0700 (PDT) Sender: AceLan Kao From: "Chia-Lin Kao (AceLan)" To: Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , David Airlie , Simona Vetter Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/i915/dp: Clear accumulated HPD events after link training Date: Wed, 8 Apr 2026 16:45:09 +0800 Message-ID: <20260408084509.555045-1-acelan.kao@canonical.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" After link training completes, intel_dp_stop_link_train() calls intel_hpd_unblock() which fires all HPD events that accumulated during training via queue_work_for_missed_irqs(). On MST hubs that generate rapid short HPD pulses (observed at 5-55ms intervals on Dell U2721DE with Realtek MST hub), this creates a burst of stale ESI processing that races with the ongoing modeset pipeline enabling the 2nd MST stream, resulting in a GPU hard lockup. Use intel_hpd_clear_and_unblock() instead, which clears the accumulated HPD events before unblocking. These events are stale since they reflect link status before the successful retrain. Any new HPD events arriving after the unblock will be processed normally, and the scheduled link check (intel_encoder_link_check_queue_work) provides a safety net for detecting legitimate link issues. Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/gpu/drm/i915/display/intel_dp_link_training.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c b/driver= s/gpu/drm/i915/display/intel_dp_link_training.c index a26094223f780..4de2b3d3ea21c 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c @@ -1267,7 +1267,7 @@ void intel_dp_stop_link_train(struct intel_dp *intel_= dp, lt_dbg(intel_dp, DP_PHY_DPRX, "128b/132b intra-hop not clearing\n"); } =20 - intel_hpd_unblock(encoder); + intel_hpd_clear_and_unblock(encoder); =20 if (!display->hotplug.ignore_long_hpd && intel_dp->link.seq_train_failures < MAX_SEQ_TRAIN_FAILURES) { --=20 2.53.0