diff options
author | Adam Thomson <Adam.Thomson.Opensource@diasemi.com> | 2019-04-29 11:57:33 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-05-02 11:37:08 +0900 |
commit | 1cd472d2ac1654f939ae01164b29e81fc76e0a93 (patch) | |
tree | e24eaf36fb45f41dccf510804bd5489afc543ef8 /sound/soc/sof/topology.c | |
parent | 406dcbc55a0a20fd155be889a4a0c4b812f7c18e (diff) |
ASoC: da7219: Use clk_round_rate to handle enabled bclk/wclk case
For some platforms where DA7219 is the DAI clock master, BCLK/WCLK
will be set and enabled prior to the codec's hw_params() function
being called. It is possible the platform requires a different
BCLK configuration than would be chosen by hw_params(), for
example S16_LE format needed with a 64-bit frame to satisfy certain
devices using the clocks.
To handle those kinds of scenarios, the use of clk_round_rate() is
now employed as part of hw_params(). If BCLK is already enabled
then this function will just return the currently set rate, if it
is valid for the desired frame size, so the subsequent call to
clk_set_rate() will succeed and nothing changes with regards to
clocking. In addition the specific BCLK & WCLK recalc_rate()
implementations needed updating to always give back a real value,
as those functions are called as part of the clk init code and a
real value is needed for the clk_round_rate() call to work as
expected.
Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/topology.c')
0 files changed, 0 insertions, 0 deletions