On 21.06.2023 23:46, Mark Brown wrote:
Ok. How about that:
sound/soc/codecs/max98090.c | 52 ++++++++++++++++++++----------------- sound/soc/codecs/max98090.h | 2 ++ 2 files changed, 30 insertions(+), 24 deletions(-)
That looks plausible, yes.
I do note that the driver ignores tdm_width (and the entire TDM configuration) when configuring BCLK, I guess it only works in clock consumer mode for TDM? If that's the case there should really be some validation, and there should probably be a check for slot width being 16 since that looks like the only thing supported. Those were already broken though.
Yep, tdm_width is not used in the driver and I can drop it. We already have slot_width validation in set_tdm_slot(), so only 16 is allowed. I didn't check/use clock provider mode. But it looks fine for me. set_fmt() just sets frame width here: 32 - by default, 48/64 - 3/4 slots if configured. We also check slots count in set_tdm_slots(). It will work for I2S/TDM.