Skip to content

PENDING: arm64: dts: qcom: glymur: Add WCD9378 headphone support - #1878

Merged
Sibi Sankar (QuinAsura) merged 1 commit into
qualcomm-linux:tech/all/dt/glymurfrom
mohsRafi:glymur_headphone_dts_support
Sep 28, 2026
Merged

Sibi Sankar (QuinAsura) merged 1 commit into
qualcomm-linux:tech/all/dt/glymurfrom
mohsRafi:glymur_headphone_dts_support

Conversation

@mohsRafi

@mohsRafi mohsRafi commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Add the LPASS glue and SoundWire topology needed to bring up the WCD9378 (Tambora) headphone codec on Glymur.

SoC dtsi:

  • lpass_rxmacro (0x06a70000) and lpass_txmacro (0x06a90000) codec nodes with their LPASS clock inputs: mclk, macro/dcodec votes, npl and the VA macro fsgen.
  • lpass_audiocc (0x06a94000) and lpasscc (0x07680000) clock controllers, which drive the SoundWire RX/TX CGCR resets.
  • swr1 (RX @ 0x06a80000) and swr2 (TX @ 0x07630000) SoundWire controllers, disabled by default so that boards pick the topology. Mobile-mode boards use swr1/swr2 as independent buses; compute-mode boards use swr2 as the bus master with swr1 as its data-only lane provider.

Board (CRD) dtsi:

  • Enable the compute-mode topology: swr1 becomes a data-only lane provider via #qcom,swrm-lane-cells, contributing DATA lanes 2 and 3 to swr2 through qcom,secondary-lanes. swr2 owns SWR_CLK, the control lane and DATA lanes 0/1, and hosts wcd9378c as its sole SDCA slave. The unified-bus per-port arrays on swr2 describe DP2 (capture) and DP6/DP7/DP8 (playback), with qcom,ports-lane-control routing each port to the owning IP.
  • WCD Playback and WCD Capture DAI links on RX_CODEC_DMA_RX_0 and TX_CODEC_DMA_TX_3, plus DAPM routes for HPH playback (IT 41 <- HPHL/HPHR_OUT) and the TX macro <- WCD OT 36 capture bridge.
  • wcd_default reset pin state on gpio191.

CRs-Fixed: 4685816
Jira ticket: https://jira-dc.qualcomm.com/jira/browse/QLIJIRA-208

@qcomlnxci
qcomlnxci requested review from a team, jingyiwang42, Rajendra (rrnayak) and Shiraz Hashim (shashim-quic) and removed request for a team September 22, 2026 17:11
@mohsRafi
mohsRafi force-pushed the glymur_headphone_dts_support branch from 4d17452 to 2002aea Compare September 24, 2026 09:36
@qcomlnxci
qcomlnxci requested a review from a team September 24, 2026 09:38
@mohsRafi
mohsRafi force-pushed the glymur_headphone_dts_support branch from 2002aea to 5618f9f Compare September 24, 2026 09:44
@qswat-orbit-external

Copy link
Copy Markdown

Dev Completion validation failed

CR: 4685816
Change Task: kernel.qli.0.0
Error: GenAI Assisted field must be set before moving change tasks to Development Complete. Please provide GenAI information.

The change task for this CR could not be moved to Dev Complete because of the error above. Please resolve the issue in Orbit and re-run the failed Orbit check.

Add the LPASS glue and SoundWire topology needed to bring up the
WCD9378 (Tambora) headphone codec on Glymur.

SoC dtsi:
  - lpass_rxmacro (0x06a70000) and lpass_txmacro (0x06a90000) codec
    nodes with their LPASS clock inputs: mclk, macro/dcodec votes, npl
    and the VA macro fsgen.
  - lpass_audiocc (0x06a94000) and lpasscc (0x07680000) clock
    controllers, which drive the SoundWire RX/TX CGCR resets.
  - swr1 (RX @ 0x06a80000) and swr2 (TX @ 0x07630000) SoundWire
    controllers, disabled by default so that boards pick the topology.
    Mobile-mode boards use swr1/swr2 as independent buses; compute-mode
    boards use swr2 as the bus master with swr1 as its data-only lane
    provider.

Board (CRD) dtsi:
  - Enable the compute-mode topology: swr1 becomes a data-only lane
    provider via #qcom,swrm-lane-cells, contributing DATA lanes 2 and 3
    to swr2 through qcom,secondary-lanes.  swr2 owns SWR_CLK, the
    control lane and DATA lanes 0/1, and hosts wcd9378c as its sole
    SDCA slave.  The unified-bus per-port arrays on swr2 describe DP2
    (capture) and DP6/DP7/DP8 (playback), with qcom,ports-lane-control
    routing each port to the owning IP.
  - WCD Playback and WCD Capture DAI links on RX_CODEC_DMA_RX_0 and
    TX_CODEC_DMA_TX_3, plus DAPM routes for HPH playback (IT 41 <-
    HPHL/HPHR_OUT) and the TX macro <- WCD OT 36 capture bridge.
  - wcd_default reset pin state on gpio191.

Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
@mohsRafi
mohsRafi force-pushed the glymur_headphone_dts_support branch from 5618f9f to bff2cf3 Compare September 24, 2026 15:01
@qswat-orbit-external

Copy link
Copy Markdown

Dev Completion validation failed

CR: 4685816
Change Task: kernel.qli.0.0
Error: GenAI Assisted field must be set before moving change tasks to Development Complete. Please provide GenAI information.

The change task for this CR could not be moved to Dev Complete because of the error above. Please resolve the issue in Orbit and re-run the failed Orbit check.

@QuinAsura
Sibi Sankar (QuinAsura) merged commit a619ea6 into qualcomm-linux:tech/all/dt/glymur Sep 28, 2026
4 of 7 checks passed
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1878

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

# Error File:Line PR-introduced? Root Cause
1 fatal error: dt-bindings/clock/qcom,glymur-lpasscc.h: No such file or directory glymur.dtsi:11 Partially Pre-existing missing header at line 11, but PR adds lpass_audiocc and lpasscc nodes that require this header for clock/reset index definitions

Verdict

The build failure is caused by a pre-existing missing header file (dt-bindings/clock/qcom,glymur-lpasscc.h) at line 11 of glymur.dtsi. However, this PR exacerbates the issue by adding two new clock controller nodes (lpass_audiocc and lpasscc) and references to them without providing the required dt-bindings header file that should define the clock and reset cell indices.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1878

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

# Error File:Line PR-introduced? Root Cause
1 Missing dt-bindings header arch/arm64/boot/dts/qcom/glymur.dtsi:11 Yes PR adds lpass_audiocc and lpasscc clock controller nodes and references them in reset properties, but the required dt-bindings header dt-bindings/clock/qcom,glymur-lpasscc.h is missing from the tree. The include statement at line 11 is pre-existing, but the build now fails because the PR actually uses these clock controllers.

Verdict

1 build error is introduced by this PR due to missing dt-bindings header dependency.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1878 — validate-patch

PR: #1878

Verdict Issues Detailed Report
✅ 0 Full report

Final Summary

  1. Lore link present: No — PENDING: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only change, not posted upstream
  4. PR present in qcom-next/topics: Yes - all 1 commit(s) are present in qcom-next or topics
Verdict: ✅ — click to expand

🔍 Patch Validation

PR: #1878 - PENDING: arm64: dts: qcom: glymur: Add WCD9378 headphone support
Upstream commit: N/A
Verdict: ✅ PASS

Commit Message

Check Status Note
Subject matches upstream N/A PENDING: prefix; no upstream source to compare
Body preserves rationale ✅ Comprehensive description of SoC and board changes
Fixes tag present/correct N/A Not a fix; new feature addition
Authorship preserved ✅ Author and Signed-off-by match
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
arch/arm64/boot/dts/qcom/glymur-crd.dtsi ✅ WCD9378 compute-mode topology, DAI links, DAPM routes, pinctrl
arch/arm64/boot/dts/qcom/glymur.dtsi ✅ LPASS macros, SoundWire controllers, clock controllers

Verdict

Merge as-is. This is a vendor-only PENDING commit with comprehensive device tree additions for WCD9378 headphone codec support. The commit message clearly documents the SoC and board-level changes, and the diff is internally consistent.

Final Summary

  1. Lore link present: No — PENDING: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only change, not posted upstream
  4. PR present in qcom-next/topics: Yes — present in topics at a619ea6bd88bc2938ad9eadd3bff6df886f456c3

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: e428097a36d210c50991063f17ee0848e9eb68a8
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/1 [PATCH] PENDING: arm64: dts: qcom: glymur: Add WCD9378 headphone partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at a619ea6 present

Final Status

overall_status: PASS
present_commits: 1/1
partial_commits: 0/1
missing_commits: 0/1
topics_checked_for_commits: 1/1
final_summary: PR present in qcom-next/topics: Yes - all 1 commit(s) are present in qcom-next or topics

@qlijarvis

Copy link
Copy Markdown

PR #1878 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ❌ 37 warnings: long lines, undocumented DT strings, signature format
dt-binding-check ⏭️ Skipped - no binding changes
dtb-check ✅ Passed
sparse-check ⏭️ Skipped - no C/H changes
check-uapi-headers ⏭️ Skipped - no UAPI changes
check-patch-compliance ❌ Missing required prefix (PENDING: not accepted)
tag-check N/A Target branch is topic branch - prefix check not mandatory

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1878 - PENDING: arm64: dts: qcom: glymur: Add WCD9378 headphone support
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/35759040122

Checker Result Summary
checkpatch ❌ 37 warnings: long lines, undocumented DT strings, signature format
dt-binding-check ⏭️ Skipped - no binding changes
dtb-check ✅ Passed
sparse-check ⏭️ Skipped - no C/H changes
check-uapi-headers ⏭️ Skipped - no UAPI changes
check-patch-compliance ❌ Missing required prefix (PENDING: not accepted)
tag-check N/A Target branch is topic branch - prefix check not mandatory

❌ checkpatch

Root cause: The commit has 37 style warnings including long lines in DTS port configuration arrays, undocumented DT compatible strings, and non-standard signature format.

Failure details:

WARNING: Non-standard signature: Co-Authored-By:
WARNING: 'Co-authored-by:' is the preferred signature form

WARNING: DT compatible string "qcom,wcd9378c" appears un-documented
WARNING: DT compatible string "sdw20217011000" appears un-documented
WARNING: DT compatible string "qcom,glymur-lpassaudiocc" appears un-documented
WARNING: DT compatible string "qcom,glymur-lpasscc" appears un-documented

WARNING: line length of 137 exceeds 100 columns (×20 occurrences)
  - SoundWire port configuration arrays (qcom,ports-*)
  - LPASS clock references

4d174525d23b3cc4729ac1918d09ffb8c33d378c total: 0 errors, 37 warnings, 0 checks, 303 lines checked

Fix:

  1. Signature format — Change Co-Authored-By: to Co-authored-by: (lowercase 'a')

  2. Undocumented DT strings — Add vendor prefixes and bindings:

    • qcom,wcd9378c → Add to Documentation/devicetree/bindings/sound/qcom,wcd9378.yaml (or create if missing)
    • sdw20217011000 → Add vendor sdw to vendor-prefixes.yaml if not present
    • qcom,glymur-lpassaudiocc → Add to Documentation/devicetree/bindings/clock/qcom,glymur-lpassaudiocc.yaml
    • qcom,glymur-lpasscc → Add to Documentation/devicetree/bindings/clock/qcom,glymur-lpasscc.yaml
  3. Long lines — The 137-character lines are SoundWire port configuration arrays with /bits/ 8 notation. These are difficult to wrap without breaking DTS syntax. Options:

    • Accept the warnings (common for port arrays)
    • Split arrays across multiple lines if the DTS compiler allows
    • Use multi-line formatting with proper indentation

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git 56321f1b03c171fa3665a6f16a89f47a71a56dad..4d174525d23b3cc4729ac1918d09ffb8c33d378c

❌ check-patch-compliance

Root cause: The commit subject starts with PENDING: which is not in the allowed prefix list for this checker.

Failure details:

Checking commit: PENDING: arm64: dts: qcom: glymur: Add WCD9378 headphone support
Commit summary does not start with a required prefix

Fix:

The check-patch-compliance checker only accepts these prefixes:

  • FROMLIST: — Posted to mailing list
  • FROMGIT: — From maintainer tree
  • UPSTREAM: — Merged into mainline
  • BACKPORT: — Backported with modifications

PENDING: is a vendor-internal prefix used for work-in-progress commits that have not been posted upstream. This is a known limitation of the checker — it will always fail for PENDING: commits.

Options:

  1. If this work has been posted to a mailing list → change prefix to FROMLIST: and add Link: <lore-url> to commit body
  2. If this is vendor-only work → accept the checker failure (this is expected for PENDING: commits)
  3. If targeting a topic branch → the failure may be acceptable depending on branch policy

Note: Since this PR targets a topic branch (topic/tech/all/dt/glymur), the PENDING: prefix may be acceptable for the integration workflow. The checker enforces upstream-linkable prefixes but topic branches often contain work-in-progress commits.

Reproduce locally:

# The checker will always fail for PENDING: prefix
# To verify the commit otherwise:
git log --format="%s" 56321f1b03c171fa3665a6f16a89f47a71a56dad..4d174525d23b3cc4729ac1918d09ffb8c33d378c

Verdict

2 blockers to address before merge to mainline branches:

  1. checkpatch warnings — Fix signature format (Co-authored-by:), add DT bindings for undocumented compatible strings. Long lines in port arrays may be acceptable.

  2. check-patch-compliance — PENDING: prefix is not accepted by this checker. If merging to a mainline branch (qcom-next, qcom-next-staging, or upstream), change to FROMLIST: with a lore link, or QCLINUX: if vendor-only.

For topic branch integration: The PENDING: prefix may be acceptable depending on the branch's integration policy. Topic branches often contain work-in-progress commits that will be cleaned up before mainline submission.

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.

3 participants