From: Mark Brown Date: Mon, 1 Jun 2026 16:19:17 +0000 (+0100) Subject: ASoC: qcom: qdsp6: add push/pull module support X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3ef902c9609966f66d6e0f42917e6beacda3798e;p=thirdparty%2Flinux.git ASoC: qcom: qdsp6: add push/pull module support Srinivas Kandagatla 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 --- 3ef902c9609966f66d6e0f42917e6beacda3798e