From: sashiko-bot@kernel.org
To: "Nabige Aala" <nabige.aala@oss.qualcomm.com>
Cc: olteanv@gmail.com, robh@kernel.org,
linux-phy@lists.infradead.org, conor+dt@kernel.org,
vkoul@kernel.org, neil.armstrong@linaro.org,
dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v2 13/13] phy: qcom: edp: Add Nord phy_cfg, ops and OF compatible
Date: Mon, 12 Oct 2026 13:44:03 +0000 [thread overview]
Message-ID: <sashiko-outbox-168204@kernel.org> (raw)
In-Reply-To: <20261012-nord-drv-dt-v2-13-a2ab9af954d2@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] phy: qcom-edp: legacy TXn_TX_BAND writes corrupt Nord hardware state
- [High] phy: qcom-edp: hardcoded TXn_TX_DRV_LVL writes break voltage updates on Nord PHY
--
commit 1393c79f29bd788a83ce23c45373ba39e69132d0
Author: Ritesh Kumar <ritesh.kumar@oss.qualcomm.com>
phy: qcom: edp: Add Nord phy_cfg, ops and OF compatible
This commit adds the configuration structures, operations, and device tree
matching for the Nord DP PHY. It defines the Nord-specific tables for AUX,
VCO, swing, and pre-emphasis, along with updated status register offsets.
> diff --git a/drivers/phy/qualcomm/phy-qcom-edp.c b/drivers/phy/qualcomm/phy-qcom-edp.c
> index cb5f6e0ae607b..87400d61323a6 100644
> --- a/drivers/phy/qualcomm/phy-qcom-edp.c
> +++ b/drivers/phy/qualcomm/phy-qcom-edp.c
[ ... ]
> @@ -1774,6 +1774,30 @@ static const struct qcom_edp_tx_res_entry tx_res_cfg_nord[] = {
> QCOM_EDP_TX_RES_ENTRY_END,
> };
>
> +static const struct phy_ver_ops qcom_edp_phy_ops_nord = {
> + .com_power_on = qcom_edp_phy_power_on_v8,
> + .com_resetsm_cntrl = qcom_edp_phy_com_resetsm_cntrl_v8,
> + .com_bias_en_clkbuflr = qcom_edp_com_bias_en_clkbuflr_v8,
> + .com_configure_pll = qcom_edp_com_configure_pll_nord,
> + .com_configure_ssc = qcom_edp_com_configure_ssc_nord,
> + .com_ldo_config = qcom_edp_ldo_config_nord,
> +};
> +
> +static const struct qcom_edp_phy_cfg nord_edp_phy_cfg = {
> + .is_edp = false,
> + .aux_cfg = edp_phy_aux_cfg_nord,
> + .vco_div_cfg = edp_phy_vco_div_cfg_nord,
> + .dp_swing_pre_emph_cfg = &nord_dp_swing_pre_emph_cfg,
> + .edp_swing_pre_emph_cfg = &nord_edp_swing_pre_emph_cfg,
> + .ver_ops = &qcom_edp_phy_ops_nord,
> + .phy_status_reg = DP_PHY_STATUS_NORD,
> + .bias1_en_2lane = 0x03,
> + .tx2_tx3_lane_ctl = DP_PHY_TX2_TX3_LANE_CTL_NORD,
> + .tx_res_cfg = tx_res_cfg_nord,
[Severity: High]
The tx_res_cfg_nord table correctly configures the relocated offset for
TX_BAND (0x0024). However, does qcom_edp_phy_power_on() still unconditionally
write to the legacy TX_BAND offset (0x0028) before applying the tx_res_cfg
table?
qcom_edp_phy_power_on() {
...
writel(0x04, edp->tx0 + TXn_TX_BAND);
...
writel(0x04, edp->tx1 + TXn_TX_BAND);
...
}
Could this cause a write to the wrong offset on Nord hardware, potentially
corrupting whatever unrelated register now exists at 0x0028?
Should this register offset be parameterized or moved entirely to tx_res_cfg?
[Severity: High]
Similarly, tx_res_cfg_nord initializes DP_PHY_TX_LN0_DRV_LVL_NORD (offset
0x00e4), indicating the drive level registers were also relocated.
However, doesn't qcom_edp_set_voltages() still dynamically write the voltage
swing values to the legacy TXn_TX_DRV_LVL offset (0x0014) during DP link
training?
qcom_edp_set_voltages() {
...
writel(swing, edp->tx0 + TXn_TX_DRV_LVL);
...
writel(swing, edp->tx1 + TXn_TX_DRV_LVL);
...
}
Will DP link training fail on Nord PHYs because the actual drive level
register at 0x00e4 is never updated with the dynamic voltage levels?
> + .cmn_status_reg = DP_QSERDES_V8_COM_CMN_STATUS_NORD,
> + .c_ready_status_reg = DP_QSERDES_V8_COM_C_READY_STATUS_NORD,
> +};
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261012-nord-drv-dt-v2-0-a2ab9af954d2@oss.qualcomm.com?part=13
WARNING: multiple messages have this Message-ID (diff)
From: sashiko-bot@kernel.org
To: "Nabige Aala" <nabige.aala@oss.qualcomm.com>
Cc: olteanv@gmail.com, robh@kernel.org,
linux-phy@lists.infradead.org, conor+dt@kernel.org,
vkoul@kernel.org, neil.armstrong@linaro.org,
dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v2 13/13] phy: qcom: edp: Add Nord phy_cfg, ops and OF compatible
Date: Mon, 12 Oct 2026 13:44:03 +0000 [thread overview]
Message-ID: <sashiko-outbox-168204@kernel.org> (raw)
In-Reply-To: <20261012-nord-drv-dt-v2-13-a2ab9af954d2@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] phy: qcom-edp: legacy TXn_TX_BAND writes corrupt Nord hardware state
- [High] phy: qcom-edp: hardcoded TXn_TX_DRV_LVL writes break voltage updates on Nord PHY
--
commit 1393c79f29bd788a83ce23c45373ba39e69132d0
Author: Ritesh Kumar <ritesh.kumar@oss.qualcomm.com>
phy: qcom: edp: Add Nord phy_cfg, ops and OF compatible
This commit adds the configuration structures, operations, and device tree
matching for the Nord DP PHY. It defines the Nord-specific tables for AUX,
VCO, swing, and pre-emphasis, along with updated status register offsets.
> diff --git a/drivers/phy/qualcomm/phy-qcom-edp.c b/drivers/phy/qualcomm/phy-qcom-edp.c
> index cb5f6e0ae607b..87400d61323a6 100644
> --- a/drivers/phy/qualcomm/phy-qcom-edp.c
> +++ b/drivers/phy/qualcomm/phy-qcom-edp.c
[ ... ]
> @@ -1774,6 +1774,30 @@ static const struct qcom_edp_tx_res_entry tx_res_cfg_nord[] = {
> QCOM_EDP_TX_RES_ENTRY_END,
> };
>
> +static const struct phy_ver_ops qcom_edp_phy_ops_nord = {
> + .com_power_on = qcom_edp_phy_power_on_v8,
> + .com_resetsm_cntrl = qcom_edp_phy_com_resetsm_cntrl_v8,
> + .com_bias_en_clkbuflr = qcom_edp_com_bias_en_clkbuflr_v8,
> + .com_configure_pll = qcom_edp_com_configure_pll_nord,
> + .com_configure_ssc = qcom_edp_com_configure_ssc_nord,
> + .com_ldo_config = qcom_edp_ldo_config_nord,
> +};
> +
> +static const struct qcom_edp_phy_cfg nord_edp_phy_cfg = {
> + .is_edp = false,
> + .aux_cfg = edp_phy_aux_cfg_nord,
> + .vco_div_cfg = edp_phy_vco_div_cfg_nord,
> + .dp_swing_pre_emph_cfg = &nord_dp_swing_pre_emph_cfg,
> + .edp_swing_pre_emph_cfg = &nord_edp_swing_pre_emph_cfg,
> + .ver_ops = &qcom_edp_phy_ops_nord,
> + .phy_status_reg = DP_PHY_STATUS_NORD,
> + .bias1_en_2lane = 0x03,
> + .tx2_tx3_lane_ctl = DP_PHY_TX2_TX3_LANE_CTL_NORD,
> + .tx_res_cfg = tx_res_cfg_nord,
[Severity: High]
The tx_res_cfg_nord table correctly configures the relocated offset for
TX_BAND (0x0024). However, does qcom_edp_phy_power_on() still unconditionally
write to the legacy TX_BAND offset (0x0028) before applying the tx_res_cfg
table?
qcom_edp_phy_power_on() {
...
writel(0x04, edp->tx0 + TXn_TX_BAND);
...
writel(0x04, edp->tx1 + TXn_TX_BAND);
...
}
Could this cause a write to the wrong offset on Nord hardware, potentially
corrupting whatever unrelated register now exists at 0x0028?
Should this register offset be parameterized or moved entirely to tx_res_cfg?
[Severity: High]
Similarly, tx_res_cfg_nord initializes DP_PHY_TX_LN0_DRV_LVL_NORD (offset
0x00e4), indicating the drive level registers were also relocated.
However, doesn't qcom_edp_set_voltages() still dynamically write the voltage
swing values to the legacy TXn_TX_DRV_LVL offset (0x0014) during DP link
training?
qcom_edp_set_voltages() {
...
writel(swing, edp->tx0 + TXn_TX_DRV_LVL);
...
writel(swing, edp->tx1 + TXn_TX_DRV_LVL);
...
}
Will DP link training fail on Nord PHYs because the actual drive level
register at 0x00e4 is never updated with the dynamic voltage levels?
> + .cmn_status_reg = DP_QSERDES_V8_COM_CMN_STATUS_NORD,
> + .c_ready_status_reg = DP_QSERDES_V8_COM_C_READY_STATUS_NORD,
> +};
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261012-nord-drv-dt-v2-0-a2ab9af954d2@oss.qualcomm.com?part=13
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2026-10-12 13:44 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 13:32 [PATCH v2 00/13] Add Qualcomm Nord display and eDP PHY support Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-12 13:32 ` [PATCH v2 01/13] dt-bindings: phy: qcom,edp-phy: Add DP PHY compatible for Nord Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-13 7:37 ` Krzysztof Kozlowski
2026-10-13 7:37 ` Krzysztof Kozlowski
2026-10-12 13:32 ` [PATCH v2 02/13] dt-bindings: display: msm: Document the Nord DiplayPort controller Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-13 7:44 ` Krzysztof Kozlowski
2026-10-13 7:44 ` Krzysztof Kozlowski
2026-10-13 8:48 ` Krzysztof Kozlowski
2026-10-13 8:48 ` Krzysztof Kozlowski
2026-10-12 13:32 ` [PATCH v2 03/13] dt-bindings: display/msm: Document Nord MDSS Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-12 13:45 ` sashiko-bot
2026-10-12 13:45 ` sashiko-bot
2026-10-13 8:48 ` Krzysztof Kozlowski
2026-10-13 8:48 ` Krzysztof Kozlowski
2026-10-12 13:32 ` [PATCH v2 04/13] drm/msm/dpu: Add support for DPU 12.1 on Nord Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-13 9:28 ` Dmitry Baryshkov
2026-10-13 9:28 ` Dmitry Baryshkov
2026-10-12 13:32 ` [PATCH v2 05/13] drm/msm: mdss: Add support for MDSS " Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-12 13:32 ` [PATCH v2 06/13] drm/msm/dp: Add support for DP controllers " Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-12 13:47 ` sashiko-bot
2026-10-12 13:47 ` sashiko-bot
2026-10-12 14:01 ` Konrad Dybcio
2026-10-12 14:01 ` Konrad Dybcio
2026-10-13 9:18 ` Dmitry Baryshkov
2026-10-13 9:18 ` Dmitry Baryshkov
2026-10-12 13:32 ` [PATCH v2 07/13] phy: qcom: edp: Add Nord-specific register offsets Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-13 8:43 ` Abel Vesa
2026-10-13 8:43 ` Abel Vesa
2026-10-13 10:19 ` Dmitry Baryshkov
2026-10-13 10:19 ` Dmitry Baryshkov
2026-10-12 13:32 ` [PATCH v2 08/13] phy: qcom: edp: Generalize power-on path for per-SoC overrides Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-12 13:46 ` sashiko-bot
2026-10-12 13:46 ` sashiko-bot
2026-10-13 10:26 ` Dmitry Baryshkov
2026-10-13 10:26 ` Dmitry Baryshkov
2026-10-12 13:32 ` [PATCH v2 09/13] phy: qcom: edp: Add Nord voltage-swing and pre-emphasis tables Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-13 8:44 ` Abel Vesa
2026-10-13 8:44 ` Abel Vesa
2026-10-13 10:27 ` Dmitry Baryshkov
2026-10-13 10:27 ` Dmitry Baryshkov
2026-10-12 13:32 ` [PATCH v2 10/13] phy: qcom: edp: Add Nord spread-spectrum clocking configuration callback Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-13 8:47 ` Abel Vesa
2026-10-13 8:47 ` Abel Vesa
2026-10-13 10:28 ` Dmitry Baryshkov
2026-10-13 10:28 ` Dmitry Baryshkov
2026-10-12 13:32 ` [PATCH v2 11/13] phy: qcom: edp: Add Nord PLL " Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-12 13:32 ` [PATCH v2 12/13] phy: qcom: edp: Add Nord PHY configuration data tables Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-12 13:43 ` sashiko-bot
2026-10-12 13:43 ` sashiko-bot
2026-10-13 10:33 ` Dmitry Baryshkov
2026-10-13 10:33 ` Dmitry Baryshkov
2026-10-12 13:32 ` [PATCH v2 13/13] phy: qcom: edp: Add Nord phy_cfg, ops and OF compatible Nabige Aala
2026-10-12 13:32 ` Nabige Aala
2026-10-12 13:44 ` sashiko-bot [this message]
2026-10-12 13:44 ` 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=sashiko-outbox-168204@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-phy@lists.infradead.org \
--cc=nabige.aala@oss.qualcomm.com \
--cc=neil.armstrong@linaro.org \
--cc=olteanv@gmail.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=vkoul@kernel.org \
/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.