diff options
author | Xiaolei Wang <xiaolei.wang@windriver.com> | 2022-10-10 12:20:14 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2022-10-13 15:01:33 +0300 |
commit | ee1aa2ae3eaa96e70229fa61deee87ef4528ffdf (patch) | |
tree | 82c0fb897e4f13634577e022a6d39242647e45a0 /sound/soc/qcom/lpass-cpu.c | |
parent | f2635d45a750182c6d5de15e2d6b059e0c302d7e (diff) | |
download | linux-ee1aa2ae3eaa96e70229fa61deee87ef4528ffdf.tar.xz |
ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK
In wm8962 driver, the WM8962_ADDITIONAL_CONTROL_4 is used as a volatile
register, but this register mixes a bunch of volatile status bits and a
bunch of non-volatile control bits. The dapm widgets TEMP_HP and
TEMP_SPK leverages the control bits in this register. After the wm8962
probe, the regmap will bet set to cache only mode, then a read error
like below would be triggered when trying to read the initial power
state of the dapm widgets TEMP_HP and TEMP_SPK.
wm8962 0-001a: ASoC: error at soc_component_read_no_lock
on wm8962.0-001a: -16
In order to fix this issue, we add event handler to actually power
up/down these widgets. With this change, we also need to explicitly
power off these widgets in the wm8962 probe since they are enabled
by default.
Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com>
Tested-by: Adam Ford <aford173@gmail.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20221010092014.2229246-1-xiaolei.wang@windriver.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/qcom/lpass-cpu.c')
0 files changed, 0 insertions, 0 deletions