diff options
author | Richard Fitzgerald <rf@opensource.cirrus.com> | 2024-12-03 18:45:34 +0800 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2024-12-03 12:36:28 +0000 |
commit | 484c997e03cec04da6f69c2c17e854b22aa0f98f (patch) | |
tree | 0c45f83698b906ddfab5efe8ae6fc0b547ebbf0d /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 5547e7ca122081d0603d2d7e0fe81a7c551f1e11 (diff) |
ASoC: sdw_utils: cs_amp: Assign non-overlapping TDM masks for each codec on a bus
Use snd_soc_dai_set_tdm_slot() on capture DAIs to prevent multiple
aggregated amps from trying to send data at the same time.
When the capture DAIs of multiple amps on a bus are aggregated they will
all be sharing the same bit slots for transmitted audio. This would lead
to bus errors if all channels on all amps were enabled, because multiple
amps would be trying to send data at the same time.
To prevent this, the available channels are divided between the amps on a
bus so that only one amp will be sending data for each channel position.
A CS35L56 has 4 TX channels, which must be split between all the amps on a
bus so that no two amps are using the same channel. This is done simply by
dividing by the number of amps on the bus, so that 1 amp can use all
4 channels, 2 amps can use 2 channels each, and 3 or 4 amps can only use
1 channel each.
The amps are usually aggregated across multiple SoundWire buses. In this
case there will be multiple cpu DAIs in the dailink. The channel mapping
is used to determine which amps are on each bus. The allocation of the
4 channels is done separately for each bus (only amps on the same bus can
interfere with each other).
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20241203104534.56719-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions