This directory contains the Copier component.
The Copier is a versatile component responsible for moving data smoothly between hardware endpoints (DAIs, Host APIs) and internal buffers. It may also apply simple format conversions (e.g., 16-bit to 32-bit).
graph LR
DMA[DMA Engine] <--> Copier[Copier Component]
Copier <--> Buf[Internal Buffer]
- Kconfig: Enables the
COMP_COPIERcomponent (depends on IPC 4). Also definesCOMP_DAI, options to reverse DMA/DAI trigger stop ordering (COMP_DAI_STOP_TRIGGER_ORDER_REVERSE), DAI grouping, and an optional copier gain feature (COPIER_GAIN) for static gain, mute, or transition gain (fade-in/fade-out). - CMakeLists.txt: Includes base copier implementations (HIFI, generic, host, DAI). If
CONFIG_IPC4_GATEWAYis enabled, it addscopier_ipcgtw.c, and ifCONFIG_COPIER_GAINis selected, includescopier_gain.c. - copier.toml: Contains topology configurations, describing UUID, pins, and complex
mod_cfgtuples tailored per platform (CONFIG_METEORLAKE,CONFIG_LUNARLAKE, orCONFIG_SOC_ACE30/40). - Topology (.conf):
tools/topology/topology2/include/components/dai-copier.conf(among others likehost-copier,module-copier) define copier widget objects. They configure connection-specific attributes likecopier_type(e.g.,HDA,SSP,DMIC,SAI),direction(playbackorcapture),node_type, andcpc.dai-copierdefaults to UUID83:0c:a0:9b:12:CA:83:4a:94:3c:1f:a2:e8:2f:9d:da.
