From nobody Fri Oct 2 09:26:43 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 EE62936A34D for ; Mon, 3 Aug 2026 09:47:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785750445; cv=none; b=EHC5AIMIEna4Q6Y8yMOH05YQpX34TSKkW4W6alsvQ3iXQiHGhhMlEPQQrklP+v9CQyB1kTO2mCDKB25OKBLX0p9f5r8EMRj39GuhH6mQtj+Z7ZTv+jVGeTxS1WiF6m2GJv5Zw4pqLRlTwv1pgvbz47rUTG08tC8nJVgjHumgh8I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785750445; c=relaxed/simple; bh=NWTLaMZrTPW42xCE6E9aITAaTHV/t9j23fM4EgwS5NM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=kmBEb4g3KUrv/sAbVo7NOl30eP5jReMVrfTU1jC0v9/jL4MrANWJSnnR7xkZkm8iYncaGtyrQQSZVeYV4LnAJJ2YRnC7pv9gsty76/wkoHIhDsYnWtaOHZjfpzKcA0UlyVyT9OhJS9Yi73yYsgd70d2d+xo7Byhqjl3jdv0HaWU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=gZzUp7fK; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="gZzUp7fK" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2cedda2ce6fso25825525ad.1 for ; Mon, 03 Aug 2026 02:47:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1785750443; x=1786355243; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=+uaSlkxw7D25A2k1gsmS8bB5Do1RfHAQ7p/SppP4f5w=; b=gZzUp7fKqO6vMXXoZzvtO8LCFR9fvocUDB/F3/0ZW1j1iMvZUtgPvX2eZRfhtjYNx4 azwBUuSTPztqHc4j6zw7nrQfvapDx5jA2t8nX18fezYQEOu/LBYqzUXrIfIrSLvuBadz ZdQK6Zt4CHTF6czhchfRLJkQCBj0x/8MlZkfQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785750443; x=1786355243; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=+uaSlkxw7D25A2k1gsmS8bB5Do1RfHAQ7p/SppP4f5w=; b=ga/4R/1XOTUgSVAhQ70OMZubxhRqCr8vmSqxOqPy3A6RvsmwZWJ+QjjQ8Xn+10gCM5 KvP2D6ueK/fhuc9hdl2wS5bIV28dVx7kQUHsYEkS+wgaicYmU0ZmV+EMKr7hJa9Bm+zN JTcHVDHLisODda9mMRjW2IeTADIEMLbjJE1FOluN+ibnRVmGf15Fg4qc6JKyi3G64DBo wK1KeWspt5DRWoac6oSowRNLkV918wQXp0qCkUdsn8tF6uYnYIxekdllra5k/4/v7r2t MxffuE8iNAAMM1Ws4Cg/l+TRW/xyQ2wButR39I5LzSN6eRlF150zhDled6kTk8p/+x6z mfUQ== X-Forwarded-Encrypted: i=1; AHgh+Rp0LKbhaSws/b5iymG2P9kvWefJ3EgwAZckxRAAO6/WpRb53W4lb5y49bANAEvMbQ8uQFufSTH44wCjk3U=@vger.kernel.org X-Gm-Message-State: AOJu0YzW3iORO5eiCrVkruX6tsJxEzPSBVPAjyVjZbm/UlLcadjrrZ7L ma3KNN8MkbUTjUaElsZl7iwh9dwZML5v2mdDgVezIxnlf2eMsfNxKQjb5dh1ZzWQuQ== X-Gm-Gg: AR+sD11aRUcuaNbTQJidaUiL1Ww7CeyjvgJSMdq0rkb113MeAVhOT7dDM5mOZ068SsR wfRzlDUOvIqZFUpnTgIuROsuKZZfYulSRQ2yPoMqj5CUmlKNpsfASjGCbskoP0C7a8IHbnnNfxX 1PihS1H18njgIbu9XDbiaAfb/N4dobPKGH2y0mWmBJSeQStaeYfJpQqPO4UKNuLejrhYw34A8LT VSLJZjYfEgg5+6fQZLZDjLdt1itWuLMhgy5hO1UgxEeYpvrpytB4hLo9ylLPnZzmFeTrbWO/P6W 65nGlD1zmvCIwoY7bJm6t6skIk6a2d97TYGQqwOeuuPmaeVE2KFvJJ+VO3D/gHQxxIP40p+umfT Gj96HeAssQliVn9ewr/tleO6irT1ijhubeclX4czURbmLaxjBpozuGDXMl8G5JiS+J6daDwS+c9 vuUQsML10cCapiyh/p6cQSrCELbqYzi0acm3DzgMlCr04ZlmJc3wzJRK6yzBVaZGY/5c03/WTEQ /gVYYPmUmkWsA1U+y+PQWtGLACyiJnAodty+hchGWp8mbf4rVaeGi4WcNowbkg= X-Received: by 2002:a17:902:ce8b:b0:2ce:9b49:d4a0 with SMTP id d9443c01a7336-2d0524939c7mr94361625ad.35.1785750443164; Mon, 03 Aug 2026 02:47:23 -0700 (PDT) Received: from yuanhsinte-p620-1.tpe.corp.google.com ([2a00:79e0:201d:8:2f3d:2ef6:d653:f82c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d04b0eb598sm35102885ad.51.2026.08.03.02.47.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Aug 2026 02:47:22 -0700 (PDT) From: Hsin-Te Yuan Date: Mon, 03 Aug 2026 17:47:19 +0800 Subject: [PATCH] drm/panel-edp: Add pre_unprepare delay 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: <20260803-edp-v1-1-3e92dec1d56c@chromium.org> X-B4-Tracking: v=1; b=H4sIAKZjcGoC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDCwNj3dSUAl3TRAsDkzQLS/MUAyMloMqCotS0zAqwKdGxtbUAPi+QvFU AAAA= X-Change-ID: 20260803-edp-5a804f897d02 To: Douglas Anderson , Neil Armstrong , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Haikun Zhou Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Hsin-Te Yuan X-Mailer: b4 0.14.3 In eDP power-off timing specifications, T10 defines the minimum delay required between the end of valid video data from the source and panel power-down (main VDD off). Currently, panel-edp only supports the 'disable' delay, which corresponds to T9 (backlight off to end of video data) and runs in panel_edp_disable() while video data is still active. For panels that require a delay after video data has stopped before cutting power, this delay must occur in panel_edp_unprepare() before turning off power rails. Add a 'pre_unprepare' field to struct panel_delay to model T10-min, and delay for this duration in panel_edp_unprepare() before calling pm_runtime_put_sync_suspend(). Additionally, adjust the timing entry for TM156VDXP25 to use delay_200_500_e80_pu100 (enable =3D 80ms, pre_unprepare =3D 100ms) to match its panel specification, replacing the previous delay_200_500_e50_d100. Fixes: b9e2d5cdaab0 ("drm/panel-edp: Support NV140FHM-N5B and TM156VDXP25") Signed-off-by: Hsin-Te Yuan Reviewed-by: Douglas Anderson --- Change-Id: I3361bdf4d3289c773f0c2b77163e427b774797d5 --- drivers/gpu/drm/panel/panel-edp.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/pane= l-edp.c index 98bdcf352701..f6624191f97c 100644 --- a/drivers/gpu/drm/panel/panel-edp.c +++ b/drivers/gpu/drm/panel/panel-edp.c @@ -144,6 +144,16 @@ struct panel_delay { */ unsigned int disable; =20 + /** + * @pre_unprepare: Time for the end of video data to power off. + * + * The time (in milliseconds) that it needs to have passed between + * the end of valid video data from source and start powering off. + * + * This is T10-min on eDP timing diagrams. It is not common to set. + */ + unsigned int pre_unprepare; + /** * @unprepare: Time to power down completely. * @@ -413,8 +423,12 @@ static int panel_edp_suspend(struct device *dev) =20 static int panel_edp_unprepare(struct drm_panel *panel) { + struct panel_edp *p =3D to_panel_edp(panel); int ret; =20 + if (p->desc->delay.pre_unprepare) + msleep(p->desc->delay.pre_unprepare); + ret =3D pm_runtime_put_sync_suspend(panel->dev); if (ret < 0) return ret; @@ -1810,6 +1824,13 @@ static const struct panel_delay delay_80_500_e80_p2e= 200 =3D { .prepare_to_enable =3D 200, }; =20 +static const struct panel_delay delay_200_500_e80_pu100 =3D { + .hpd_absent =3D 200, + .unprepare =3D 500, + .enable =3D 80, + .pre_unprepare =3D 100, +}; + static const struct panel_delay delay_100_500_e200 =3D { .hpd_absent =3D 100, .unprepare =3D 500, @@ -2181,7 +2202,7 @@ static const struct edp_panel_entry edp_panels[] =3D { =20 EDP_PANEL_ENTRY('T', 'M', 'A', 0x0811, &delay_200_500_e80_d50, "TM140VDXP= 01-04"), EDP_PANEL_ENTRY('T', 'M', 'A', 0x2094, &delay_200_500_e50_d100, "TL140VDM= S03-01"), - EDP_PANEL_ENTRY('T', 'M', 'A', 0x2139, &delay_200_500_e50_d100, "TM156VDX= P25"), + EDP_PANEL_ENTRY('T', 'M', 'A', 0x2139, &delay_200_500_e80_pu100, "TM156VD= XP25"), =20 { /* sentinal */ } }; --- base-commit: bc47d5937f21c5fc94504f03e18f1adb56d97634 change-id: 20260803-edp-5a804f897d02 Best regards, --=20 Hsin-Te Yuan