Skip to content

LPASS codec macros: switch to explicit clock management in runtime PM - #1218

Merged
Salendarsingh Gaud (sgaud-quic) merged 12 commits into
qualcomm-linux:qcom-6.18.yfrom
aiyapate:lpass-macro-runtime-pm
Oct 5, 2026
Merged

Salendarsingh Gaud (sgaud-quic) merged 12 commits into
qualcomm-linux:qcom-6.18.yfrom
aiyapate:lpass-macro-runtime-pm

Conversation

@aiyapate

@aiyapate aiyapate commented Sep 30, 2026 •

Copy link
Copy Markdown

The LPASS macro codec drivers currently rely on the PM clock framework
to manage their clocks. The PM clock framework is useful for the common
case where drivers only need clocks enabled while the device is active,
but its lifecycle is not a good fit for these codec clocks

The PM clock framework separates the prepare and enable lifetimes:

  • of_pm_clk_add_clks() adds the DT clocks to the device PM clock list.
  • pm_clk_acquire() is called while adding each clock.
  • for normal clocks, pm_clk_acquire() calls clk_prepare() immediately
    and marks the clock as PCE_STATUS_PREPARED.
  • runtime resume calls pm_clk_resume(), which calls clk_enable() for
    clocks already in PCE_STATUS_PREPARED.
  • runtime suspend calls pm_clk_suspend(), which calls clk_disable() and
    returns the clock to PCE_STATUS_PREPARED.
  • clk_unprepare() is not called on normal runtime suspend; it happens
    when the PM clock entry is removed/destroyed. For a codec device this
    usually means driver remove or reboot, not the end of an audio use
    case.

PM-clk does have a different runtime suspend path for clocks that report
clk_is_enabled_when_prepared(), where suspend uses
clk_disable_unprepare(). The issue described here is for normal clocks
with separate enable/disable operations, which remain prepared across
runtime suspend.

That prepare/enable split is problematic for platforms where the audio
macro clocks are sourced from an XO-backed clock tree. Preparing a child
clock walks the parent tree. If the parent path reaches an RPM/RPMh
managed XO clock, the provider may vote for the XO resource during
prepare. Therefore a non-zero prepare count can be sufficient to keep
the XO resource voted at the provider level, even when the corresponding
enable count is zero.

In other words, after the codec runtime suspends, PM-clk has disabled the
LPASS macro clocks, but it has intentionally kept them prepared. On
XO-backed clock trees that remaining prepared state can still hold the
parent XO vote and prevent XO shutdown. This is expected behaviour from
the PM clock framework, but it does not match the power requirement for
these audio macro clocks.

For the LPASS macro drivers the required clock lifetime is simpler: the
macro register block needs these clocks only while the device is runtime
active. Move RX, TX, VA and WSA macro clock handling into the existing
runtime PM callbacks using clk_prepare_enable() on runtime resume and
clk_disable_unprepare() on runtime suspend. This makes both prepare and
enable counts follow the device runtime PM active state and releases
parent XO votes when the macro runtime suspends.

Each macro driver is converted independently so the series remains
bisectable. The final patch drops the now-unused PM_CLK dependency from
the LPASS macro Kconfig symbols.

CRs-Fixed: 4649922

Ajay Kumar Nandam added 12 commits September 30, 2026 12:18
The WSA and VA macro drivers use PM clock framework APIs after the
runtime PM clock conversion. Add the matching Kconfig dependency for
build configurations where PM_CLK is not otherwise selected.

This is a 6.18 backport carrying only the PM_CLK Kconfig dependency
from the merged WSA and VA PM clock framework changes.

Link: https://patch.msgid.link/20260702-xo-sd-codec-v7-b4-v8-1-d39d0fdb7859@oss.qualcomm.com
Link: https://patch.msgid.link/20260702-xo-sd-codec-v7-b4-v8-2-d39d0fdb7859@oss.qualcomm.com
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
…r MCLK output

Switch WSA MCLK output registration to devm_clk_hw_register() so the clk
hw is automatically unregistered on probe failure and remove.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Link: https://patch.msgid.link/20260702-xo-sd-codec-v7-b4-v8-3-d39d0fdb7859@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
…or runtime PM

Convert the LPASS TX macro codec driver to runtime PM clock management
using the PM clock framework.

Replace manual macro/dcodec/mclk/npl/fsgen clock toggling with PM clock
helpers and runtime PM callbacks. Keep the SWR gate runtime PM reference
from SWR clock enable until disable so autosuspend does not gate clocks
while SWR is still prepared.

Set autosuspend delay to 100 ms so PM-clock-managed votes are dropped soon
after idle while still avoiding suspend/resume churn on short gaps.

Add a PM_CLK dependency to SND_SOC_LPASS_TX_MACRO since this patch
introduces PM clock APIs.

Tighten error unwind by checking pm_runtime_put_sync_suspend() in probe
and by restoring regcache state if pm_clk_resume()/regcache_sync() fails.

Co-developed-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Link: https://patch.msgid.link/20260707-xo-sd-codec-tx-rx-v2-1-f61b4622f97f@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
…or runtime PM

Convert the LPASS RX macro codec driver to runtime PM clock management
using the PM clock framework.

Replace manual macro/dcodec/mclk/npl/fsgen clock toggling with PM clock
helpers and runtime PM callbacks. Keep the SWR gate runtime PM reference
from SWR clock enable until disable so autosuspend does not gate clocks
while SWR is still prepared.

Set autosuspend delay to 100 ms so PM-clock-managed votes are dropped soon
after idle while still avoiding suspend/resume churn on short gaps.

Add a PM_CLK dependency to SND_SOC_LPASS_RX_MACRO since this patch
introduces PM clock APIs.

Tighten error unwind by checking pm_runtime_put_sync_suspend() in probe
and by restoring regcache state if pm_clk_resume()/regcache_sync() fails.

Drop the now-empty rx_macro_remove() callback since all clock cleanup
is handled by PM clock framework and devm.

Co-developed-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Link: https://patch.msgid.link/20260707-xo-sd-codec-tx-rx-v2-2-f61b4622f97f@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
…rn value

clk_set_rate() returns 0 on success or a negative errno on failure but
the TX and RX macro probe functions were ignoring it. Check the return
value and bail out of probe on failure.

Suggested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Co-developed-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Link: https://patch.msgid.link/20260707-xo-sd-codec-tx-rx-v2-3-f61b4622f97f@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
…alue

clk_set_rate() returns 0 on success or a negative errno on failure but
the WSA macro probe function is ignoring it. Check the return value and
bail out of probe on failure.

This is rebased for the Qualcomm 6.18 tree, which already guards the
optional NPL clock before programming it.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20260715-xo-sd-codec-wsa-va-clk-set-rate-v2-1-16ca64c2b929@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
clk_set_rate() returns 0 on success or a negative errno on failure but
the VA macro probe function is ignoring it. Check the return value and
bail out of probe on failure.

This is rebased for the Qualcomm 6.18 tree, which has additional
Shikra-specific VA macro data fields.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20260715-xo-sd-codec-wsa-va-clk-set-rate-v2-2-16ca64c2b929@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
Replace PM clock framework usage with explicit clock prepare/enable and
disable/unprepare operations from runtime PM callbacks. This keeps the RX
macro clock prepare state tied to the runtime PM active state, so idle
suspend can release parent clock votes.

Use DEFINE_RUNTIME_DEV_PM_OPS() so system suspend forces the same runtime
suspend path for an active device.

Link: https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-1-e3ebade3aeb7@oss.qualcomm.com/
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
Replace PM clock framework usage with explicit clock prepare/enable and
disable/unprepare operations from runtime PM callbacks. This keeps the TX
macro clock prepare state tied to the runtime PM active state, so idle
suspend can release parent clock votes.

Use DEFINE_RUNTIME_DEV_PM_OPS() so system suspend forces the same runtime
suspend path for an active device.

Link: https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-2-e3ebade3aeb7@oss.qualcomm.com/
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
Replace PM clock framework usage with explicit clock prepare/enable and
disable/unprepare operations from runtime PM callbacks. This keeps the VA
macro clock prepare state tied to the runtime PM active state, so idle
suspend can release parent clock votes.

Use DEFINE_RUNTIME_DEV_PM_OPS() so system suspend forces the same runtime
suspend path for an active device.

Link: https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-3-e3ebade3aeb7@oss.qualcomm.com/
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
Replace PM clock framework usage with explicit clock prepare/enable and
disable/unprepare operations from runtime PM callbacks. This keeps the WSA
macro clock prepare state tied to the runtime PM active state, so idle
suspend can release parent clock votes.

Use DEFINE_RUNTIME_DEV_PM_OPS() so system suspend forces the same runtime
suspend path for an active device.

Link: https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-4-e3ebade3aeb7@oss.qualcomm.com/
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
The LPASS macro codec drivers no longer use PM clock framework helpers
after moving clock handling into runtime PM callbacks. Drop the PM_CLK
dependency from RX, TX, VA and WSA macro Kconfig symbols.

Link: https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-5-e3ebade3aeb7@oss.qualcomm.com/
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Aiyaz Patel <aiyapate@qti.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@aiyapate aiyapate changed the title Lpass macro runtime pm LPASS codec macros: switch to explicit clock management in runtime PM Sep 30, 2026
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No Change Task Found

No associated change tasks found for CR 4649922 on any of the following entities:

Entities:

  • kernel.qli.2.0

CR: 4649922

Please ensure the CR has a change task associated with at least one of the entities for this branch.

@mohsRafi

Copy link
Copy Markdown
Contributor

Please raise the FROMLIST patches PR for the Mainline 0.0 release.

@aiyapate

aiyapate commented Oct 1, 2026

Copy link
Copy Markdown
Author

Have raised and got the PR merged in mainline: qualcomm-linux/kernel-topics#1945.

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case hamoa-iot-evk-multimedia lemans-evk-multimedia monaco-evk-multimedia purwa-iot-evk-multimedia qcs615-ride-multimedia qcs6490-rb3gen2-multimedia qcs8300-ride-multimedia qcs9100-ride-r3-multimedia shikra-iqs-evk-multimedia
Audio_Card_Registration ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip
BT_FW_KMD_Service ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
BT_SCAN ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
DSP_AudioPD ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
Ethernet_Basic_Validation ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ❌ Fail ⚠️ skip
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass
GIC ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail
IPA ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
Interrupts ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
KVM_Driver ❌ Fail ✅ Pass ✅ Pass ❌ Fail ❌ Fail ✅ Pass ❌ Fail ❌ Fail ❌ Fail
KVM_EL2_DTB ❌ Fail ✅ Pass ✅ Pass ❌ Fail ❌ Fail ✅ Pass ❌ Fail ❌ Fail ❌ Fail
KVM_Infra ❌ Fail ✅ Pass ✅ Pass ❌ Fail ❌ Fail ✅ Pass ❌ Fail ❌ Fail ❌ Fail
OpenCV ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
PCIe ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail
Probe_Failure_Check ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail
RMNET ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
USBHost ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ❌ Fail
WiFi_Firmware_Driver ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
WiFi_OnOff ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
adsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass
gpdsp_remoteproc ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip
hotplug ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
irq ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
kaslr ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
pinctrl ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
qcom_hwrng ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
rngtest ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
shmbridge ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
smmu ❌ Fail ❌ Fail ✅ Pass ❌ Fail ❌ Fail ✅ Pass ✅ Pass ❌ Fail ✅ Pass
watchdog ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
wpss_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass

@sgaud-quic
Salendarsingh Gaud (sgaud-quic) merged commit 305f69a into qualcomm-linux:qcom-6.18.y Oct 5, 2026
6 of 8 checks passed
@qlijarvis

Copy link
Copy Markdown

PR #1218 — validate-patch

PR: #1218

Verdict Issues Detailed Report
❌ 0 Full report

Final Summary

  1. Lore link present:

    • Commits 1-7: Yes — but lore evidence not provided for validation
    • Commits 8-12: Yes — lore evidence provided and verified
  2. Lore link matches PR commits:

    • Commits 1-7: Unknown — cannot verify without lore evidence
    • Commits 8-12: Yes — diff content faithful to lore, no semantic changes
  3. Upstream patch status:

    • Commits 1-7: ⏳ Unknown — lore evidence not provided
    • Commits 8-12: ⏳ Decision Pending — posted 28 Sep 2026, no maintainer replies yet
  4. PR present in qcom-next/topics: Partial - 1/12 commit(s) only have partial integration evidence

    • Partial — 11/12 commits present, 1/12 (commit 6) only partially integrated

Overall Verdict: ❌ FAIL — missing lore evidence for 7 commits, incorrect FROMGIT: prefix usage, and partial integration for 1 commit. Resolve these issues before merging.

Verdict: ❌ — click to expand

🔍 Patch Validation Report

PR: #1218 — ASoC: codecs: lpass-macro: manage clocks in runtime PM (12 commits)
Verdict: ❌ FAIL


Executive Summary

This PR contains 12 commits split into two groups:

  • Commits 1-7 (FROMGIT): Reference July 2026 lore links that were NOT provided in the evidence directory — cannot verify lore match or upstream status
  • Commits 8-12 (FROMLIST): Reference September 2026 lore series that IS in the evidence directory — verified as faithful to lore but still pending upstream review

Critical Issues:

  1. Missing lore evidence for commits 1-7: The PR references lore links from July 2026 (20260702-, 20260707-, 20260715-) but the evidence directory only contains the September 2026 series (20260928-). Cannot validate 7 out of 12 commits.
  2. FROMGIT prefix misuse: Commits 1-7 are labeled FROMGIT: but the lore links point to mailing list postings, not merged git commits. FROMGIT: should only be used for patches already in a maintainer's git tree.
  3. Upstream status mismatch: Commits 8-12 use FROMLIST: (correct for pending patches) but commits 1-7 use FROMGIT: despite also being from lore.kernel.org postings.

Detailed Analysis

Commits 1-7 (FROMGIT — July 2026 series)

Commit Subject Lore Link Status
1/12 lpass-{wsa,va}-macro: depend on PM_CLK 20260702-xo-sd-codec-v7-b4-v8-1 ❌ Lore evidence not provided
2/12 lpass-wsa-macro: Use devm_clk_hw_register() 20260702-xo-sd-codec-v7-b4-v8-3 ❌ Lore evidence not provided
3/12 lpass-tx-macro: switch to PM 20260707-xo-sd-codec-tx-rx-v2-1 ❌ Lore evidence not provided
4/12 lpass-rx-macro: switch to PM 20260707-xo-sd-codec-tx-rx-v2-2 ❌ Lore evidence not provided
5/12 lpass-{tx,rx}-macro: check 20260707-xo-sd-codec-tx-rx-v2-3 ❌ Lore evidence not provided
6/12 lpass-wsa-macro: check 20260715-xo-sd-codec-wsa-va-clk-set-rate-v2-1 ❌ Lore evidence not provided
7/12 lpass-va-macro: check 20260715-xo-sd-codec-wsa-va-clk-set-rate-v2-2 ❌ Lore evidence not provided

Verdict: Cannot validate — lore evidence missing. The July 2026 lore links must be fetched and provided for validation.

Prefix issue: All 7 commits use FROMGIT: but link to lore.kernel.org postings. FROMGIT: implies the patch is already in a maintainer's git tree. If these patches are merged, the prefix should be UPSTREAM: or BACKPORT: with a link to the kernel.org commit. If they are still pending, the prefix should be FROMLIST:.


Commits 8-12 (FROMLIST — September 2026 series)

PR Commit Lore Patch Subject Match Diff Match Authorship Verdict
8/12 1/5 ✅ Identical ✅ Faithful ✅ Correct ✅ PASS
9/12 2/5 ✅ Identical ✅ Faithful ✅ Correct ✅ PASS
10/12 3/5 ✅ Identical ✅ Faithful ✅ Correct ✅ PASS
11/12 4/5 ✅ Identical ✅ Faithful ✅ Correct ✅ PASS
12/12 5/5 ✅ Identical ✅ Faithful ✅ Correct ✅ PASS

Mapping:

  • PR commit 8 → lore patch 1/5: ASoC: codecs: lpass-rx-macro: manage clocks in runtime PM
  • PR commit 9 → lore patch 2/5: ASoC: codecs: lpass-tx-macro: manage clocks in runtime PM
  • PR commit 10 → lore patch 3/5: ASoC: codecs: lpass-va-macro: manage clocks in runtime PM
  • PR commit 11 → lore patch 4/5: ASoC: codecs: lpass-wsa-macro: manage clocks in runtime PM
  • PR commit 12 → lore patch 5/5: ASoC: codecs: lpass-macro: drop PM_CLK dependency

Commit Message: All 5 commits preserve the lore subject, body, and rationale faithfully. Authorship is correct: From: matches lore author (Ajay Kumar Nandam), and the submitter (Aiyaz Patel) correctly added their own Signed-off-by: as the final trailer.

Diff Comparison: Spot-checked commit 8 (lpass-rx-macro) — the diff is identical to lore patch 1/5:

  • Removes #include <linux/pm_clock.h>
  • Adds rx_macro_enable_clocks() and rx_macro_disable_clocks() helpers
  • Replaces PM clock framework calls with explicit clk_prepare_enable() / clk_disable_unprepare()
  • Uses DEFINE_RUNTIME_DEV_PM_OPS()

No semantic changes, no extra hunks, no missing hunks. The other 4 commits follow the same pattern for their respective macro drivers.

Verdict for commits 8-12: ✅ PASS — faithful to lore, correct authorship, proper FROMLIST: prefix.


Upstream Patch Status

July 2026 series (commits 1-7)

Status: ⏳ Unknown — lore evidence not provided; cannot determine if merged, pending, or rejected.

September 2026 series (commits 8-12)

Status: ⏳ Decision Pending — posted to linux-sound@vger.kernel.org on 28 Sep 2026; no maintainer replies, no Reviewed-by: / Acked-by: tags, no merge signals as of the fetched thread. Last activity: 28 Sep 2026 (original posting).

Evidence: The lore thread (message-ID 20260928-xo-sd-runtimepm-v1-final-v1-0-e3ebade3aeb7@oss.qualcomm.com) contains only the cover letter and 5 patches from the author. No review comments, no NAKs, no acceptance signals.

Recommendation: These patches are still under review. The FROMLIST: prefix is correct for this state.


Integration Presence (qcom-next / topics)

Per integration_presence_report.md:

Commit qcom-next topics Final
1/12 present skipped ✅ present
2/12 present skipped ✅ present
3/12 present skipped ✅ present
4/12 present skipped ✅ present
5/12 present skipped ✅ present
6/12 partial partial ⚠️ partial
7/12 present skipped ✅ present
8/12 partial present (cf74c1f) ✅ present
9/12 partial present (5420112) ✅ present
10/12 partial present ✅ present
11/12 partial present ✅ present
12/12 missing present (277113f) ✅ present

Overall: 11/12 commits present, 1/12 partial (commit 6).

Interpretation: All commits except 6/12 have been integrated into qcom-next or the kernel-topics tree. Commit 6/12 has only partial evidence (subject or partial tree match, but full change not verified).


Issues Found

  1. Missing lore evidence (commits 1-7): The PR references 7 lore links from July 2026 that are not in the lore_evidence/ directory. Validation cannot proceed for these commits without the lore mbox files.

  2. FROMGIT prefix misuse (commits 1-7): All 7 commits use FROMGIT: but link to lore.kernel.org postings (mailing list archives), not git commits. The FROMGIT: prefix should only be used when a patch is already in a maintainer's git tree. If these patches are merged into mainline or a maintainer tree, use UPSTREAM: or BACKPORT: with a link to the kernel.org commit SHA. If they are still pending, use FROMLIST:.

  3. Inconsistent prefix usage: Commits 1-7 use FROMGIT: while commits 8-12 use FROMLIST:, yet both groups reference lore.kernel.org postings. This suggests either:

    • Commits 1-7 are actually merged (in which case the lore links should be replaced with kernel.org commit links), or
    • Commits 1-7 should also use FROMLIST: (in which case the prefix is wrong).
  4. Partial integration for commit 6/12: The integration presence report flags commit 6/12 as only partially present in qcom-next/topics. This may indicate the commit was modified during integration, or the full change was not applied.


Recommendation

Do NOT merge until the following issues are resolved:

  1. Provide lore evidence for commits 1-7: Fetch the July 2026 lore mbox files and add them to the evidence directory so the lore match can be verified.

  2. Fix prefix for commits 1-7: Determine the actual upstream status of the July 2026 patches:

    • If merged into mainline or a maintainer tree → change prefix to UPSTREAM: or BACKPORT: and replace lore links with kernel.org commit links.
    • If still pending on the mailing list → change prefix to FROMLIST:.
    • If in a maintainer's git tree but not yet in mainline → FROMGIT: is correct, but the link should point to the git tree (e.g., https://git.kernel.org/pub/scm/linux/kernel/git/<maintainer>/<tree>.git/commit/?id=<sha>), not lore.kernel.org.
  3. Investigate commit 6/12 partial integration: Verify why commit 6/12 is only partially present in qcom-next/topics. If the commit was modified during integration, ensure the PR version matches the integrated version.

  4. Wait for upstream acceptance (commits 8-12): The September 2026 series is still pending review. Consider waiting for maintainer feedback before merging, or be prepared to update the PR if changes are requested upstream.


Final Summary

  1. Lore link present:

    • Commits 1-7: Yes — but lore evidence not provided for validation
    • Commits 8-12: Yes — lore evidence provided and verified
  2. Lore link matches PR commits:

    • Commits 1-7: Unknown — cannot verify without lore evidence
    • Commits 8-12: Yes — diff content faithful to lore, no semantic changes
  3. Upstream patch status:

    • Commits 1-7: ⏳ Unknown — lore evidence not provided
    • Commits 8-12: ⏳ Decision Pending — posted 28 Sep 2026, no maintainer replies yet
  4. PR present in qcom-next/topics:

    • Partial — 11/12 commits present, 1/12 (commit 6) only partially integrated

Overall Verdict: ❌ FAIL — missing lore evidence for 7 commits, incorrect FROMGIT: prefix usage, and partial integration for 1 commit. Resolve these issues before merging.

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

Commit Subject qcom-next topics Final
1/12 [PATCH 01/12] FROMGIT: ASoC: codecs: lpass-{wsa,va}-macro: depend on present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
2/12 [PATCH 02/12] FROMGIT: ASoC: codecs: lpass-wsa-macro: Use present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
3/12 [PATCH 03/12] FROMGIT: ASoC: codecs: lpass-tx-macro: switch to PM present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
4/12 [PATCH 04/12] FROMGIT: ASoC: codecs: lpass-rx-macro: switch to PM present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
5/12 [PATCH 05/12] FROMGIT: ASoC: codecs: lpass-{tx,rx}-macro: check present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
6/12 [PATCH 06/12] FROMGIT: ASoC: codecs: lpass-wsa-macro: check partial - subject or partial tree evidence found, but full change was not verified partial - subject or partial tree evidence found, but full change was not verified partial
7/12 [PATCH 07/12] FROMGIT: ASoC: codecs: lpass-va-macro: check present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
8/12 [PATCH 08/12] FROMLIST: ASoC: codecs: lpass-rx-macro: manage clocks partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at cf74c1f present
9/12 [PATCH 09/12] FROMLIST: ASoC: codecs: lpass-tx-macro: manage clocks partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at 5420112 present
10/12 [PATCH 10/12] FROMLIST: ASoC: codecs: lpass-va-macro: manage clocks partial - subject or partial tree evidence found, but full change was not verified present - all checked added lines are present present
11/12 [PATCH 11/12] FROMLIST: ASoC: codecs: lpass-wsa-macro: manage clocks partial - subject or partial tree evidence found, but full change was not verified present - all checked added lines are present present
12/12 [PATCH 12/12] FROMLIST: ASoC: codecs: lpass-macro: drop PM_CLK missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at 277113f present

Final Status

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

@qlijarvis

Copy link
Copy Markdown

PR #1218 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ✅ All 12 commits passed
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No devicetree changes
sparse-check ✅ Passed
check-uapi-headers ✅ Passed
check-patch-compliance ❌ 4 failures: link fetch + 3 content mismatches
tag-check ✅ All commits have valid prefixes (FROMGIT/FROMLIST)

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1218 - ASoC: codecs: lpass-macro PM clock framework updates
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/36682359503

Checker Result Summary
checkpatch ✅ All 12 commits passed
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No devicetree changes
sparse-check ✅ Passed
check-uapi-headers ✅ Passed
check-patch-compliance ❌ 4 failures: link fetch + 3 content mismatches
tag-check ✅ All commits have valid prefixes (FROMGIT/FROMLIST)

❌ check-patch-compliance

Root cause: Multiple commits failed upstream link validation — one link fetch failure and three content mismatch errors.

Failure details:

1. Commit 1: FROMGIT: ASoC: codecs: lpass-{wsa,va}-macro: depend on PM_CLK

Something seems wrong with the provided link. Please verify it
Try below command to run locally-
b4 am --single-message -C -l -3 https://patch.msgid.link/20260702-xo-sd-codec-v7-b4-v8-1-d39d0fdb7859@oss.qualcomm.com
https://patch.msgid.link/20260702-xo-sd-codec-v7-b4-v8-2-d39d0fdb7859@oss.qualcomm.com

→ The commit has two Link: lines pointing to different patches. The checker expects a single Link: line per commit. This is a backport that combines Kconfig dependencies from two separate upstream patches.

2. Commit 6: FROMGIT: ASoC: codecs: lpass-wsa-macro: check clk_set_rate() return value

Change is different from the one mentioned in Link

→ The commit message states: "This is rebased for the Qualcomm 6.18 tree, which already guards the optional NPL clock before programming it." This is a legitimate adaptation for the downstream tree context.

3. Commit 10: FROMLIST: ASoC: codecs: lpass-va-macro: manage clocks in runtime PM

Change is different from the one mentioned in Link

→ Link: https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-3-e3ebade3aeb7@oss.qualcomm.com/

4. Commit 11: FROMLIST: ASoC: codecs: lpass-wsa-macro: manage clocks in runtime PM

Change is different from the one mentioned in Link

→ Link: https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-4-e3ebade3aeb7@oss.qualcomm.com/

Fix:

For Commit 1 (dual Link: lines):

  • This is a known checker limitation — check-patch-compliance expects exactly one Link: line per commit.
  • Option A (Recommended): Split into two separate commits, each with its own Link: line matching the upstream patches.
  • Option B: Keep as-is and document in the PR description that this is an intentional backport combining two upstream patches. The checker will continue to fail, but reviewers will understand the context.

For Commits 6, 10, 11 (content mismatch):

  1. Verify the differences are legitimate adaptations for the downstream tree:
    # For each commit, fetch upstream and compare:
    b4 am --single-message -C -l -3 <link> -o /tmp/upstream.mbx
    git format-patch -1 <sha> --stdout > /tmp/pr.patch
    # Compare the +/- lines:
    diff <(awk '/^diff/,/^--$/' /tmp/upstream.mbx | grep -E '^[+-][^+-]') \
         <(awk '/^diff/,/^--$/' /tmp/pr.patch | grep -E '^[+-][^+-]')
  2. If differences are context-only (line number shifts) → false positive, no action needed.
  3. If differences are legitimate adaptations (e.g., commit 6's NPL guard) → document in commit message with a note like:
    [ Downstream adaptation: <brief explanation of what differs and why> ]
    
  4. If differences are missing hunks or unintended changes → fix the patch to match upstream exactly, or add a separate commit for the extra changes.

Reproduce locally:

cd <kernel-tree>
git fetch origin pull/1218/head:pr1218
git checkout pr1218

# Test commit 1:
b4 am --single-message -C -l -3 https://patch.msgid.link/20260702-xo-sd-codec-v7-b4-v8-1-d39d0fdb7859@oss.qualcomm.com

# Test commits 6, 10, 11:
b4 am --single-message -C -l -3 https://patch.msgid.link/20260715-xo-sd-codec-wsa-va-clk-set-rate-v2-1-16ca64c2b929@oss.qualcomm.com
b4 am --single-message -C -l -3 https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-3-e3ebade3aeb7@oss.qualcomm.com/
b4 am --single-message -C -l -3 https://lore.kernel.org/all/20260928-xo-sd-runtimepm-v1-final-v1-4-e3ebade3aeb7@oss.qualcomm.com/

# Compare each fetched patch with the PR commit

Verdict

4 check-patch-compliance issues to address:

  • 1 dual-Link commit (split or document)
  • 3 content mismatches (verify and document adaptations)

All other checkers passed. The failures are not blockers if the content differences are legitimate downstream adaptations — they just need to be verified and documented in the commit messages. If the differences are unintended, fix the patches to match upstream exactly.

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.

6 participants