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/freesc...
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-c...
-michael