On Mon, Oct 10, 2022 at 9:57 AM Charles Keepax ckeepax@opensource.cirrus.com wrote:
On Mon, Oct 10, 2022 at 05:20:14PM +0800, Xiaolei Wang wrote:
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
Thanks for this. I saw this same error, but the audio that I use didn't appear impacted, so I just ignored it.
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
Acked-by: Charles Keepax ckeepax@opensource.cirrus.com
Tested-by: Adam Ford aford173@gmail.com
Thanks, Charles