mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/6] ASoC: qcom: qdsp6: add push/pull module support
@ 2026-05-19 13:15 Srinivas Kandagatla
  2026-05-19 13:15 ` [PATCH 1/6] ASoC: qcom: audioreach: use cached shared memory module IID Srinivas Kandagatla
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Srinivas Kandagatla @ 2026-05-19 13:15 UTC (permalink / raw)
  To: broonie
  Cc: srini, lgirdwood, perex, tiwai, krzysztof.kozlowski,
	mohammad.rafi.shaik, alexey.klimov, ravi.hothi, mathieu.poirier,
	verhaegen, andersson, linux-sound, linux-arm-msm, linux-kernel,
	Srinivas Kandagatla

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

thanks,
Srini

Srinivas Kandagatla (6):
  ASoC: qcom: audioreach: use cached shared memory module IID
  ASoC: qcom: q6apm: return error code to consumers on failures
  ASoC: qcom: q6apm: remove shared memory IID helpers
  ASoC: qcom: audioreach: Add support for shared memory push/pull
    modules
  ASoC: qcom: q6apm: add watermark event support
  ASoC: qcom: q6apm-dai: add push-pull and watermark event support

 sound/soc/qcom/qdsp6/audioreach.c |  79 ++++++++++-
 sound/soc/qcom/qdsp6/audioreach.h |  98 +++++++++++++
 sound/soc/qcom/qdsp6/q6apm-dai.c  | 144 +++++++++++++++----
 sound/soc/qcom/qdsp6/q6apm.c      | 222 ++++++++++++++++++++++--------
 sound/soc/qcom/qdsp6/q6apm.h      |  13 +-
 5 files changed, 467 insertions(+), 89 deletions(-)

-- 
2.47.3


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-05-27 12:19 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-19 13:15 [PATCH 0/6] ASoC: qcom: qdsp6: add push/pull module support Srinivas Kandagatla
2026-05-19 13:15 ` [PATCH 1/6] ASoC: qcom: audioreach: use cached shared memory module IID Srinivas Kandagatla
2026-05-19 13:15 ` [PATCH 2/6] ASoC: qcom: q6apm: return error code to consumers on failures Srinivas Kandagatla
2026-05-19 13:15 ` [PATCH 3/6] ASoC: qcom: q6apm: remove shared memory IID helpers Srinivas Kandagatla
2026-05-19 13:15 ` [PATCH 4/6] ASoC: qcom: audioreach: Add support for shared memory push/pull modules Srinivas Kandagatla
2026-05-27  9:36   ` Mark Brown
2026-05-19 13:15 ` [PATCH 5/6] ASoC: qcom: q6apm: add watermark event support Srinivas Kandagatla
2026-05-20 22:11   ` Alexey Klimov
2026-05-21  7:52     ` Srinivas Kandagatla
2026-05-19 13:15 ` [PATCH 6/6] ASoC: qcom: q6apm-dai: add push-pull and " Srinivas Kandagatla
2026-05-26 23:00 ` [PATCH 0/6] ASoC: qcom: qdsp6: add push/pull module support Mark Brown
2026-05-27 12:19   ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®