ASoC: rsnd: add rsnd_adg_clk_query()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 15 Jun 2017 00:49:43 +0000 (00:49 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 15 Jun 2017 17:18:02 +0000 (18:18 +0100)
commit1dfdc6501a4a140cfbfc6be8dbb1da3a6f726c15
treed152a147d16dccfc31d137b1fb5e78aeca013681
parent1ff9593d2f27a48fbeeccd7fc253eed2a7102d16
ASoC: rsnd: add rsnd_adg_clk_query()

Current Renesas sound driver is assuming that all Sampling rate and
channles are possible to use, but these are depends on inputed clock
and SSI connection situation.
For example, if it is using 1 SSI, enabled TDM mode and has 12288000
input clock, 2ch output can support until 192000Hz, but 6ch output can
support until 64000Hz, 8ch can support 48000Hz.
To control these situation correctly, it needs to support
hw_constraints / refine feature.

To support such feature, it needs SSI clock query feature, and it needs
ADG clock query feature. Current ADG has rsnd_adg_ssi_clk_try_start()
and it is doing similar things, but it try to setup ADG register in
same time. This is not needed.

This patch adds new rsnd_adg_clk_query() and separates query feature
and register setting feature in adg.c

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/adg.c
sound/soc/sh/rcar/rsnd.h