[RFC] ASoC: max98373: don't access volatile registers in bias level off
Kai Vehmanen
kai.vehmanen at linux.intel.com
Tue Nov 17 13:03:06 CET 2020
Hi,
On Mon, 9 Nov 2020, Bard Liao wrote:
> Besides, it doesn't make sense to read feedback data when codec is not
> active. To avoid the regmap_read error, this patch try to return a fake
> value when kcontrol _get is called in suspend.
> However, the question is what is the "correct" behavior when we try to
> read a volatile register when cache only is set.
> 1. return an error code to signal codec is not available as what we have
> now.
> 2. return a fake value like what this patch do.
> 3. wake-up the codec and always return a valid value.
any thoughts on this anyone?
This seems like a generic concern w.r.t. ASoC codec drivers and behavior
of volatile registers exposed as kcontrols, and what happens when codec is
in suspend.
Currently regmap read will return -EBUSY in this case (case 1 above).
I personally think this is still the best option. It's a bit ugly as
there could be other reasons for -EBUSY as well, but at least user-space
won't silently read invalid values.
Waking up the codec (3) could work as well, but should this be done in all
codec drivers that have volatile regs in regmap? Again, user-space would
get consistent results, with the expense of extra/additional codec
wakeups.
Br, Kai
More information about the Alsa-devel
mailing list