ASoC: Add q6voice ready for FP5 (on v7.2-kernel) - #35
Open
wrenix wants to merge 28 commits into
Open
Conversation
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
force-pushed
the
sc7280-7.2.y-voice
branch
from
September 3, 2026 20:49
4ce7263 to
fbc318e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
adapt #27 / #32 for kernel v7.2