On Mon, Jan 11, 2016 at 03:10:20PM +0100, Maciej S. Szmigiero wrote:
On 11.01.2016 15:00, Mark Brown wrote:
I suspect not, it looks like the driver is using the cache for suspend/resume handling. I've dropped the patch for now. Either the driver should explicitly write to the relevant registers outside of interrupt context to ensure the cache entry exists or it should keep the defaults and explicitly write them to hardware at startup to ensure sync (the former is more likely to be safe).
Is it acceptable to switch it to flat cache instead to not keep the register defaults in driver?
That's possibly problematic because the flat cache will of necessity end up with defaults (of 0 from the kzalloc()) for all the registers. You'll still have default values in the cache, though some of the behaviour around optimising syncs does change without them explicitly given. It does deal with the allocation issue but given that the issue was incorrect defaults I'd be a bit concerned.