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.