Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2220759/?format=api
{ "id": 2220759, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2220759/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260408002417.231437-2-acelan.kao@canonical.com/", "project": { "id": 15, "url": "http://patchwork.ozlabs.org/api/1.1/projects/15/?format=api", "name": "Ubuntu Kernel", "link_name": "ubuntu-kernel", "list_id": "kernel-team.lists.ubuntu.com", "list_email": "kernel-team@lists.ubuntu.com", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260408002417.231437-2-acelan.kao@canonical.com>", "date": "2026-04-08T00:24:17", "name": "[SRU,R,1/1] UBUNTU: SAUCE: drm/i915/lnl+/tc: Fix false disconnect of active DP-alt TC port during long HPD pulse", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "b86ac5b221ba0680bf89c191c861b6832e2cbe64", "submitter": { "id": 2976, "url": "http://patchwork.ozlabs.org/api/1.1/people/2976/?format=api", "name": "AceLan Kao", "email": "acelan.kao@canonical.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260408002417.231437-2-acelan.kao@canonical.com/mbox/", "series": [ { "id": 499051, "url": "http://patchwork.ozlabs.org/api/1.1/series/499051/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=499051", "date": "2026-04-08T00:24:16", "name": "drm/i915/lnl+/tc: Fix false disconnect of active DP-alt TC port during long HPD pulse", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/499051/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2220759/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2220759/checks/", "tags": {}, "headers": { "Return-Path": "<kernel-team-bounces@lists.ubuntu.com>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=kUK1vSmU;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com\n (client-ip=185.125.189.65; helo=lists.ubuntu.com;\n envelope-from=kernel-team-bounces@lists.ubuntu.com;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fr3jJ3Vt0z1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 10:24:36 +1000 (AEST)", "from localhost ([127.0.0.1] helo=lists.ubuntu.com)\n\tby lists.ubuntu.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1wAGib-0003eI-Hr; Wed, 08 Apr 2026 00:24:29 +0000", "from mail-qv1-f44.google.com ([209.85.219.44])\n by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.86_2) (envelope-from <acelan@gmail.com>) id 1wAGia-0003cH-Fw\n for kernel-team@lists.ubuntu.com; Wed, 08 Apr 2026 00:24:28 +0000", "by mail-qv1-f44.google.com with SMTP id\n 6a1803df08f44-89f87257904so50238306d6.1\n for <kernel-team@lists.ubuntu.com>; Tue, 07 Apr 2026 17:24:28 -0700 (PDT)", "from localhost (211-75-139-220.hinet-ip.hinet.net. [211.75.139.220])\n by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8aa1c6d5856sm71700536d6.46.2026.04.07.17.24.24\n for <kernel-team@lists.ubuntu.com>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 07 Apr 2026 17:24:25 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775607866; x=1776212666; darn=lists.ubuntu.com;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:sender:from:to:cc:subject:date\n :message-id:reply-to;\n bh=w8Cty6etO3z5nKeKCdy6WKS6OG6b3t3oOJ6vPMCObak=;\n b=kUK1vSmUkCvwUEQgEeULo1hNGLE+I+uzCKn+FJyOmIHpPS11W0Bn9DWOtrhYsb0t0j\n 6tFUfAfu/yrjCbQ8f1V4VNzdGiFjiM0g+24Obegqk8LMNoGnMaOZSMUfvqUz6XPXwT29\n vkIFUefTuj1uTivftuUi1W43D2K22Fdz1EVyq2xTGnGa3BpEncueWQjyiR0CIPuH2M8t\n iPeRPDOAJiQbVvmAPYw82TZEEnY5W+Zep7p80TzQelYGtqy8aId0VPJRk49YUFCY2wDv\n DbOo5LuZf58Tj5XdJarA/x2ll3UdZlSYgo3BTZB/76AK0jZhF7E/t8FspDote6UO8Qwl\n WLZQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775607866; x=1776212666;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:sender:x-gm-gg:x-gm-message-state\n :from:to:cc:subject:date:message-id:reply-to;\n bh=w8Cty6etO3z5nKeKCdy6WKS6OG6b3t3oOJ6vPMCObak=;\n b=TzMQIIUAlO4VUMYioYLcOKJtufAw/xMPszidEDd9n1Kq51zZjT9dzreXHgp3Y9qEh/\n S5lgCBD9IB5fWfA7IMtljAf+USY0H/OA147kGLqhjFifmb2R+xFG/xezhpNNoA7nGNLQ\n z3kdVUaHovaBkSZtaQcObW+uwlKjH65HOZjchXDVtN8yXsf4KCwoKg36PbZVpjHoTFm8\n ioOlxfXk48jDaadcaFNk3eWH97Y0F//vIt8wpLBWQFvlbR8lupvTGEXghEyjWDfbdGQR\n QHKkxQ3wtxOfe6Bv6hnktwT0yLyX1CLGpeLMGqmDbTfGsfS/5ru2oxpWfTDyOXC4w1QL\n 0a5Q==", "X-Gm-Message-State": "AOJu0YzcWbMegVr4KfG7cqotSP+nqyiL9i8itnZhmneDJeeGNktElgZU\n P3TBmF3xRppIvUoYDGFx9+8suQ9Kv4J06svloez2A/RQBhk1KpxlqD3nTAUh9Rd6", "X-Gm-Gg": "AeBDietblYgETd/o6s51KqvzMLvOcY4uj8yIuZkN2ACd0YgwP8tFu+mFU4LBgyW4fI7\n m3EmIppoRn/PS1QWS4JIS2WZ9VDJ3x4LisJQyI1Qc8NaZQLuBtySlefO/YjUSfBBE1C1FVt7onL\n Xe/cEf8UdRvzZ5c6cM6aap/P8NV8lS3h3mpkw3LrcvDNliq1CeFjFV3eXuVb/SOm0CKDj7EVgGO\n wW2Um7wcfbMqNxwIvmzWshiAUWaR8SIACBuzlhMD0DROIIjLweei0wkQUL1wOpntEDzRQGO9cV1\n r7Otx4k3kXYHaEWu4w2oCYFtMDFCSdD7+0G2ebKKZxwgcXHPaQsRRYJnpgQ0bNiAEBBi5K3HBKP\n yDuF+oreQdU0mw+cW1elmwvanPsY/JeCcLniKuLr4HUZHDZ3QfheW4KOa9zXbWVoPim3D2Vwj5k\n ixF/ynhwd5Nj2T+c/LAQ/pVVHkcDIAnkkVF6ugzXvdiIMqzKv7CrIw", "X-Received": "by 2002:ad4:5ae1:0:b0:89c:bf90:e4e0 with SMTP id\n 6a1803df08f44-8a7028a9c4bmr329667296d6.22.1775607865847;\n Tue, 07 Apr 2026 17:24:25 -0700 (PDT)", "From": "AceLan Kao <acelan.kao@canonical.com>", "To": "kernel-team@lists.ubuntu.com", "Subject": "[SRU][R][PATCH 1/1] UBUNTU: SAUCE: drm/i915/lnl+/tc: Fix false\n disconnect of active DP-alt TC port during long HPD pulse", "Date": "Wed, 8 Apr 2026 08:24:17 +0800", "Message-ID": "<20260408002417.231437-2-acelan.kao@canonical.com>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260408002417.231437-1-acelan.kao@canonical.com>", "References": "<20260408002417.231437-1-acelan.kao@canonical.com>", "MIME-Version": "1.0", "Received-SPF": "pass client-ip=209.85.219.44; envelope-from=acelan@gmail.com;\n helo=mail-qv1-f44.google.com", "X-BeenThere": "kernel-team@lists.ubuntu.com", "X-Mailman-Version": "2.1.20", "Precedence": "list", "List-Id": "Kernel team discussions <kernel-team.lists.ubuntu.com>", "List-Unsubscribe": "<https://lists.ubuntu.com/mailman/options/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>", "List-Archive": "<https://lists.ubuntu.com/archives/kernel-team>", "List-Post": "<mailto:kernel-team@lists.ubuntu.com>", "List-Help": "<mailto:kernel-team-request@lists.ubuntu.com?subject=help>", "List-Subscribe": "<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "kernel-team-bounces@lists.ubuntu.com", "Sender": "\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>" }, "content": "From: \"Chia-Lin Kao (AceLan)\" <acelan.kao@canonical.com>\n\nBugLink: https://bugs.launchpad.net/bugs/2143879\n\nOn platforms using XELPDP+ (Lunar Lake and later), tc_phy_hpd_live_status()\nreads the PICAINTERRUPT_ISR register to determine DP-alt live status. The\nXELPDP_DP_ALT_HOTPLUG_MASK bit in this register reflects the live HPD signal,\nwhich deasserts (goes low) during a long HPD pulse from the sink.\n\nWhen an LTTPR dongle (e.g. HP Type-C to HDMI, 03f0:8a4a) fires a long HPD\npulse after link training, intel_tc_port_connected() reads PICAINTERRUPT_ISR\nand returns false even though the PHY is still owned and the link is active.\nSince intel_tc_port_handles_hpd_glitches() returns true for TC dp-alt ports,\nthe 4ms glitch-filter retry loop in intel_digital_port_connected_locked() is\nbypassed immediately, giving no protection against this transient deassertion.\n\nThe AUX abort logic then fires (-ENXIO), the hotplug handler marks DP-1 as\ndisconnected, and the compositor responds by disabling eDP-1, causing the\ninternal display to disappear.\n\nFix this by trusting the PHY ownership register\n(XELPDP_PORT_BUF_CTL1 & XELPDP_TC_PHY_OWNERSHIP) over the transient HPD\nlive status in intel_tc_port_connected() when the port has an active link\n(link_refcount > 0). The ownership register is stable and does not toggle\nduring HPD pulses.\n\nThe TC cold power domain is guaranteed to be held when link_refcount > 0,\nas __intel_tc_port_lock() already asserts and verifies this via tc_phy_is_owned()\nbefore we reach intel_tc_port_connected().\n\nWithout this fix, triggering mirror mode via hotkey on HP ZBook with HP Type-C\nto HDMI dongle (03f0:8a4a) causes:\n\n [drm:intel_dp_hpd_pulse] got hpd irq on [ENCODER:270:DDI TC1/PHY TC1] - long\n [drm:intel_tc_port_update_mode] Port D/TC#1: TC port mode reset (disconnected -> tbt-alt)\n [drm:intel_dp_hpd_pulse] got hpd irq on [ENCODER:270:DDI TC1/PHY TC1] - long\n [drm:intel_hotplug_detect_connector] [CONNECTOR:271:DP-1] status updated from connected to disconnected\n\nWith this fix, the port correctly stays in DP-alt mode:\n\n [drm:intel_tc_port_update_mode] Port D/TC#1: TC port mode reset (dp-alt -> disconnected)\n [drm:intel_tc_port_update_mode] Port D/TC#1: TC port mode reset (disconnected -> dp-alt)\n\nSigned-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>\n(cherry picked from commit https://lore.kernel.org/lkml/20260305075857.40077-1-acelan.kao@canonical.com/T/#u)\nSigned-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>\n---\n drivers/gpu/drm/i915/display/intel_tc.c | 5 +++++\n 1 file changed, 5 insertions(+)", "diff": "diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c\nindex bd12148e42f70..0967cfc75f522 100644\n--- a/drivers/gpu/drm/i915/display/intel_tc.c\n+++ b/drivers/gpu/drm/i915/display/intel_tc.c\n@@ -1732,6 +1732,11 @@ bool intel_tc_port_connected(struct intel_encoder *encoder)\n \tif (tc->mode != TC_PORT_DISCONNECTED)\n \t\tmask = BIT(tc->mode);\n \n+\tif (tc->link_refcount > 0 &&\n+\t tc->mode == TC_PORT_DP_ALT &&\n+\t tc_phy_is_owned(tc))\n+\t\treturn true;\n+\n \treturn tc_phy_hpd_live_status(tc) & mask;\n }\n \n", "prefixes": [ "SRU", "R", "1/1" ] }