If your codec exposes a clock object then you could have e.g. a board or machine driver configure the clock (clk_get/clk_set_rate/clk_prepare_enable) and leave it on regardless of the streaming usages. You would still need to make sure that the clock rates are compatible with the hw_params when streaming does happen. that's what e.g. was done for Intel to make sure the MCLK, BCLK and FSYNC could be enabled even when the DSP was idle.
Which driver is that?
sound/soc/intel/skylake/skl-ssp-clk.c
and its users in
sound/soc/intel/boards/
kbl_rt5663_rt5514_max98927.c kbl_rt5663_max98927.c
these examples are more to turn the clock on to meet codec requirements, but there were other cases that weren't upstreamed where the clocks were turned on at boot time as you described it.
The code is probably rather obscure but the idea itself holds water. As long as the clock is used the provider remains active - even if no streaming takes place.
Hope this helps -Pierre