On Mon, Mar 09, 2020 at 11:14:18AM -0700, Kevin Li wrote:
Please fix your mailer, it looks like you've included some text I wrote here:
I can't really parse what you're talking about here (perhaps some of that context would have helped...) but it doesn't seem to be the clocking of the I2S bus which would normally be what master and slave would be talking about.
but it's completely indistinguishable from the new text that you've added.
It is the clock setting of I2S bus master or slave. If I am playing music only, I set TX as master. All others are slave. If I am recording only. I set RX as master. All others are slave. If I am playing and recording at same time, I set first coming stream as master second coming stream as slave. If I shut down first stream before second stream, then I will set the second stream as master, otherwise there will be no clock/FS signal on the I2S bus to maintain the second stream to its end.
This is not how any of this is supposed to work, it's unlikely to work well with other devices. If the device supports both master and slave operation then you should let the machine driver pick if the SoC or the CODEC is master via set_fmt(), randomly varying this at runtime is not going to be helpful.