Re: [PATCH] ASoC: codecs: lpass-wsa-macro: rewrite the interpolator volume after enabling clocks

From: Liviu Nicoara

Date: Thu Sep 24 2026 - 18:14:11 EST


> in this case, while its playing with the wrong volume, use /dev/mem to
> directly read the value of the volume register and then write the same
> value, if that fixes the volume from 69 to 81, then this patch might be
> necessary, otherwise its papering over the issue like I wrote

Done, on the unpatched driver (v7.2.6, stock lpass-wsa-macro, booted
with iomem=relaxed so /dev/mem can reach the macro at 0x6b00000):

I played back a tone that I changed from 81 to 69 mid-play and the
volume went down audibly. It read back 0xf1 through /dev/mem. Then:

1. With the macro runtime-suspended, I changed WSA_RX0 Digital Volume
from 69 to 81.
2. I started playback: it played at the 69 level, quieter.
3. While it was playing, a /dev/mem read of 0x6b00414 returned 0xfd
(81).
4. I wrote 0xfd back to 0x6b00414 through /dev/mem: the volume went up
to 81 at once.

So the hardware register already held the new value, and rewriting it
with the path running, without regmap involved, is what made it take
effect.