* [PATCH 0/2] drm/msm/dsi/phy: fix hardware revision
@ 2026-02-26 12:29 Pengyu Luo
2026-02-26 12:29 ` [PATCH 1/2] " Pengyu Luo
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Pengyu Luo @ 2026-02-26 12:29 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
Pengyu Luo, Mark Brown, Krzysztof Kozlowski
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel
This series fixes hardware revision for DSI PHY. No functional change.
Pengyu Luo (2):
drm/msm/dsi/phy: fix hardware version
drm/msm/dsi/phy: rename DSI_PHY_7NM_QUIRK_PRE_V4_1 to
DSI_PHY_7NM_QUIRK_V4_0
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 38 +++++++++++------------
1 file changed, 19 insertions(+), 19 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] drm/msm/dsi/phy: fix hardware revision
2026-02-26 12:29 [PATCH 0/2] drm/msm/dsi/phy: fix hardware revision Pengyu Luo
@ 2026-02-26 12:29 ` Pengyu Luo
2026-02-27 2:11 ` Claude review: " Claude Code Review Bot
2026-02-26 12:29 ` [PATCH 2/2] drm/msm/dsi/phy: rename DSI_PHY_7NM_QUIRK_PRE_V4_1 to DSI_PHY_7NM_QUIRK_V4_0 Pengyu Luo
2026-02-27 2:11 ` Claude review: drm/msm/dsi/phy: fix hardware revision Claude Code Review Bot
2 siblings, 1 reply; 6+ messages in thread
From: Pengyu Luo @ 2026-02-26 12:29 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
Pengyu Luo, Mark Brown, Krzysztof Kozlowski
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel,
Dmitry Baryshkov
The hardware revision for TSMC 3nm-based Qualcomm SOCs should be 7.2,
this can be confirmed from REG_DSI_7nm_PHY_CMN_REVISION_ID0, the value
is 0x27, which means hardware revision is 7.2
No functional change.
Fixes: 1337d7ebfb6d ("drm/msm/dsi/phy: Add support for SM8750")
Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
---
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
index 8cb0db3a9..01182442d 100644
--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
+++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
@@ -51,8 +51,8 @@
#define DSI_PHY_7NM_QUIRK_V4_3 BIT(3)
/* Hardware is V5.2 */
#define DSI_PHY_7NM_QUIRK_V5_2 BIT(4)
-/* Hardware is V7.0 */
-#define DSI_PHY_7NM_QUIRK_V7_0 BIT(5)
+/* Hardware is V7.2 */
+#define DSI_PHY_7NM_QUIRK_V7_2 BIT(5)
struct dsi_pll_config {
bool enable_ssc;
@@ -143,7 +143,7 @@ static void dsi_pll_calc_dec_frac(struct dsi_pll_7nm *pll, struct dsi_pll_config
if (pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_PRE_V4_1) {
config->pll_clock_inverters = 0x28;
- } else if ((pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_0)) {
+ } else if ((pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)) {
if (pll_freq < 163000000ULL)
config->pll_clock_inverters = 0xa0;
else if (pll_freq < 175000000ULL)
@@ -284,7 +284,7 @@ static void dsi_pll_config_hzindep_reg(struct dsi_pll_7nm *pll)
}
if ((pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V5_2) ||
- (pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_0)) {
+ (pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)) {
if (pll->vco_current_rate < 1557000000ULL)
vco_config_1 = 0x08;
else
@@ -699,7 +699,7 @@ static int dsi_7nm_set_usecase(struct msm_dsi_phy *phy)
case MSM_DSI_PHY_MASTER:
pll_7nm->slave = pll_7nm_list[(pll_7nm->phy->id + 1) % DSI_MAX];
/* v7.0: Enable ATB_EN0 and alternate clock output to external phy */
- if (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_0)
+ if (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)
writel(0x07, base + REG_DSI_7nm_PHY_CMN_CTRL_5);
break;
case MSM_DSI_PHY_SLAVE:
@@ -987,7 +987,7 @@ static int dsi_7nm_phy_enable(struct msm_dsi_phy *phy,
/* Request for REFGEN READY */
if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V4_3) ||
(phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V5_2) ||
- (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_0)) {
+ (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)) {
writel(0x1, phy->base + REG_DSI_7nm_PHY_CMN_GLBL_DIGTOP_SPARE10);
udelay(500);
}
@@ -1021,7 +1021,7 @@ static int dsi_7nm_phy_enable(struct msm_dsi_phy *phy,
lane_ctrl0 = 0x1f;
}
- if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_0)) {
+ if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)) {
if (phy->cphy_mode) {
/* TODO: different for second phy */
vreg_ctrl_0 = 0x57;
@@ -1097,7 +1097,7 @@ static int dsi_7nm_phy_enable(struct msm_dsi_phy *phy,
/* program CMN_CTRL_4 for minor_ver 2 chipsets*/
if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V5_2) ||
- (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_0) ||
+ (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2) ||
(readl(base + REG_DSI_7nm_PHY_CMN_REVISION_ID0) & (0xf0)) == 0x20)
writel(0x04, base + REG_DSI_7nm_PHY_CMN_CTRL_4);
@@ -1213,7 +1213,7 @@ static void dsi_7nm_phy_disable(struct msm_dsi_phy *phy)
/* Turn off REFGEN Vote */
if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V4_3) ||
(phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V5_2) ||
- (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_0)) {
+ (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)) {
writel(0x0, base + REG_DSI_7nm_PHY_CMN_GLBL_DIGTOP_SPARE10);
wmb();
/* Delay to ensure HW removes vote before PHY shut down */
@@ -1502,7 +1502,7 @@ const struct msm_dsi_phy_cfg dsi_phy_3nm_8750_cfgs = {
#endif
.io_start = { 0xae95000, 0xae97000 },
.num_dsi_phy = 2,
- .quirks = DSI_PHY_7NM_QUIRK_V7_0,
+ .quirks = DSI_PHY_7NM_QUIRK_V7_2,
};
const struct msm_dsi_phy_cfg dsi_phy_3nm_kaanapali_cfgs = {
@@ -1525,5 +1525,5 @@ const struct msm_dsi_phy_cfg dsi_phy_3nm_kaanapali_cfgs = {
#endif
.io_start = { 0x9ac1000, 0x9ac4000 },
.num_dsi_phy = 2,
- .quirks = DSI_PHY_7NM_QUIRK_V7_0,
+ .quirks = DSI_PHY_7NM_QUIRK_V7_2,
};
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] drm/msm/dsi/phy: rename DSI_PHY_7NM_QUIRK_PRE_V4_1 to DSI_PHY_7NM_QUIRK_V4_0
2026-02-26 12:29 [PATCH 0/2] drm/msm/dsi/phy: fix hardware revision Pengyu Luo
2026-02-26 12:29 ` [PATCH 1/2] " Pengyu Luo
@ 2026-02-26 12:29 ` Pengyu Luo
2026-02-27 2:11 ` Claude review: " Claude Code Review Bot
2026-02-27 2:11 ` Claude review: drm/msm/dsi/phy: fix hardware revision Claude Code Review Bot
2 siblings, 1 reply; 6+ messages in thread
From: Pengyu Luo @ 2026-02-26 12:29 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
Pengyu Luo, Mark Brown, Krzysztof Kozlowski
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel,
Dmitry Baryshkov
The quirk flag DSI_PHY_7NM_QUIRK_PRE_V4_1 is renamed to
DSI_PHY_7NM_QUIRK_V4_0 to better reflect the actual hardware revision
it applies to. (Only SM8150 uses it, its hardware revision is 4.0)
No functional change.
Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
---
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
index 01182442d..8f4b03713 100644
--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
+++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
@@ -41,8 +41,8 @@
#define VCO_REF_CLK_RATE 19200000
#define FRAC_BITS 18
-/* Hardware is pre V4.1 */
-#define DSI_PHY_7NM_QUIRK_PRE_V4_1 BIT(0)
+/* Hardware is V4.0 */
+#define DSI_PHY_7NM_QUIRK_V4_0 BIT(0)
/* Hardware is V4.1 */
#define DSI_PHY_7NM_QUIRK_V4_1 BIT(1)
/* Hardware is V4.2 */
@@ -141,7 +141,7 @@ static void dsi_pll_calc_dec_frac(struct dsi_pll_7nm *pll, struct dsi_pll_config
dec_multiple = div_u64(pll_freq * multiplier, divider);
dec = div_u64_rem(dec_multiple, multiplier, &frac);
- if (pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_PRE_V4_1) {
+ if (pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V4_0) {
config->pll_clock_inverters = 0x28;
} else if ((pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)) {
if (pll_freq < 163000000ULL)
@@ -264,7 +264,7 @@ static void dsi_pll_config_hzindep_reg(struct dsi_pll_7nm *pll)
void __iomem *base = pll->phy->pll_base;
u8 analog_controls_five_1 = 0x01, vco_config_1 = 0x00;
- if (!(pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_PRE_V4_1))
+ if (!(pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V4_0))
if (pll->vco_current_rate >= 3100000000ULL)
analog_controls_five_1 = 0x03;
@@ -313,10 +313,10 @@ static void dsi_pll_config_hzindep_reg(struct dsi_pll_7nm *pll)
writel(0x29, base + REG_DSI_7nm_PHY_PLL_PFILT);
writel(0x2f, base + REG_DSI_7nm_PHY_PLL_PFILT);
writel(0x2a, base + REG_DSI_7nm_PHY_PLL_IFILT);
- writel(!(pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_PRE_V4_1) ? 0x3f : 0x22,
+ writel(!(pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V4_0) ? 0x3f : 0x22,
base + REG_DSI_7nm_PHY_PLL_IFILT);
- if (!(pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_PRE_V4_1)) {
+ if (!(pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V4_0)) {
writel(0x22, base + REG_DSI_7nm_PHY_PLL_PERF_OPTIMIZE);
if (pll->slave)
writel(0x22, pll->slave->phy->pll_base + REG_DSI_7nm_PHY_PLL_PERF_OPTIMIZE);
@@ -928,7 +928,7 @@ static void dsi_phy_hw_v4_0_lane_settings(struct msm_dsi_phy *phy)
const u8 *tx_dctrl = tx_dctrl_0;
void __iomem *lane_base = phy->lane_base;
- if (!(phy->cfg->quirks & DSI_PHY_7NM_QUIRK_PRE_V4_1))
+ if (!(phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V4_0))
tx_dctrl = tx_dctrl_1;
/* Strength ctrl settings */
@@ -1319,7 +1319,7 @@ const struct msm_dsi_phy_cfg dsi_phy_7nm_8150_cfgs = {
.max_pll_rate = 3500000000UL,
.io_start = { 0xae94400, 0xae96400 },
.num_dsi_phy = 2,
- .quirks = DSI_PHY_7NM_QUIRK_PRE_V4_1,
+ .quirks = DSI_PHY_7NM_QUIRK_V4_0,
};
const struct msm_dsi_phy_cfg dsi_phy_7nm_7280_cfgs = {
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Claude review: drm/msm/dsi/phy: fix hardware revision
2026-02-26 12:29 [PATCH 0/2] drm/msm/dsi/phy: fix hardware revision Pengyu Luo
2026-02-26 12:29 ` [PATCH 1/2] " Pengyu Luo
2026-02-26 12:29 ` [PATCH 2/2] drm/msm/dsi/phy: rename DSI_PHY_7NM_QUIRK_PRE_V4_1 to DSI_PHY_7NM_QUIRK_V4_0 Pengyu Luo
@ 2026-02-27 2:11 ` Claude Code Review Bot
2 siblings, 0 replies; 6+ messages in thread
From: Claude Code Review Bot @ 2026-02-27 2:11 UTC (permalink / raw)
To: dri-devel-reviews
Overall Series Review
Subject: drm/msm/dsi/phy: fix hardware revision
Author: Pengyu Luo <mitltlatltl@gmail.com>
Patches: 3
Reviewed: 2026-02-27T12:11:26.677190
---
This is a clean, straightforward renaming series for DSI PHY hardware revision quirk flags in the MSM DRM driver. The changes are purely cosmetic — renaming `DSI_PHY_7NM_QUIRK_V7_0` to `DSI_PHY_7NM_QUIRK_V7_2` (patch 1) and `DSI_PHY_7NM_QUIRK_PRE_V4_1` to `DSI_PHY_7NM_QUIRK_V4_0` (patch 2) to better match actual hardware revision numbers. The reasoning is sound: the REVISION_ID0 register reads 0x27, meaning revision 7.2, not 7.0. Both patches are mechanical renames with no functional change, and the diffs are complete — all occurrences are updated.
One minor nit: a stale comment was left behind in patch 1.
**Verdict:** Series looks good. One small comment fixup needed in patch 1.
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 6+ messages in thread
* Claude review: drm/msm/dsi/phy: fix hardware revision
2026-02-26 12:29 ` [PATCH 1/2] " Pengyu Luo
@ 2026-02-27 2:11 ` Claude Code Review Bot
0 siblings, 0 replies; 6+ messages in thread
From: Claude Code Review Bot @ 2026-02-27 2:11 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
**Summary:** Renames `DSI_PHY_7NM_QUIRK_V7_0` to `DSI_PHY_7NM_QUIRK_V7_2` across all uses, including the define, all conditional checks, and both PHY config structures (`dsi_phy_3nm_8750_cfgs` and `dsi_phy_3nm_kaanapali_cfgs`).
The commit message explains the rationale well — `REG_DSI_7nm_PHY_CMN_REVISION_ID0` returns `0x27`, indicating revision 7.2.
The `Fixes:` tag referencing commit `1337d7ebfb6d ("drm/msm/dsi/phy: Add support for SM8750")` is appropriate since that's where `V7_0` was introduced.
The rename is mechanically complete across all 9 code locations and both config structs.
**Issue — stale comment not updated:**
At line 701 in the patched file, the comment still references "v7.0":
```c
/* v7.0: Enable ATB_EN0 and alternate clock output to external phy */
if (phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)
```
This should be updated to `/* v7.2: ... */` to match the rename. The patch updated the define comment (`/* Hardware is V7.2 */`) but missed this inline comment.
**Minor style nit:** Several conditions use double parentheses around single bitwise-AND tests, e.g.:
```c
} else if ((pll->phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)) {
```
and:
```c
if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V7_2)) {
```
These extra parens are pre-existing and not introduced by this patch, so not a blocker, but worth noting.
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 6+ messages in thread
* Claude review: drm/msm/dsi/phy: rename DSI_PHY_7NM_QUIRK_PRE_V4_1 to DSI_PHY_7NM_QUIRK_V4_0
2026-02-26 12:29 ` [PATCH 2/2] drm/msm/dsi/phy: rename DSI_PHY_7NM_QUIRK_PRE_V4_1 to DSI_PHY_7NM_QUIRK_V4_0 Pengyu Luo
@ 2026-02-27 2:11 ` Claude Code Review Bot
0 siblings, 0 replies; 6+ messages in thread
From: Claude Code Review Bot @ 2026-02-27 2:11 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
**Summary:** Renames `DSI_PHY_7NM_QUIRK_PRE_V4_1` to `DSI_PHY_7NM_QUIRK_V4_0` across all uses. The commit message correctly notes that only SM8150 uses this quirk and its hardware revision is 4.0, making `V4_0` a more accurate name than `PRE_V4_1`.
The rename is complete — the define, comment, all 5 code references, and the `dsi_phy_7nm_8150_cfgs` config struct are all updated.
This patch does **not** have a `Fixes:` tag, which is correct — it's a pure naming improvement without fixing an incorrect value, unlike patch 1.
No issues with this patch. It's a clean, mechanical rename.
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-02-27 2:11 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-26 12:29 [PATCH 0/2] drm/msm/dsi/phy: fix hardware revision Pengyu Luo
2026-02-26 12:29 ` [PATCH 1/2] " Pengyu Luo
2026-02-27 2:11 ` Claude review: " Claude Code Review Bot
2026-02-26 12:29 ` [PATCH 2/2] drm/msm/dsi/phy: rename DSI_PHY_7NM_QUIRK_PRE_V4_1 to DSI_PHY_7NM_QUIRK_V4_0 Pengyu Luo
2026-02-27 2:11 ` Claude review: " Claude Code Review Bot
2026-02-27 2:11 ` Claude review: drm/msm/dsi/phy: fix hardware revision Claude Code Review Bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox