On Tue, Aug 10, 2021 at 05:27:45PM +0100, Richard Fitzgerald wrote:
On 10/08/2021 16:49, Mark Brown wrote:
Shouldn't the PLL code be noticing problematic attempts to reconfigure the PLL while it's active rather than the individual callers?
It's wrong for a hw_params() for one stream to try to configure the PLL when the other stream has already called hw_params(), configured the PLL and started it. E.g. if you started a PLAYBACK, configured and started everything, then got another hw_params() for the CAPTURE.
cs42l42_pll_config() could check whether it is already running and skip configuration in that case, but that seems to me a rather opaque implementation. In my opinion this doesn't really fall into the case of ignoring-bad-stuff-to-be-helpful (like free() accepting a NULL).
This doesn't treat the situation as an error though, it just ignores it, and there's nothing to stop _pll_config() generating a warning if that makes sense.