commit | f8263902e9b5daf9d8b0eb38697722692c3be145 | [log] [tgz] |
---|---|---|
author | Pin-chih Lin <johnylin@google.com> | Wed Jan 26 05:46:51 2022 +0800 |
committer | Pin-chih Lin <johnylin@google.com> | Wed Jan 26 06:30:40 2022 +0800 |
tree | 8d3549387d9dda879c06d404801e8d92b785f289 | |
parent | 6c8a7c4a9bdeff60cde84ce8236a1fca9e72824f [diff] |
topology: sof-adl-max98357a-rt5682-waves-2way: add new topology Add support for four max98357a speaker amplifiers running in TDM mode which format is 8 slots with 32 bit slot/sample width on ADL boards. To implement the 2-way woofer/tweeter speaker function in SOF, there is a demux to create 2 streams for the branched pipelines. A Waves-codec widget is applied before the demux for audio quality enhancement, and the other Waves-codec widgets are located one per branch for EQ/DRC including band-split filters of Woofer and Tweeter. There is a mux before DAI to merge the branched Woofer and Tweeter streams into one 4-channel stream which is fed into DAI then. The formation of this split-and-merge pipeline is a bit tricky. The topology graph is as following: host PCM0 -> WAVES -> DEMUX -> WAVES ---+ <PIPE#9> | | +--> WAVES -> MUX -> DAI (Speaker SSP) <PIPE#1> There are two pipelines with ID #1 and #9, where PIPE#9 is set DAI#1 as the scheduled component to make them being scheduled together. They are connected via DEMUX#9 and MUX#1. The priority of PIPE#9 should be higher than PIPE#1 to assure PIPE#9 is scheduled first (PCM should be the first component for the copy process). Moreover, the commit of mux_params() modification is required to support the split-and-merge pipeline design. Signed-off-by: Pin-chih Lin <johnylin@google.com>
See docs
See unit testing documentation
TODO: Add additional notes about how to deploy this on a live system
See Contributing to the Project
This project is licensed under the BSD Clause 3 - see the LICENCE file for details