Skip to content

Remove brownout risks from DPU - #1670

Open
naala-qcom wants to merge 3 commits into
qualcomm-linux:tech/mm/drmfrom
naala-qcom:glymur/fix_crash
Open

Remove brownout risks from DPU#1670
naala-qcom wants to merge 3 commits into
qualcomm-linux:tech/mm/drmfrom
naala-qcom:glymur/fix_crash

Conversation

@naala-qcom

@naala-qcom naala-qcom commented Aug 11, 2026

Copy link
Copy Markdown

Things generally run better when plugged in. That also happens to hold
for clocks. To ensure that is the case, remove calls that drop the
performance state votes while the clocks are still running.

This helps Glymur devices not crash upon resume when a display
(incl. the internal one) is plugged in.

CRs-fixed: 4616757, 4553877

@qcomlnxci
qcomlnxci requested review from a team, Rajesh Kemisetti (quic-rajeshk) and riteshk-quic and removed request for a team August 11, 2026 10:36
dev_pm_opp_set_rate(0) removes the vote specified in required-opps but
does not actually park the clock, making it run without the necessary
power backing. Prevent that from happening when
_dpu_core_perf_get_core_clk_rate() returns 0.

Link: https://lore.kernel.org/all/20260728-topic-dpu_power-v1-1-e7783b859a70@oss.qualcomm.com/
Fixes: 25fdd59 ("drm/msm: Add SDM845 DPU support")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
dev_pm_opp_set_rate(0) removes the vote specified in required-opps but
does not actually park the clock, making it run without the necessary
power backing. Drop the explicit calls to it.

Link: https://lore.kernel.org/all/20260728-topic-dpu_power-v1-2-e7783b859a70@oss.qualcomm.com/
Fixes: c943b49 ("drm/msm/dp: add displayPort driver support")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Nabige Aala <naala@qti.qualcomm.com>
dev_pm_opp_set_rate(0) removes the vote specified in required-opps but
does not actually park the clock, making it run without the necessary
power backing. Drop the explicit call to it.

Every call site of ops->link_clk_disable() is followed by
pm_runtime_put(), so the power vote will be rescinded if deemed safe.

Link: https://lore.kernel.org/all/20260728-topic-dpu_power-v1-3-e7783b859a70@oss.qualcomm.com/
Fixes: 32d3e0f ("drm/msm: dsi: Use OPP API to set clk/perf state")
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
@qcomlnxci
qcomlnxci requested a review from a team August 11, 2026 10:43
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1670

PR: #1670
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/31483449741

Build Status: ❌ Failed at Automerge Stage

Failure Type: Merge conflicts during integration (not compilation errors)

Root Cause: The build workflow failed during the automerge step when attempting to integrate the PR with the topic/tech/mm/drm branch. The workflow never reached the compilation stage.

# Conflicting File Conflict Type PR-introduced? Analysis
1 Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml Content conflict No Not modified by PR; conflict is between baseline and topic branch
2 drivers/gpu/drm/bridge/Kconfig Content conflict No Not modified by PR; conflict is between baseline and topic branch
3 drivers/gpu/drm/bridge/lontium-lt9611c.c Add/add conflict No Not modified by PR; conflict is between baseline and topic branch
4 sound/soc/qcom/sc8280xp.c Content conflict No Not modified by PR; conflict is between baseline and topic branch

Verdict

0 of 4 conflicts are introduced by this PR; all 4 are pre-existing conflicts between the baseline and the topic/tech/mm/drm branch. The PR changes are isolated to MSM DRM power management files and do not overlap with any conflicting files.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1670

PR: #1670
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/31483449741

# Error File:Line PR-introduced? Root Cause
1 Merge conflict (content) Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml No Pre-existing conflict between topic branch and baseline during automerge
2 Merge conflict (content) drivers/gpu/drm/bridge/Kconfig No Pre-existing conflict between topic branch and baseline during automerge
3 Merge conflict (add/add) drivers/gpu/drm/bridge/lontium-lt9611c.c No Pre-existing conflict between topic branch and baseline during automerge
4 Merge conflict (content) sound/soc/qcom/sc8280xp.c No Pre-existing conflict between topic branch and baseline during automerge

Verdict

No compilation errors were introduced by this PR. The build failed during the automerge phase due to 4 pre-existing merge conflicts between the topic/tech/mm/drm branch and the baseline kernel. The PR changes themselves (removing dev_pm_opp_set_rate(0) calls in DPU, DP, and DSI drivers) are syntactically correct and do not cause compilation errors.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1670 — validate-patch

PR: #1670

Verdict Issues Detailed Report
3 Full report

Final Summary

  1. Lore link present: Yes - all three commits have valid lore.kernel.org links
  2. Lore link matches PR commits: No - Commit 2/3 has semantic divergence: removes calls from different functions (msm_dp_ctrl_off_link vs msm_dp_ctrl_off_link_stream/msm_dp_ctrl_off); commits 1/3 and 3/3 match faithfully
  3. Upstream patch status: ⏳ Decision Pending - all three patches have Reviewed-by from Dmitry Baryshkov (2026-07-28) but no merge confirmation yet
  4. PR present in qcom-next/topics: Partial - 1/3 commit(s) only have partial integration evidence
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1670 - Remove brownout risks from DPU
Upstream commits:

Verdict: ❌ FAIL


Commit Message

Commit Check Status Note
1/3 Subject matches upstream FROMLIST: prefix added correctly
1/3 Body preserves rationale Identical to lore patch
1/3 Fixes tag present/correct Fixes: 25fdd5933e4c matches lore
1/3 Authorship preserved From: matches lore author (Konrad Dybcio)
1/3 Reviewed-by present ⚠️ Missing in PR commit; present in lore thread
2/3 Subject matches upstream ⚠️ BACKPORT: prefix used, but lore has no backport note
2/3 Body preserves rationale Identical to lore patch
2/3 Fixes tag present/correct Fixes: c943b4948b58 matches lore
2/3 Authorship preserved From: matches lore author (Konrad Dybcio)
2/3 Reviewed-by present Dmitry Baryshkov tag present
2/3 Additional Signed-off-by Nabige Aala added as submitter
3/3 Subject matches upstream FROMLIST: prefix added correctly
3/3 Body preserves rationale Identical to lore patch
3/3 Fixes tag present/correct Fixes: 32d3e0feccfe matches lore
3/3 Authorship preserved From: matches lore author (Konrad Dybcio)
3/3 Reviewed-by present Dmitry Baryshkov tag present

Diff

Commit File Status Notes
1/3 drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c Identical to lore patch
2/3 drivers/gpu/drm/msm/dp/dp_ctrl.c FAIL: Semantic divergence from lore patch
3/3 drivers/gpu/drm/msm/dsi/dsi_host.c Context-only delta (line 549 vs 550)

Upstream Patch Status

Commit Community Verdict
1/3 - drm/msm/dpu: Drop sneaky dev_pm_opp_set_rate(0) ⏳ Decision Pending — Reviewed-by: Dmitry Baryshkov on 2026-07-28; no merge confirmation yet
2/3 - drm/msm/dp: Drop dev_pm_opp_set_rate(0) ⏳ Decision Pending — Reviewed-by: Dmitry Baryshkov on 2026-07-28; no merge confirmation yet
3/3 - drm/msm/dsi: Drop dev_pm_opp_set_rate(0) ⏳ Decision Pending — Reviewed-by: Dmitry Baryshkov on 2026-07-28; no merge confirmation yet

Integration Presence (qcom-next/topics)

Commit Status
1/3 ✅ Present in topics as 811c38907eab
2/3 ⚠️ Partial - subject/partial tree evidence only
3/3 ✅ Present in topics as 06b7ba206561

Overall integration status: Partial - 1/3 commit has only partial integration evidence


Issues

Commit 2/3 (BACKPORT) - Critical semantic divergence:

The PR patch removes dev_pm_opp_set_rate(ctrl->dev, 0); from 3 functions, but the lore patch removes it from 4 functions:

Lore patch removes from:

  1. msm_dp_ctrl_reinitialize_mainlink ✅ (present in PR)
  2. msm_dp_ctrl_deinitialize_mainlink ✅ (present in PR)
  3. msm_dp_ctrl_off_link_stream ❌ (missing in PR)
  4. msm_dp_ctrl_off ❌ (missing in PR)

PR patch removes from:

  1. msm_dp_ctrl_reinitialize_mainlink
  2. msm_dp_ctrl_deinitialize_mainlink
  3. msm_dp_ctrl_off_link ⚠️ (different function - not in lore patch)

This is a semantic change - the PR is applying the fix to different code paths than the upstream patch. The function msm_dp_ctrl_off_link in the PR does not exist in the lore patch, which instead has msm_dp_ctrl_off_link_stream and msm_dp_ctrl_off.

Possible causes:

  • The target tree has been refactored and function names/structure differ from upstream
  • This is a legitimate adaptation for a backport to an older kernel version
  • The patch was incorrectly adapted during cherry-pick

Prefix inconsistency:
The commit is labeled BACKPORT: but the lore patch shows no indication this is a backport - it's an original patch posted to the mailing list. The correct prefix should be FROMLIST: (like commits 1/3 and 3/3), not BACKPORT:.

Missing Reviewed-by tag (Commit 1/3):
The lore thread shows Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> but this tag is missing from the PR commit message for patch 1/3.


Verdict

Do not merge without correction.

Commit 2/3 has significant semantic divergence from the upstream lore patch. The PR removes dev_pm_opp_set_rate(0) calls from different functions than the lore patch specifies. This could be:

  1. A legitimate adaptation if the target tree has been refactored (in which case the commit message should document this)
  2. An error in cherry-picking/backporting

Required actions:

  1. Commit 2/3: Verify whether the function name differences (msm_dp_ctrl_off_link vs msm_dp_ctrl_off_link_stream/msm_dp_ctrl_off) are due to legitimate refactoring in the target tree. If so:

    • Document the adaptation in the commit message
    • Verify the semantic intent is preserved
    • Consider whether all necessary call sites have been covered
  2. Commit 2/3 prefix: Change prefix from BACKPORT: to FROMLIST: - this is not a backport of a merged upstream commit, it's a patch from the mailing list.

  3. Commit 1/3: Add the missing Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> tag to the commit message.


Final Summary

  1. Lore link present: Yes - all three commits have valid lore.kernel.org links
  2. Lore link matches PR commits: No - Commit 2/3 has semantic divergence: removes calls from different functions (msm_dp_ctrl_off_link vs msm_dp_ctrl_off_link_stream/msm_dp_ctrl_off); commits 1/3 and 3/3 match faithfully
  3. Upstream patch status: ⏳ Decision Pending - all three patches have Reviewed-by from Dmitry Baryshkov (2026-07-28) but no merge confirmation yet
  4. PR present in qcom-next/topics: Partial - commits 1/3 and 3/3 are present in topics; commit 2/3 has only partial evidence (consistent with the semantic divergence found)

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: 8d5dbc1b17adf8fe86a41adcda686785e73f5414
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/3 [PATCH 1/3] FROMLIST: drm/msm/dpu: Drop sneaky dev_pm_opp_set_rate(0) partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at 811c389 present
2/3 [PATCH 2/3] BACKPORT: drm/msm/dp: Drop dev_pm_opp_set_rate(0) missing - no subject, patch-id, or full tree-content match found partial - subject or partial tree evidence found, but full change was not verified partial
3/3 [PATCH 3/3] FROMLIST: drm/msm/dsi: Drop dev_pm_opp_set_rate(0) missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at 06b7ba2 present

Final Status

overall_status: PARTIAL
present_commits: 2/3
partial_commits: 1/3
missing_commits: 0/3
topics_checked_for_commits: 3/3
final_summary: PR present in qcom-next/topics: Partial - 1/3 commit(s) only have partial integration evidence

@qlijarvis

Copy link
Copy Markdown

PR #1670 — checker-log-analyzer

PR: #1670
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/31483449343

Checker Result Summary
Checker Result Summary
checkpatch ⏭️ Skipped - merge conflict prevented execution
dt-binding-check ⏭️ Skipped - merge conflict prevented execution
dtb-check ⏭️ Skipped - merge conflict prevented execution
sparse-check ⏭️ Skipped - merge conflict prevented execution
check-uapi-headers ⏭️ Skipped - merge conflict prevented execution
check-patch-compliance ⏭️ Skipped - merge conflict prevented execution
tag-check PASS - all commits have valid prefixes (FROMLIST/BACKPORT)
qcom-next-check PASS - target is qcom-next; prefix check not mandatory

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1670 - drm/msm: Drop dev_pm_opp_set_rate(0) calls
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/31483449343
Target branch: qcom-next

Checker Result Summary
checkpatch ⏭️ Skipped - merge conflict prevented execution
dt-binding-check ⏭️ Skipped - merge conflict prevented execution
dtb-check ⏭️ Skipped - merge conflict prevented execution
sparse-check ⏭️ Skipped - merge conflict prevented execution
check-uapi-headers ⏭️ Skipped - merge conflict prevented execution
check-patch-compliance ⏭️ Skipped - merge conflict prevented execution
tag-check PASS - all commits have valid prefixes (FROMLIST/BACKPORT)
qcom-next-check PASS - target is qcom-next; prefix check not mandatory

❌ CI Infrastructure — Merge Conflict

Root cause: The CI automerge step failed when attempting to merge topic/tech/mm/drm into the integration branch based on qcom-next.

Failure details:

Merging topic branches...
 ** Merging topic branch: topic/tech/mm/drm
Auto-merging Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
Auto-merging drivers/gpu/drm/bridge/Kconfig
CONFLICT (content): Merge conflict in drivers/gpu/drm/bridge/Kconfig
Auto-merging drivers/gpu/drm/bridge/lontium-lt9611c.c
CONFLICT (add/add): Merge conflict in drivers/gpu/drm/bridge/lontium-lt9611c.c
Auto-merging sound/soc/qcom/sc8280xp.c
CONFLICT (content): Merge conflict in sound/soc/qcom/sc8280xp.c
Automatic merge failed; fix conflicts and then commit the result.
Merge failed, manual merge
##[error]Process completed with exit code 1.

Analysis:

This PR contains 3 commits that modify DRM/MSM power management code:

  1. FROMLIST: drm/msm/dpu: Drop sneaky dev_pm_opp_set_rate(0) - modifies drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
  2. BACKPORT: drm/msm/dp: Drop dev_pm_opp_set_rate(0) - modifies drivers/gpu/drm/msm/dp/dp_ctrl.c
  3. FROMLIST: drm/msm/dsi: Drop dev_pm_opp_set_rate(0) - modifies drivers/gpu/drm/msm/dsi/dsi_host.c

None of these files are involved in the merge conflicts. The conflicts occurred in:

  • Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
  • drivers/gpu/drm/bridge/Kconfig
  • drivers/gpu/drm/bridge/lontium-lt9611c.c
  • sound/soc/qcom/sc8280xp.c

These conflicts are between the topic/tech/mm/drm branch and the baseline, not caused by this PR. The CI infrastructure attempts to create an integration branch by merging all topic branches together, and this integration step failed before any checkers could run on the PR's actual changes.

Fix:

This is a CI infrastructure issue, not a problem with the PR itself. The conflicts need to be resolved in the topic/tech/mm/drm branch or the integration configuration needs to be updated. The PR author cannot fix this directly.

Recommended actions:

  1. For PR author: The PR commits themselves appear clean with proper prefixes (FROMLIST:, BACKPORT:) and upstream links. No changes needed to the PR.
  2. For maintainers: Resolve the merge conflicts in topic/tech/mm/drm or adjust the automerge configuration to handle these conflicts.
  3. Alternative: Re-trigger the CI after the conflicting topic branch is updated, or test this PR in isolation without the full integration merge.

✅ tag-check — Manual Review

Analysis: All three commits have valid subject-line prefixes:

  • Commit 1: FROMLIST:
  • Commit 2: BACKPORT:
  • Commit 3: FROMLIST:

All commits include proper Link: trailers pointing to lore.kernel.org.

Note: Since the target branch is qcom-next, the subject-prefix check is not mandatory per the checker policy. However, this PR follows best practices by including proper prefixes anyway.

Verdict

The PR itself is clean and ready for review. The CI failure is due to pre-existing merge conflicts in the integration environment, not issues with this PR's code or commit formatting.

Recommendation: Maintainers should resolve the topic/tech/mm/drm integration conflicts, then re-run CI. The PR commits follow proper formatting conventions and include upstream links.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants