]> www.infradead.org Git - users/dwmw2/linux.git/commit
Add support for non-interleaved mode in qmc_audio
authorMark Brown <broonie@kernel.org>
Thu, 4 Jul 2024 17:41:11 +0000 (18:41 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 4 Jul 2024 17:41:11 +0000 (18:41 +0100)
commitfc800b84b41627f7c045b8efbb88931503828fa6
tree5f97363078e85d367f1b28b1d6bc3c6a636434b6
parentecaec47b88d63d9f83947038334a1c8096f378d5
parent188d9cae54388171d28bd632a2561863db4b9f8b
Add support for non-interleaved mode in qmc_audio

Merge series from Herve Codina <herve.codina@bootlin.com>:

The qmc_audio driver supports only audio in interleaved mode.
Non-interleaved mode can be easily supported using several QMC channel
per DAI. In that case, data related to ch0 are sent to (received from)
the first QMC channel, data related to ch1 use the next QMC channel and
so on up to the last channel.

In terms of constraints and settings, the interleaved and
non-interleaved modes are slightly different.

In interleaved mode:
  - The sample size should fit in the number of time-slots available for
    the QMC channel.
  - The number of audio channels should fit in the number of time-slots
    (taking into account the sample size) available for the QMC channel.

In non-interleaved mode:
  - The number of audio channels is the number of available QMC
    channels.
  - Each QMC channel should have the same number of time-slots.
  - The sample size equals the number of time-slots of one QMC channel.

This series add support for the non-interleaved mode in the qmc_audio
driver and is composed of the following parts:
  - Patches 1 and 2: Fix some issues in the qmc_audio
  - Patches 3 to 6: Prepare qmc_audio for the non-interleaved mode
  - Patches 7 and 8: Extend the QMC driver API
  - Patches 9 and 10: The support for non-interleaved mode itself

Compared to the previous iteration, this v2 series mainly improves
qmc_audio_access_is_interleaved().