ASoC: audio_graph_card2: Support variable slot widths
authorMark Brown <broonie@kernel.org>
Mon, 7 Mar 2022 20:36:55 +0000 (20:36 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 7 Mar 2022 20:36:55 +0000 (20:36 +0000)
commit3066987e11d3997db8212c6ed0aebaac0899dd5b
treea82f2135c93fe257db9873dd4e6fadf7edb56f2e
parentfc14fac286a05d36202f8114d00a9935ca2e0756
parent1e974e5b82b3d75069b50445cd248cee0199654e
ASoC: audio_graph_card2: Support variable slot widths

Merge series from Richard Fitzgerald <rf@opensource.cirrus.com>:

This adds support for I2S/TDM links where the slot width varies
depending on the sample width, in a way that cannot be guessed by
component hw_params().

A typical example is:

- 16-bit samples use 16-bit slots
- 24-bit samples use 32-bit slots

There is no way for a component hw_params() to deduce from the information
it is passed that 24-bit samples will be in 32-bit slots.

Some audio hardware cannot support a fixed slot width or a slot width
equal to the sample width in all cases. This is usually due either to
limitations of the audio serial port or system clocking restrictions.