6 Jan
2022
6 Jan
'22
1:26 p.m.
On Wed, Jan 05, 2022 at 04:51:43PM -0600, Robert Hancock wrote:
struct clk *axi_clk;
- unsigned int last_sysclk;
Typically this would just be called sysclk - calling it last_sysclk makes things a bit confusing. It's being used as though it were the current sysclk and that's what set_sysclk() is supposed to be for.
- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
adata->last_sysclk) {
unsigned int mclk_fs = DIV_ROUND_CLOSEST(adata->last_sysclk, params_rate(params));
writel(mclk_fs, stream_data->mmio + XLNX_AUD_FS_MULTIPLIER);
- }
Does the IP actually cope properly with inexact ratios, especially if the actual clock rate is lower than mclk_fs would suggest? It's more common to be able to tolerate a higher clock than specified.
It's interesting that this is only for playback.