mbox series

[v3,0/7] ASoC: adds new .auto_selectable_formats support

Message ID 87k0nkncaw.wl-kuninori.morimoto.gx@renesas.com
Headers show
Series ASoC: adds new .auto_selectable_formats support | expand

Message

Kuninori Morimoto May 27, 2021, 2:24 a.m. UTC
Hi Mark

These are v3 of "ASoC: adds new .get_fmt support",
but renamed Subject.

This is a little bit challenging patch-set.
The idea/code is almost same as v1 / v2.
v3 has "priority" support.

We need to set dai_link->dai_fmt to select CPU/Codec settings,
and it is selected by Sound Card Driver, today.

Because of it, Sound Card user need to know both CPU / Codec
available dai_fmt, and needs to select it.
For example simple-card / audio-graph case, it is selected by
"format" and "bitclock/frame-master/inversion" on DT.

But, it can be automatically selected if both CPU and Codec drivers
indicate it to ALSA SoC Framework, somehow.

By this patch, dai_fmt can be automatically selected from each
driver if both CPU / Codec driver had .auto_selectable_formats.
Automatically selectable *field* is depends on each drivers.

For example, some driver want to select format "automatically",
but want to select other fields "manually", because of complex limitation.
Or other example, in case of both CPU and Codec are possible to be
clock provider, but the quality was different.
In these case, user need/want to *manually* select each fields
from Sound Card driver.

It uses Sound Card specified fields preferentially, and try to select
non-specific fields from CPU and Codec driver settings if driver had
.auto_selectable_formats.
In other words, we can select all dai_fmt via Sound Card driver
same as before.

Select dai_fmt 100% automatically is very difficult and will be very complex,
but select automatically some fields only is very easy, I guess.
This patch-set is based on such assumption.

v1 -> v2
	- Add more detail explanation on git-log, code, comment.
	- Possible to be Clock/Frame provider is depends on driver's situation.

v2 -> v3
	- has priority
	- tidyup function explanation for snd_soc_dai_get_fmt()
	- Each driver don't try to have SND_SOC_DAIFMT_CBx_CFx to avoid confusion

Link: https://lore.kernel.org/r/871rb3hypy.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/871racbx0w.wl-kuninori.morimoto.gx@renesas.com

Kuninori Morimoto (7):
  ASoC: soc-core: move snd_soc_runtime_set_dai_fmt() to upside
  ASoC: soc-core: add snd_soc_runtime_get_dai_fmt()
  ASoC: ak4613: add .auto_selectable_formats support
  ASoC: pcm3168a: add .auto_selectable_formats support
  ASoC: rsnd: add .auto_selectable_formats support
  ASoC: fsi: add .auto_selectable_formats support
  ASoC: hdmi-codec: add .auto_selectable_formats support

 include/sound/soc-dai.h       |  55 +++++++
 sound/soc/codecs/ak4613.c     |  11 ++
 sound/soc/codecs/hdmi-codec.c |  21 +++
 sound/soc/codecs/pcm3168a.c   |  26 +++
 sound/soc/sh/fsi.c            |  15 ++
 sound/soc/sh/rcar/core.c      |  31 +++-
 sound/soc/soc-core.c          | 288 ++++++++++++++++++++++++++--------
 sound/soc/soc-dai.c           |  63 ++++++++
 sound/soc/soc-utils.c         |  29 ++++
 9 files changed, 475 insertions(+), 64 deletions(-)

Comments

Mark Brown June 7, 2021, 7 p.m. UTC | #1
On 27 May 2021 11:24:55 +0900, Kuninori Morimoto wrote:
> These are v3 of "ASoC: adds new .get_fmt support",
> but renamed Subject.
> 
> This is a little bit challenging patch-set.
> The idea/code is almost same as v1 / v2.
> v3 has "priority" support.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/7] ASoC: soc-core: move snd_soc_runtime_set_dai_fmt() to upside
      commit: 4d1a98b5f1abaad0ba7177fdb389a9f78584bc3a
[2/7] ASoC: soc-core: add snd_soc_runtime_get_dai_fmt()
      commit: ba9e82a1c8919340bee0dd7f7cafb8749810aabe
[3/7] ASoC: ak4613: add .auto_selectable_formats support
      commit: c50f381afcab30125e43258bba9316054c4ddfac
[4/7] ASoC: pcm3168a: add .auto_selectable_formats support
      commit: bea63e8bbe3326c3e2d5540edc90a7cd2ef1ee9a
[5/7] ASoC: rsnd: add .auto_selectable_formats support
      commit: 0292176522566fff8db524e38ffd0cb28398b736
[6/7] ASoC: fsi: add .auto_selectable_formats support
      commit: af69f47df1fb494e6d8050e0111dfc7d75079fd6
[7/7] ASoC: hdmi-codec: add .auto_selectable_formats support
      commit: 68d8b7ba360f01babe56887f37a679e981833bb7

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark