The patch looks fine, but I'd like to clear a doubt I have on how MCLKs are handled.
IIRC, the hardware exposes 2 MCLK outputs, and it's not uncommon to share the same MCLK between SSPs, or use a different MCLK id for the same SSP on different platforms (it's one of the differences between apl-da7219 and glk-da7219).
Can you double-check that at the board level the MCLK pins are actually different? If they are not, then we should not be enabling/disabling them separately, or you'll have side effects between headset and DMICs.
I also don't know what the SKL driver does with 'ssp0_mclk' and 'ssp1_mclk'? Cezary, would you happen to know how the mapping between MCLK and SSPs is handled?
On the board I only see one mclk output which name is "GPPD23/I2S_MCLK". I will use ssp1_mclk instead since rt5514 is also use it when enabling DSP voice wake up function.
I've talked to Realtek people about this issue. They said rt5514 requires explicit clock control over mclk in its rt5514_set_bias_level() function which explains why this patch could fix the issue but the patch seems to be an overkill. I will upload another patch which touches mclk only in card's set_bias_level() function . Thanks for the review.
Regards, Brent