Add AudioReach topology support for Shikra IQS and CQS EVK boards. The
new board topologies describe the validated playback and capture paths,
using MDSP as the processing domain for Shikra while leaving existing
platforms on their default ADSP domain. IQS exposes playback, DMIC
capture, and headset capture frontends, while CQS exposes the minimal
playback and capture frontends matching its available backend DAIs.
This also adds reusable Audio IF module/subgraph support for
serial-interface backends used by Shikra. The Audio IF helpers allow
board files to describe I2S/TDM style playback and capture endpoints
through board-specific interface parameters, while keeping the common
module graph reusable for other platforms.
Validation was performed for speaker playback, headset playback, DMIC
capture, and headset capture on IQS. Speaker playback and DMIC capture
were validated on CQS.
Add the IQS playback, DMIC capture, and headset capture
paths using Audio IF helpers and the MDSP domain override.
Signed-off-by: Mohit Sharma <mohis@qti.qualcomm.com>
Let stream and device subgraphs use an optional processor
domain override while keeping ADSP as the default.
Signed-off-by: Mohit Sharma <mohis@qti.qualcomm.com>
Add a reusable Audio IF device-subgraph helper and playback
template.
The helper follows the existing backend topology pattern used for
other device endpoints, while carrying the Audio IF-specific
serial-interface configuration needed by the unified Audio IF sink
module.
This keeps board topologies focused on instance data and makes the
playback subgraph reusable across platforms.
Signed-off-by: Mohit Sharma <mohis@qti.qualcomm.com>
Add the Audio IF module definitions used by newer Qualcomm
AudioReach topologies.
Add the Audio IF sink and source module IDs, the related
interface-configuration tokens, and module macros describing the
unified serial-interface endpoint configuration.
The new definitions are generic and can be reused by board
topologies describing TDM, PCM, or I2S style Audio IF backends.
Signed-off-by: Mohit Sharma <mohis@qti.qualcomm.com>
The Asus Zenbook A14 (UX3407NA) is a Qualcomm Glymur-based laptop
featuring:
- 2 speakers
- 2 DMICs
- 3 HDMI/DP ports
- Headphone jack
Add support for speakers and DMICs for now, as work is still pending for
the others.
The Asus Zenbook A14 (UX3407NA) is a Qualcomm Glymur-based laptop
featuring:
- 2 speakers
- 2 DMICs
- 3 HDMI/DP ports
- Headphone jack
Add support for speakers and DMICs for now, as work is still pending for
the others.
Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Add support for eliza-cqs-evk topology with reuse of SM8550.
Added support for eliza-cqs-evk topology by reusing the existing SM8550
configuration. Validated speaker playback and microphone recording
functionality on eliza-cqs-evk hardware using the generated topology
file.
Add an AudioReach topology for the Lenovo IdeaCentre Mini 01Q8X10 (board
91B6). This is a Snapdragon X Elite mini PC, not a laptop:
- no WSA speakers
- no VA / built-in digital mics
- WCD938x headset jack (playback + headset mic)
- three DisplayPort / USB-C DP backends (DISPLAY_PORT_RX_0/1/2)
Frontend layout:
MM1 hw:*,0 WCD RX_CODEC_DMA_RX_0 headphones
MM3 hw:*,2 WCD TX_CODEC_DMA_TX_3 headset mic
MM5 hw:*,4 DISPLAY_PORT_RX_0
MM6 hw:*,5 DISPLAY_PORT_RX_1
MM7 hw:*,6 DISPLAY_PORT_RX_2
Each DP port gets its own multimedia frontend instead of sharing MM1
with the headset. That is deliberate and differs from the T14s laptop
topology.
On a shared frontend, ALSA UCM can only expose the headset and the three
DP ports as ConflictingDevice alternatives of one PCM. PipeWire /
WirePlumber then create a single node for that PCM and switch the UCM
device underneath it. Jack plug events, default-sink selection and
concurrent playback (headset + one or more monitors) all fight that
model. Independent MM5/6/7 streams give each port its own PCM, so the
sound server can treat them as separate sinks gated only by DP0/DP1/DP2
Jack.
This follows the X1E80100-CRD pattern (dedicated MM5/MM6 for DP) and
extends it to the third port. MM2 is unused: there is no WSA playback
path to mix onto a second stream. Device subgraph instance IDs are
assigned so they do not collide with the new stream subgraphs (same
approach as commit ebbbfae, "x1e80100-crd: add dedicated multimedia for
DisplayPort").
Assisted-by: Grok 4.5 (xAI)
- Focused on DisplayPort audio only (no analog codec paths)
- 3x DisplayPort backends (DISPLAY_PORT_RX_0/1/2) for USB-C DP alt-mode
+ miniDP
- 3x playback streams (MultiMedia1/2/3) with volume control
Muxing DISPLAY_PORT_RX_0/1 onto MultiMedia1/2 together with the
headphone and speaker backends forces a single PCM and UCM
ConflictingDevice dance. Dedicated frontends let each DP sink run its
own playback at the same time as WSA/WCD.
Add MultiMedia5 and MultiMedia6 stream subgraphs and route
DISPLAY_PORT_RX_0 to MM5 and DISPLAY_PORT_RX_1 to MM6. Leave
RX_CODEC_DMA_RX_0 and WSA_CODEC_DMA_RX_0 on MultiMedia1/2.
This is the topology half of the X13s DisplayPort UCM work. Sharing
MultiMedia1 with the codec backends was not a good fit; see
alsa-ucm-conf#841 [1].
[1]: https://github.com/alsa-project/alsa-ucm-conf/pull/841
- Focused on DisplayPort audio only (no analog codec paths)
- 3x DisplayPort backends (DISPLAY_PORT_RX_0/1/2) for USB-C DP alt-mode + miniDP
- 3x playback streams (MultiMedia1/2/3) with volume control
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Muxing DISPLAY_PORT_RX_0/1 onto MultiMedia1/2 together with the
headphone and speaker backends forces a single PCM and UCM
ConflictingDevice dance. Dedicated frontends let each DP sink run
its own playback at the same time as WSA/WCD.
Add MultiMedia5 and MultiMedia6 stream subgraphs and route
DISPLAY_PORT_RX_0 to MM5 and DISPLAY_PORT_RX_1 to MM6. Leave
RX_CODEC_DMA_RX_0 and WSA_CODEC_DMA_RX_0 on MultiMedia1/2.
This is the topology half of the X13s DisplayPort UCM work. Sharing
MultiMedia1 with the codec backends was not a good fit; see
alsa-ucm-conf#841 [1].
[1]: https://github.com/alsa-project/alsa-ucm-conf/pull/841
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Add Glymur-based ASUS Zenbook A16 (UX3607OA)
It's a 4 speakers + 2 DMICs setup. The microphones return something
akin to a variably loud square wave at S16_LE, S24 and S32 work fine.
Add support for the Acer Swift 14 AI (SF14-11), Snapdragon X1P-64100
laptop. Its audio hardware is identical to the Lenovo Thinkpad T14s: two
SoundWire WSA speakers, a wcd938x headset codec on both SoundWire buses
and VA DMICs, with identical audio-routing, DAI links and port mapping
in the device tree.
Reuse the T14s topology under the name the machine driver asks for. The
generated binary is byte-identical to X1E80100-Romulus-tplg.bin.