Skip to content

Vote qref in tcsr driver#1473

Open
qianyu-qcom wants to merge 5 commits into
qualcomm-linux:tech/bsp/clkfrom
qianyu-qcom:tech/bsp/clk
Open

Vote qref in tcsr driver#1473
qianyu-qcom wants to merge 5 commits into
qualcomm-linux:tech/bsp/clkfrom
qianyu-qcom:tech/bsp/clk

Conversation

@qianyu-qcom

Copy link
Copy Markdown

No description provided.

The QREF block supplies reference clocks to PCIe PHYs and requires
dedicated LDO supplies to operate. The digital control interface for QREF
(clkref_en registers) resides in TCSR on glymur. Since QREF has no
dedicated DT node of its own, these supply properties are placed in the
TCSR node which acts as the control interface for QREF.

Add a dedicated binding file for qcom,glymur-tcsr and document the supply
properties. As this binding will grow to cover more SoCs, mark the
required supplies per compatible using an allOf/if/then conditional.

Link: https://lore.kernel.org/all/20260702-tcsr_qref_0702-v7-0-776f2811b7af@oss.qualcomm.com/
Signed-off-by: Qiang Yu <qiang.yu@oss.qualcomm.com>
Mahua shares the same QREF TX/RPT/RX component naming as Glymur, but has a
different topology: a single QREF block fed by REFGEN4 only, rather than
the two independent blocks fed by REFGEN3 and REFGEN4 on Glymur.

Add qcom,mahua-tcsr compatible and document its required supply
properties. Note that REFGEN4 is supplied by regulators vdda-refgen3-1p2
and vdda-refgen3-0p9 on Mahua.

List: https://lore.kernel.org/all/20260702-tcsr_qref_0702-v7-0-776f2811b7af@oss.qualcomm.com/
Signed-off-by: Qiang Yu <qiang.yu@oss.qualcomm.com>
Before XO refclk is distributed to PCIe/USB/eDP PHYs, it passes through
a QREF block. QREF is powered by dedicated LDO rails, and the clkref_en
register controls whether refclk is gated through to the PHY side.

These clkref controls are different from typical GCC branch clocks:
- only a single enable bit is present, without branch-style config bits
- regulators must be voted before enable and unvoted after disable

Model this as a dedicated clk_ref clock type with custom clk_ops instead
of reusing struct clk_branch semantics.

Also provide a common registration/probe API so the same clkref model
can be reused regardless of where clkref_en registers are placed, e.g.
TCSR on glymur and TLMM on SM8750.

Link: https://lore.kernel.org/all/20260702-tcsr_qref_0702-v7-0-776f2811b7af@oss.qualcomm.com/
Signed-off-by: Qiang Yu <qiang.yu@oss.qualcomm.com>
…e to clk_ref helper

Replace local clk_branch-based clkref definitions with descriptor-based
registration via qcom_clk_ref_probe().

This keeps the glymur driver focused on clock metadata and reuses common
runtime logic for regulator handling, enable/disable sequencing, and OF
provider wiring.

Link: https://lore.kernel.org/all/20260702-tcsr_qref_0702-v7-0-776f2811b7af@oss.qualcomm.com/
Co-developed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Qiang Yu <qiang.yu@oss.qualcomm.com>
Mahua is based on Glymur but uses a different QREF topology, requiring
distinct regulator lists and clock descriptors for its PCIe clock
references.

Add mahua-specific regulator arrays and clk descriptor table, and use
match_data to select the correct descriptor table per compatible string at
probe time.

Link: https://lore.kernel.org/all/20260702-tcsr_qref_0702-v7-0-776f2811b7af@oss.qualcomm.com/
Signed-off-by: Qiang Yu <qiang.yu@oss.qualcomm.com>
@qianyu-qcom qianyu-qcom changed the title Tech/bsp/clk Vote qref in tcsr driver Jul 3, 2026
@qcomlnxci qcomlnxci requested review from a team, Mike Tipton (mdtipton) and Taniya Das (taniyadas20) and removed request for a team July 3, 2026 19:57
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1473

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

# Error File:Line PR-introduced? Root Cause
1 Merge conflict (add/add) Documentation/devicetree/bindings/cpufreq/qcom,shikra-epss.yaml No Pre-existing conflict between base branch and topic branch during automerge
2 Merge conflict (content) Documentation/devicetree/bindings/crypto/qcom,prng.yaml No Pre-existing conflict between base branch and topic branch during automerge
3 Merge conflict (content) Documentation/devicetree/bindings/crypto/qcom-qce.yaml No Pre-existing conflict between base branch and topic branch during automerge
4 Merge conflict (content) Documentation/devicetree/bindings/display/msm/gpu.yaml No Pre-existing conflict between base branch and topic branch during automerge
5+ Multiple additional merge conflicts Various DT binding files No Pre-existing conflicts in interconnect, iommu, media, phy, regulator, remoteproc bindings and driver files

Verdict

0 of 11+ errors are introduced by this PR; all are pre-existing merge conflicts in the base branch.

This is NOT a compilation failure. The build failed during the automerge phase when attempting to merge tech/bsp/clk topic branch with the qcom-next baseline. The PR changes (adding qcom,glymur-tcsr.yaml, clk-ref.c, and include/linux/clk/qcom.h) do not conflict with any of the failing files.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1473

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

# Error File:Line PR-introduced? Root Cause
N/A No compilation errors N/A N/A Build failed during integration merge, not compilation

Verdict

This PR introduces zero compilation errors. The build failure is caused by 101 merge conflicts during the automerge/integration workflow when merging the tech/bsp/clk topic branch with other topic branches. None of the conflicting files are modified by this PR.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1473 — validate-patch

PR: #1473

Verdict Issues Detailed Report
⚠️ 6 Full report

Final Summary

  1. Lore link present: Yes — all 5 commits link to https://lore.kernel.org/all/20260702-tcsr_qref_0702-v7-0-776f2811b7af@oss.qualcomm.com/ (commit 2 uses "List:" tag instead of "Link:")
  2. Lore link matches PR commits: Cannot verify — network access restricted, unable to fetch upstream patches for comparison
  3. Upstream patch status: Cannot verify — network access restricted, unable to check mailing list thread for acceptance/rejection/pending status
  4. PR present in qcom-next: Cannot verify — git repository access slow/restricted, search timed out after 25+ seconds
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #1473 - FROMLIST: dt-bindings and clk: qcom: Add QREF regulator support for glymur and mahua TCSR
Upstream commit: https://lore.kernel.org/all/20260702-tcsr_qref_0702-v7-0-776f2811b7af@oss.qualcomm.com/
Verdict: ⚠️ PARTIAL (network restrictions prevent full validation)

Commit Message

Check Status Note
Subject matches upstream ⏭️ Cannot verify - network access restricted
Body preserves rationale All commits have descriptive commit messages
Fixes tag present/correct N/A No Fixes tags (new feature, not a fix)
Authorship preserved All commits authored by Qiang Yu; FROMLIST allows submitter in From:
Backport note (if applicable) N/A FROMLIST commits, not backports
Lore links present All 5 commits have lore.kernel.org links
Trailer consistency ⚠️ Commit 2 uses "List:" instead of "Link:"

Diff

File Status Notes
Documentation/devicetree/bindings/clock/qcom,glymur-tcsr.yaml ⏭️ Cannot verify against upstream - network restricted
Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml ⏭️ Cannot verify against upstream - network restricted
drivers/clk/qcom/clk-ref.c ⏭️ Cannot verify against upstream - network restricted
include/linux/clk/qcom.h ⏭️ Cannot verify against upstream - network restricted
drivers/clk/qcom/tcsrcc-glymur.c ⏭️ Cannot verify against upstream - network restricted
drivers/clk/qcom/Makefile ⏭️ Cannot verify against upstream - network restricted

Issues

Minor Issues:

  1. Commit 2 trailer inconsistency: Uses List: instead of Link: for the lore.kernel.org URL. While both are acceptable, Link: is the standard tag used in commits 1, 3, 4, and 5. Recommend changing to Link: for consistency.

Validation Limitations:
2. Cannot fetch upstream patches: Network access is restricted, preventing download of the lore.kernel.org patch series for diff comparison.
3. Cannot verify upstream status: Unable to check if patches have been accepted, rejected, or are pending on the mailing list.
4. Cannot verify qcom-next presence: Git repository access is slow/restricted, preventing verification of whether commits are already in qcom-next.

Positive Observations:

  • All 5 commits correctly use the FROMLIST: prefix
  • All commits have lore.kernel.org links pointing to the same v7 patch series
  • Author is consistent (Qiang Yu qiang.yu@oss.qualcomm.com) across all commits
  • Commit 4 has proper Co-developed-by/Signed-off-by/Reviewed-by trailer ordering
  • Commit messages are descriptive and explain the rationale for changes
  • No obvious authorship issues (FROMLIST allows submitter to differ from original author)

Verdict

Cannot fully validate due to network restrictions. Based on available information:

Commit message structure: Proper FROMLIST prefix, lore links present, authorship consistent
⚠️ Minor fix needed: Change List: to Link: in commit 2 for consistency
⏭️ Diff faithfulness: Cannot verify without upstream patches
⏭️ Upstream status: Cannot verify without lore.kernel.org access
⏭️ qcom-next presence: Cannot verify due to slow repo access

Recommendation: The PR structure appears correct for FROMLIST commits. The only actionable issue is the trailer tag inconsistency in commit 2. If network access were available, full validation would include:

  1. Fetching the v7 patch series from lore.kernel.org
  2. Comparing each commit's diff against the corresponding upstream patch
  3. Checking the mailing list thread for acceptance/rejection signals
  4. Verifying presence in qcom-next branch

Final Summary

  1. Lore link present: Yes — all 5 commits link to https://lore.kernel.org/all/20260702-tcsr_qref_0702-v7-0-776f2811b7af@oss.qualcomm.com/ (commit 2 uses "List:" tag instead of "Link:")
  2. Lore link matches PR commits: Cannot verify — network access restricted, unable to fetch upstream patches for comparison
  3. Upstream patch status: Cannot verify — network access restricted, unable to check mailing list thread for acceptance/rejection/pending status
  4. PR present in qcom-next: Cannot verify — git repository access slow/restricted, search timed out after 25+ seconds

@qlijarvis

Copy link
Copy Markdown

PR #1473 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch CI infrastructure failure - merge failed
dt-binding-check CI infrastructure failure - merge failed
dtb-check CI infrastructure failure - merge failed
sparse-check CI infrastructure failure - merge failed
check-uapi-headers CI infrastructure failure - merge failed
check-patch-compliance CI infrastructure failure - merge failed
tag-check ⏭️ Cannot evaluate - CI did not run checkers

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1473 - FROMLIST: dt-bindings: clock: qcom: Move glymur TCSR to own binding (+ 4 more commits)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/28680919137

Checker Result Summary
checkpatch CI infrastructure failure - merge failed
dt-binding-check CI infrastructure failure - merge failed
dtb-check CI infrastructure failure - merge failed
sparse-check CI infrastructure failure - merge failed
check-uapi-headers CI infrastructure failure - merge failed
check-patch-compliance CI infrastructure failure - merge failed
tag-check ⏭️ Cannot evaluate - CI did not run checkers

❌ CI Infrastructure Failure (All Checkers)

Root cause: The CI workflow failed during the merge setup phase before any checkers could run. All checker jobs encountered fatal: refusing to merge unrelated histories when attempting to merge the PR branch with the integration baseline.

Failure details:

2026-07-03T20:15:24.4525428Z Fetching PR #1473 from https://github.com/qualcomm-linux/kernel-topics.git...
2026-07-03T20:15:25.1062168Z From https://github.com/qualcomm-linux/kernel-topics
2026-07-03T20:15:25.1062750Z  * [new ref]                   refs/pull/1473/head -> pr-1473
2026-07-03T20:15:25.1265720Z Merging pr-1473 (no-commit)...
2026-07-03T20:15:45.4296639Z fatal: refusing to merge unrelated histories
2026-07-03T20:15:45.5454564Z Merge failed or conflicts detected. Aborting merge.
2026-07-03T20:15:45.5473024Z fatal: There is no merge to abort (MERGE_HEAD missing).
2026-07-03T20:15:45.5491534Z ##[error]Process completed with exit code 3.

This error occurred identically across all six checker jobs:

  • checkpatch - exit code 3
  • dt-binding-check - exit code 3
  • dtb-check - exit code 3
  • sparse-check - exit code 3
  • check-uapi-headers - exit code 3
  • check-patch-compliance - exit code 3

Analysis:

The "refusing to merge unrelated histories" error indicates that the PR branch (topic/tech/bsp/clk) and the integration baseline (19b282f417584cfe14ce6a262122c51553d026ec) do not share a common ancestor in their git history. This is a CI configuration or workflow issue, not a problem with the patch content itself.

Possible causes:

  1. Orphan branch: The PR branch may have been created as an orphan branch with no connection to the main repository history
  2. Wrong baseline: The CI may be attempting to merge against an incorrect baseline commit
  3. Repository mismatch: The topic branch and baseline may be from different repository forks with divergent histories
  4. CI workflow bug: The automerge configuration may have incorrect branch references

Fix:

This is a CI infrastructure issue that requires investigation by the repository maintainers. The patches themselves cannot be evaluated until the merge setup is fixed.

Recommended actions:

  1. Verify branch ancestry: Check that topic/tech/bsp/clk is based on a commit that exists in the baseline history:

    git merge-base --is-ancestor <baseline-commit> <pr-head-commit>
  2. Check automerge configuration: Review the .github/workflows/ configuration and the automerge conf file to ensure the baseline and topic branch references are correct.

  3. Rebase if needed: If the PR branch is truly orphaned, it may need to be rebased onto the correct baseline:

    git rebase --onto <correct-baseline> --root topic/tech/bsp/clk
  4. Re-trigger CI: Once the branch ancestry issue is resolved, re-trigger the CI workflow.

Note on patch content:

From the PR patch file, all 5 commits have proper FROMLIST: prefixes and include Link: tags pointing to lore.kernel.org, which suggests the patches themselves follow proper formatting conventions. However, no actual checker validation could be performed due to the merge failure.

The commits in this PR are:

  1. FROMLIST: dt-bindings: clock: qcom: Move glymur TCSR to own binding
  2. FROMLIST: dt-bindings: clock: qcom,glymur-tcsr: Add mahua support
  3. FROMLIST: clk: qcom: Add generic clkref_en support
  4. FROMLIST: clk: qcom: tcsrcc-glymur: Add regulator supplies and migrate to clk_ref helper
  5. FROMLIST: clk: qcom: tcsrcc-glymur: Add Mahua QREF regulator support

Verdict

Cannot merge - CI infrastructure failure prevents validation. The merge setup must be fixed before the patches can be evaluated by the kernel checkers. This is not a patch quality issue; it is a repository/workflow configuration problem that requires maintainer intervention.

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.

2 participants