Skip to content

ASoC: Add q6voice ready for FP5 (on v7.2-kernel) - #35

Open
wrenix wants to merge 28 commits into
sc7280-mainline:sc7280-7.2.yfrom
wrenix:sc7280-7.2.y-voice
Open

ASoC: Add q6voice ready for FP5 (on v7.2-kernel)#35
wrenix wants to merge 28 commits into
sc7280-mainline:sc7280-7.2.yfrom
wrenix:sc7280-7.2.y-voice

Conversation

@wrenix

@wrenix wrenix commented Aug 21, 2026

Copy link
Copy Markdown

adapt #27 / #32 for kernel v7.2

WrenIX and others added 28 commits September 3, 2026 22:49
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
(cherry picked from commit a7f55b1)
Link: https://github.com/msm8916-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
v2: strlcpy -> strscpy

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Nikita Travkin <nikita@trvn.ru>
(cherry picked from commit eb82ba2)
Link: https://github.com/msm8916-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
(cherry picked from commit d04fd7b)
Link: https://github.com/msm8916-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
This is just a stub for now. Later this would be used for features
like call recording.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
(cherry picked from commit ba9cd1d)
Link: https://github.com/msm8916-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
q6voice combines the 3 q6voice-related services (q6mvm, q6cvp, q6cvs)
and allows to start/end voice calls at the moment.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
(cherry picked from commit e49b671)
Link: https://github.com/msm8916-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
The Q6 Voice DAI driver exposes the Q6 Voice subsystem to ASoC.
At the moment it provides a single CS-Voice DAI with a hostless FE.
Eventually usage should be simplified using a codec2codec link.

v2: Set AIFs SND_SOC_NOPM
v2.1: Fix __DT_BINDINGS_Q6_VOCIE_H__ typo

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
(cherry picked from commit fe78414)
Link: https://github.com/msm8916-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Add function to get and set RX/TX ports and use those
to un-hardcode the ports set in q6cvp_session_create() call.

Signed-off-by: Vincent Knecht <vincent.knecht@mailoo.org>
[use bool capture instead of enum similar to q6voice_start(),
 add path parameter]
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
(cherry picked from commit 6599fc6)
Link: https://github.com/msm8916-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Add ALSA controls for voice RX and TX ports.

Signed-off-by: Vincent Knecht <vincent.knecht@mailoo.org>
[use mc->shift to mark TX mixers for now to simplify code]
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
(cherry picked from commit 0f30053)
Link: https://github.com/msm8916-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
VoiceMMode1 is used instead of CS-Voice on newer firmwares.

Signed-off-by: Otto Pflüger <otto.pflueger@abscue.de>
(cherry picked from commit a3e2be3)
Link: https://github.com/msm8953-mainline/linux
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
The codec may expect to delay data by 0, 1 or 2 bit clock cycles.
Keeping the TDM ctrl_sync_data_delay value zero-initialized could result
in corruption of data being read at the AFE. Add a configuration value
for the data delay and send it when preparing the TDM port.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
The codec may expect to delay data by 0, 1 or 2 bit clock cycles.
Keeping the TDM data delay zero-initialized by ignoring the device tree
value could result in corruption of data being read at the AFE.
Configure the data delay according to the value already supplied in
device tree.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
To use a topology ID, the DSP must first have the topology registered.
Add support for registering topologies from an
ACDB (Audio Calibration DataBase).

No-submit: topologies are useless upstream, unless support is added to q6afe; missing dt-bindings
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
The CVD 2.3 revision expects a different initialization sequence.
Implement the commands to make this possible.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Some platforms such as SDM670 have CVD version 2.3. This version
requires different commands to run on creation. Add the initialization
sequence for this version, using a device tree property to determine
which sequence to run.

No-submit: detect the params (channels, bit width, sample rate)
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
For some VoLTE calls between new phones, the topology IDs must be set to
a value in the ACDB. Add RX and TX topology ID parameters to the
functions that send the CREATE_FULL_CONTROL_SESSION command, so the
correct topology IDs can be sent.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
The topology ID is now expected by q6cvp. Add the topology ID properties
to the paths with accessors, and pass them to the DSP.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
The topology IDs are different between sound card models (smartphones in
the context of the Pixel 3a), and even codecs. As a result, the topology
IDs are not defined by the device tree, but rather by the ALSA
configuration. Add controls to ALSA for the topology ID so they can be
configured per codec.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
The client callback for q6voice should not modify the response, as noted
for the other clients in commit 86af3c2 ("ASoC: qcom: Constify APR
callback response data") upstream. Mark the response data as const in
q6voice to be compatible with the API change.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
…kcontrol_to_dapm()

The name of the function changed upstream in commit 2532041 ("ASoC:
soc-dapm: rename snd_soc_dapm_kcontrol_dapm() to
snd_soc_dapm_kcontrol_to_dapm()").

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Signed-off-by: Bhushan Shah <bhushan.shah@machinesoul.in>
Signed-off-by: Val Packett <val@packett.cool>
On kodiak + wcd9375, only this topology seems to work so far for the mic.

Signed-off-by: Val Packett <val@packett.cool>
Signed-off-by: Bhushan Shah <bhushan.shah@machinesoul.in>
Signed-off-by: Bhushan Shah <bhushan.shah@machinesoul.in>
This removes the code responsible for keeping the aw88261 audio muted
until power-on, since it appears to be unnecessary and prevents the
bottom speaker from muting during calls on the Fairphone 5.
@wrenix
wrenix force-pushed the sc7280-7.2.y-voice branch from 4ce7263 to fbc318e Compare September 3, 2026 20:49
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.

8 participants