Mark Brown wrote:
This isn't what happens at all. The constraints set in the DAIs generally just list all the sample rates the device can possibly support, there's no dynamic information injected into the subsystem about what's supported. This is because in many systems the various clock rates are dynamically controlled and so the clocks are adjusted to reflect the sample rates the application layer wants.
IMHO, these two sentences contradict each other.
As a result we never actually bother specifying the supported rates for the current clock at all, we just try to make the best of what we're given when it comes to configuring which is a rather different thing.
But why would you do that? That just creates an artificial limitation on the list of supported sample rates. If you include a set_sysclk() function in the codec driver, then you should always specify SNDRV_PCM_RATE_CONTINUOUS in snd_soc_dai_driver.rates. To me, the two go hand-in-hand.