On Mon, Feb 24, 2014 at 11:31:25AM +0000, Opensource [Adam Thomson] wrote: > On Mon, 24 Feb 2014 03:01:37 +0000, Mark Brown wrote: > > but since the registers are marked as volatile and there is a register > Guessing that should read 'not marked as volatile'. Yes. > Having looked over the driver again, can you include the following > registers as well: > DA732X_REG_HPL > DA732X_REG_HPR I did notice those. However they are a bit more fun since they have some non-volatile fields in them which are also used for control. I *suspect* that a lot of the time it'll be possible to get away with just caching the first read but it needs further study - often with these things the basic offset is constant in a given system so the sign may well be right all the time. That's just a guess, though, and may not actually hold at which point a bit more attention might be needed. > Also, if we're doing this then you can move to using snd_soc_read() > instead of hw_read(), I guess. Indeed, in fact it was while doing an audit of drivers to kill off direct users of hw_read() that I noticed what was happening here.
Attachment:
signature.asc
Description: Digital signature