The multi-component patch(commit f0fba2ad1) moved the allocation of theregister cache from the driver to the ASoC core. Most drivers where adjusted tothis, but the wm8904 driver still uses its own register cache for itsprivate functions, while functions from the ASoC core use the generic cache.Thus we end up with two from each other incoherent caches, which can lead toundefined behaviour.This patch fixes the issue by changing the wm8904 driver to use thegeneric register cache in its private functions.

/* Set Class W by default - this will be managed by the Class * G widget at runtime where bypass paths are available. */- wm8904->reg_cache[WM8904_CLASS_W_0] |= WM8904_CP_DYN_PWR;+ reg_cache[WM8904_CLASS_W_0] |= WM8904_CP_DYN_PWR;