On Mon, May 12, 2014 at 12:03:04PM +0100, Mark Brown wrote:
On Mon, May 12, 2014 at 11:42:04AM +0100, Charles Keepax wrote:
Yea, you're right. When the error message shows up, _regmap_read() returns -EBUSY for reg WM8962_CLASS_D_CONTROL_1. But how do I find out why the reg is not in the cache?
From what I can see it doesn't look like this register should be volatile. I am checking with the hardware guys here, incase I am missing something, but otherwise I will wing out a patch to make it non-volatile.
IIRC at least one of the bits in the register also appears in another register. They aren't volatile but the cache could get confused unless something is open coded to keep the two cached registers in sync.
Yup, just heard back from the hardware guys, this is exactly it. The DAC_MUTE bit in registers R5 and R49 both control the same thing. So if you change one it changes the other.
Looks like either something will need to be added to keep the two registers in sync, or some manual caching of the speaker switch until the device is enabled.
Thanks, Charles