Am 2021-03-12 13:04, schrieb Mark Brown:
On Fri, Mar 12, 2021 at 01:01:41PM +0100, Michael Walle wrote:
Am 2021-03-12 12:35, schrieb Mark Brown:
> If the card has a clock API clock as sysclk then set_sysclk(() should
> be configuring that clock.
What do you mean by "the card". The simple-audio-card itself?
Take a look at:
https://elixir.bootlin.com/linux/v5.12-rc2/source/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts#L29
Does the card has a clock? IMHO the WM8904 codec has a clock, but not
the audio card.
The clock on the CODEC, which the card configures. The CODEC should be
passing on the configuration to the clock API.
Sorry, I don't understand.
The card calls set_sysclk(), which eventually ends up in the codec.
The codec therefore, could figure out if it needs to configure the
clock or if it can use its internal FLL.
Is that what you mean?
But the set_sysclk() of the codec isn't even called, because the
card itself already tries to call clk_set_rate() on the Codec's MCLK,
which returns with an error [0].
[0]
https://elixir.bootlin.com/linux/v5.12-rc2/source/sound/soc/generic/simple-card-utils.c#L265
-michael