On 3/11/2021 3:57 PM, Michael Walle wrote:
I've had a closer look at this and it seems you're messing around with the clock of the codec's node (which is _not_ a subnode of the simple-audio-card). I don't think this is correct. I guess you should rather set the clock property in the codec subnode of the simple-audio-card, which is then picked up by the simple-audio-card driver and changed accordingly. For example: simple-audio-card,dai-link@0 { reg = <0>; bitclock-master = <&dailink0_master>; frame-master = <&dailink0_master>; format = "i2s"; cpu { sound-dai = <&sai6>; }; dailink0_master: codec { sound-dai = <&wm8904>; clocks = <&mclk>; }; }; In this case mclk will be enabled and disabled accordingly. Could you test this?
It would work and initially I had similar patch, see [0] and related series. Suggestion is to always use "clocks" property with devices only.
[0] https://patchwork.kernel.org/project/alsa-devel/patch/1611944866-29373-4-git-send-email-spujar@xxxxxxxxxx/