13 Jul
2023
13 Jul
'23
5:37 p.m.
On Thu, Jul 13, 2023 at 10:14:23AM +0800, Zhu Ning wrote:
regcache_cache_only(es8326->regmap, false); regcache_sync(es8326->regmap);
/* reset register value to default */
regmap_write(es8326->regmap, ES8326_CSM_I2C_STA, 0x01);
usleep_range(1000, 3000);
regmap_write(es8326->regmap, ES8326_CSM_I2C_STA, 0x00);
This looks wrong, you're resyncing the cache and then start resetting registers? It feels like the ordering is off here, and some of this reset sequence might want to be done with the cache bypassed. Are you sure that there's no corruption of user visible state resulting from the power up sequence, especially around the HP driver?
Basically the chip runs through the start-up sequence every time in the resume function. Will move the reset sequence to es8326_suspend
That's not going to overwrite any user visible settings?