From: sashiko-bot@kernel.org
To: "Sebastian Reichel" <sebastian.reichel@collabora.com>
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v10 03/21] drm/bridge: synopsys: dw-dp: Fix error handling for DP link enablement
Date: Thu, 06 Aug 2026 00:59:53 +0000 [thread overview]
Message-ID: <20260806005953.ACBDA1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260806-synopsys-dw-dp-improvements-v10-3-d84a26c303d6@collabora.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] The new error handling path in `dw_dp_link_enable()` fails to clear the PHY transmit enable bit (`XMIT_ENABLE`) before powering off the PHY.
- [Medium] The error path in `dw_dp_link_enable()` unconditionally calls `drm_dp_link_power_down()` without checking if the display is still connected.
--
--- Patch [3]: [PATCH v10 03/21] drm/bridge: synopsys: dw-dp: Fix error handling for DP link enablement ---
commit 8b0823cf002b6b94f89ce0d8276e50b1fc919ef4
Author: Sebastian Reichel <sebastian.reichel@collabora.com>
drm/bridge: synopsys: dw-dp: Fix error handling for DP link enablement
This patch introduces a new enabled state in the link structure to ensure
the link disabling only happens if it has been properly enabled. It also adds
missing error handling in dw_dp_link_enable() to power off the PHY and link
if training fails.
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-dp.c b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
> index f8ca464d43717..dd951fd447227 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-dp.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
[ ... ]
> @@ -1615,6 +1616,9 @@ static void dw_dp_link_disable(struct dw_dp *dp)
> {
> struct dw_dp_link *link = &dp->link;
>
> + if (!link->enabled)
> + return;
> +
[Severity: Medium]
Does this early return prevent cleaning up the hardware state if link
enablement fails partway through?
If dw_dp_link_train() fails, the PHY transmit enable bit (XMIT_ENABLE) might
be set, but link->enabled will remain false. Bypassing the teardown here means
we could leave the MAC configured to transmit while the PHY is eventually
powered down, potentially causing hardware lockups.
[ ... ]
> static int dw_dp_link_enable(struct dw_dp *dp)
> @@ -1636,10 +1641,21 @@ static int dw_dp_link_enable(struct dw_dp *dp)
>
> ret = drm_dp_link_power_up(&dp->aux, dp->link.revision);
> if (ret < 0)
> - return ret;
> + goto err_phy_power_off;
>
> ret = dw_dp_link_train(dp);
> + if (ret < 0)
> + goto err_link_power_down;
> +
> + dp->link.enabled = true;
>
> + return 0;
> +
> +err_link_power_down:
> + drm_dp_link_power_down(&dp->aux, dp->link.revision);
[Severity: Medium]
Could this unconditional call to drm_dp_link_power_down() cause a
performance regression on hot-unplugs?
If link training fails because the DP cable is physically disconnected,
attempting an AUX transaction on an unplugged display causes timeout delays
which unnecessarily block the atomic commit thread. Should this call be
guarded with dw_dp_hpd_detect(dp) just as it is in dw_dp_link_disable()?
[Severity: Medium]
Additionally, should there be a call to dw_dp_phy_xmit_enable(dp, 0) in this
error path?
If dw_dp_link_train() fails, the hardware might still have the PHY transmit
enable bit set. Shutting down the PHY before clearing the XMIT_ENABLE state
can lead to undefined hardware states.
> +
> +err_phy_power_off:
> + phy_power_off(dp->phy);
> return ret;
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260806-synopsys-dw-dp-improvements-v10-0-d84a26c303d6@collabora.com?part=3
next prev parent reply other threads:[~2026-08-06 0:59 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-06 0:39 [PATCH v10 00/21] Synopsys DisplayPort Controller improvements for Rockchip platforms Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 01/21] drm/bridge: synopsys: dw-dp: Register DP AUX on bridge attach Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 1:02 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 02/21] drm/bridge: synopsys: dw-dp: Fix incorrect resource lifetimes in bind callback Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 1:05 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 03/21] drm/bridge: synopsys: dw-dp: Fix error handling for DP link enablement Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:59 ` sashiko-bot [this message]
2026-08-06 0:39 ` [PATCH v10 04/21] drm/bridge: synopsys: dw-dp: Document missing reset line deassert Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:58 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 05/21] drm/bridge: synopsys: dw-dp: Add missing mutex cleanups on module removal Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:58 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 06/21] drm/bridge: synopsys: dw-dp: Fix AUX transfer timeout race condition Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 1:05 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 07/21] drm/bridge: synopsys: dw-dp: Fix support for short I2C reads Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 08/21] drm/bridge: synopsys: dw-dp: Free output_fmts when none are valid Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 09/21] drm/bridge: synopsys: dw-dp: Support MEDIA_BUS_FMT_FIXED Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 10/21] drm/bridge: synopsys: dw-dp: Add follow-up bridge support Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 1:01 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 11/21] drm/bridge: Add out-of-band HPD notify handler Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 12/21] drm/bridge: synopsys: dw-dp: Support software triggered OOB HPD Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 13/21] drm/rockchip: dw_dp: Implement out-of-band HPD handling Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:58 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 14/21] drm/bridge: synopsys: dw-dp: Add Runtime PM support Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 1:07 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 15/21] drm/rockchip: dw_dp: Add runtime " Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 1:06 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 16/21] drm/bridge: synopsys: dw-dp: Protect sdp_reg_bank from concurrent access Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 17/21] drm/bridge: synopsys: dw-dp: Drop useless reservation of first slot Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 18/21] drm/bridge: synopsys: dw-dp: Clear only enabled SDPs on atomic disable Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 19/21] drm/bridge: synopsys: dw-dp: Use regmap_set_bits in dw_dp_send_sdp Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 0:39 ` [PATCH v10 20/21] dt-bindings: display: rockchip: dw-dp: Fix sound DAI cells Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 1:06 ` sashiko-bot
2026-08-06 0:39 ` [PATCH v10 21/21] drm/bridge: synopsys: dw-dp: Add audio support Sebastian Reichel
2026-08-06 0:39 ` Sebastian Reichel
2026-08-06 1:10 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260806005953.ACBDA1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=sebastian.reichel@collabora.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.