diff options
| author | Mark Brown <broonie@kernel.org> | 2026-06-01 17:19:17 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-06-01 17:19:17 +0100 |
| commit | 3ef902c9609966f66d6e0f42917e6beacda3798e (patch) | |
| tree | d000317b2088913d60330188cb97c4b8c2e0d5ca /include/linux/timerqueue_types.h | |
| parent | 6d2359028c5baf27a96a75f70b46caa5bf82b969 (diff) | |
| parent | 4cfbd3a8d5961c30fefaae543ea67fc7b048480a (diff) | |
ASoC: qcom: qdsp6: add push/pull module support
Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> says:
This patchset adds support for Push/Pull mode modules.
Push-pull mode uses dedicated shared-memory modules that allow the DSP
to access the PCM circular buffer directly. In addition to reducing
fragment queueing and ACK handling in the host driver,
This mode exposes a DSP-maintained position buffer that provides
fine-grained hardware pointer updates. Unlike the Read/Write Shared
Memory endpoitn modules, which are period based, where the reported
pointer advances only at period boundaries, where as push-pull mode
allows .pointer() to reflect sub-period progress, improving pointer
accuracy.
Also the driver now can queue buffers which are less than period size,
which makes tests like alsa_conformance_test happy.
Now the pointer update visibility is around 1ms, compared to min of
10ms with read/write shared memory endpoints.
Along with the circular buffer support, this patchset also adds
watermark event support to provide a period level event from dsp to
notify about period progress.
Tested this on T14s, Arduino VENTUNO-Q platforms.
Tplg related changes are available at:
https://github.com/Srinivas-Kandagatla/audioreach-topology/tree/push/pull
Link: https://patch.msgid.link/20260528185806.6316-1-srinivas.kandagatla@oss.qualcomm.com
Diffstat (limited to 'include/linux/timerqueue_types.h')
0 files changed, 0 insertions, 0 deletions
