Hi
At least tlv320aic3x codec has several use cases where multiple register bits are needed to change when widget power state changes and where these are not worth/safe to expose into user space. Like mic bias voltage.
Currently there is one use case for this multiple bit change in tlv320aic3x:
SND_SOC_DAPM_MICBIAS("Mic Bias AVDD", MICBIAS_CTRL, 6, 0), SND_SOC_DAPM_MICBIAS("Mic Bias AVDD", MICBIAS_CTRL, 7, 0),
There are two problems with that:
1. Two widgets having the same name and thus snd_soc_dapm_add_route will add only first one them into audio path 2. Even then bits aren't modified at once and thus some fault bit configuration might be present while power state is changing.
So I came with this idea of generic register modifiers widget and event handler for it.