ASoC: qcom: Add Shikra machine driver#725
Conversation
PR #725 — validate-patchPR: #725
Final Summary
Required Actions:
|
PR #725 — checker-log-analyzerPR: #725
Detailed report: Full report
|
2398140 to
079a838
Compare
PR #725 — validate-patchPR: #725
Final Summary
|
PR #725 — checker-log-analyzerPR: #725
Detailed report: Full report
|
079a838 to
da63156
Compare
PR #725 — validate-patchPR: #725
Final Summary
|
PR #725 — checker-log-analyzerPR: #725
Detailed report: Full report
|
da63156 to
5cfe731
Compare
PR #725 — validate-patchPR: #725
Final Summary
Note: The lore.kernel.org URLs in the Link: tags are dated June 2026 (future dates) and return no content. This suggests either:
The FROMLIST prefix is correct for patches intended for upstream but not yet posted.
|
PR #725 — checker-log-analyzerPR: #725
Detailed report: Full report
|
|
Upstream changes have been applied based on 7.1, and QLI 2.0 is running on 6.18. while porting from upstream to QLI 2.0 faced merge conflicts. Fixed merged conflicts because of this facing issue with check-patch-compliance. |
|
This would need to be rebased once #723 is merged |
Extend the qcom,q6apm-lpass-dais device tree binding to explicitly describe Digital Audio Interface (DAI) child nodes. Add #address-cells and #size-cells to allow representation of multiple DAI instances as child nodes, and define a dai@<id> pattern to document per-DAI properties such as the interface ID and associated clocks. On platforms such as Monaco and Lemans, third-party codecs are hardware wired to the SoC and do not always have an in-tree codec driver to manage their clocks. For these designs, clock line enablement must be driven from the platform side, and this series provides the necessary support for that. On QAIF-based platforms such as Shikra and Hawi, responsibility for voting I2S MCLK and BCLK has moved from the DSP to the kernel. This series introduces the required device tree binding support to represent and vote for these clocks from the kernel. Link: https://lore.kernel.org/all/20260608023011.942228-2-mohammad.rafi.shaik@oss.qualcomm.com/ Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add support for MI2S clock control within q6apm-lpass DAIs, including handling of MCLK, BCLK, and ECLK via the DAI .set_sysclk callback. Each MI2S port now retrieves its clock handles from the device tree, allowing per-port clock configuration and proper enable/disable during startup and shutdown. Link: https://lore.kernel.org/all/20260608023011.942228-3-mohammad.rafi.shaik@oss.qualcomm.com/ Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
… driver for board-specific config The sc8280xp machine driver is currently written with a largely SoC-centric view and assumes a uniform audio topology across all boards. In practice, multiple products based on the same SoC use different board designs and external audio components, which require board-specific configuration to function correctly. Several Qualcomm platforms like talos integrate third-party audio codecs or use different external audio paths. These designs often require additional configuration such as explicit MI2S MCLK settings for audio to work. This change enhances the sc8280xp machine driver to support board-specific configuration such as allowing each board variant to provide its own DAPM widgets and routes, reflecting the actual audio components and connectors present and enabling MI2S MCLK programming for boards that use external codecs requiring a stable master clock. Link: https://lore.kernel.org/all/20260608023011.942228-4-mohammad.rafi.shaik@oss.qualcomm.com/ Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add topology parsing and media-format programming for Audio IF source and sink modules. Add the Audio IF module IDs, the required topology tokens, and a dedicated topology loader that stores the parsed interface configuration in the AudioReach module state. Also add the Audio IF media-format path that sends the interface configuration, hardware endpoint media format, and frame-duration parameters for Audio IF modules. This keeps the serial-interface configuration topology-driven while still allowing the machine driver to provide runtime slot and media format settings. The same Audio IF path can then be reused for TDM, PCM, and I2S style backends. The new UAPI tokens (AR_TKN_U32_MODULE_SYNC_SRC=262 through AR_TKN_U32_MODULE_INV_EXT_BIT_CLK=276) are added. MODULE_ID_AUDIO_IF_SINK (0x0700117C) and MODULE_ID_AUDIO_IF_SOURCE (0x0700117D) are introduced in this patch. Link: https://lore.kernel.org/all/20260610154517.134570-2-prasad.kumpatla@oss.qualcomm.com/ Signed-off-by: Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com>
Add TDM DAI operations to q6apm-lpass-dais so AudioReach TDM backends can be configured through the normal ASoC hw_params and DAI setup flow. The TDM set_tdm_slot() callback validates the supported slot width and slot count, stores the active slot mask in the AudioReach module configuration, and leaves existing DMA, I2S and HDMI paths unchanged. Reuse the existing LPASS child-clock handling for TDM nodes as well as MI2S nodes, since TDM backends also request optional backend clocks through the machine driver set_sysclk() path. Link: https://lore.kernel.org/all/20260610154517.134570-3-prasad.kumpatla@oss.qualcomm.com/ Signed-off-by: Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com>
…ocks Add the LPASS Audio IF clock IDs used by newer backend interfaces. Platforms using Audio IF module backends request the interface bit clocks through q6prm. Add the Audio IF IBIT and EBIT IDs to the binding header so these clocks can be referenced from device trees. Link: https://lore.kernel.org/all/20260610154517.134570-4-prasad.kumpatla@oss.qualcomm.com/ Signed-off-by: Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com>
Add the q6prm clock table entries and internal DSP clock IDs for LPASS Audio IF backend clocks. The public binding IDs map to q6prm DSP clock IDs starting at 0x500 for Audio IF0 IBIT/EBIT. Add the internal definitions and register all Audio IF IBIT and EBIT clocks so machine drivers can request them through the APM clock controller. Link: https://lore.kernel.org/all/20260610154517.134570-5-prasad.kumpatla@oss.qualcomm.com/ Signed-off-by: Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com>
Add common helpers to parse standard dai-tdm-slot-* properties from the CPU and codec child nodes of a backend DAI link and apply the result to the active DAIs. QCOM machine drivers already use qcom_snd_parse_of() to build links from DT, but they lacked a shared helper to translate endpoint TDM properties into snd_soc_dai_set_tdm_slot() calls. Boards therefore had to carry ad hoc parsing or rely on non-standard DT properties. The helpers parse endpoint masks, validate the shared slot count and slot width, and program CPU and codec DAIs with the resulting slot configuration. A cfg-based apply helper is provided for callers that already parsed the DT data and want to avoid a second DT traversal. Link: https://lore.kernel.org/all/20260610154517.134570-6-prasad.kumpatla@oss.qualcomm.com/ Signed-off-by: Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com>
Add TDM backend handling to the sc8280xp machine driver. Use the common QCOM DAI-node TDM helper to parse the standard DAI TDM slot properties from backend CPU and codec endpoints. Reuse the parsed configuration when programming DAIs so hw_params does not need a second DT traversal. Derive the LPASS backend bit clock from the runtime TDM parameters and request it through the backend child-clock path using LPAIF_MI2S_BCLK. Program codec sysclk in hw_params so codec PLL setup happens before the stream is triggered. Link: https://lore.kernel.org/all/20260610154517.134570-7-prasad.kumpatla@oss.qualcomm.com/ Signed-off-by: Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com>
…tibles Add Shikra sound-card compatible strings to the Qualcomm sound card binding so DT can describe board-specific audio topologies: - qcom,shikra-cqm-sndcard - qcom,shikra-cqs-sndcard - qcom,shikra-iqs-sndcard Shikra EVK variants use different codec/interface combinations and DSP processing paths. Describing these variants explicitly in DT allows the machine driver to select the correct DAPM routes, controls, and clocking behavior for each board. Link: https://lore.kernel.org/all/20260611112946.954172-2-ajay.nandam@oss.qualcomm.com/ Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add machine-driver support for Qualcomm Shikra EVK variants by matching dedicated compatible strings and applying board-specific audio behavior. Shikra platforms are available as CQM, CQS, and IQS variants with different audio components and processing architectures: - CQM/CQS use an I2S-based path with WSA885x amplifiers and PM4125 + Rouleur codec components. - CQM runs in DSP-bypass mode, where the complete audio pipeline runs on CPU only and no DSP is involved. - CQS uses modem-DSP based audio processing. - IQS uses a third-party MAX98091 codec with modem-DSP support. Introduce variant-specific handling so codec controls, DAPM widgets, and clock programming match the board design and avoid invalid clock setup on variants where it is not applicable. Link: https://lore.kernel.org/all/20260611112946.954172-3-ajay.nandam@oss.qualcomm.com/ Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
5cfe731 to
405a714
Compare
Test Matrix
|
Add Qualcomm Shikra sound-card variant support in DT
bindings and in the sc8280xp machine driver.
Shikra EVK variants use different audio components and processing
architectures:
PM4125 + Rouleur codec components.
The DT binding patch adds explicit Shikra compatibles, and the machine
patch wires variant-specific DAPM/controls and clock behavior so each
board is configured correctly.
Add AudioReach support for LPASS Audio IF based TDM backends and wire it
up for the sc8280xp machine driver.
CRs-Fixed: 4573482
qli-2.0 GA Critical Fix