Re: [PATCH] ASoC: fsl_ssi: remove explicit register defaults
From: Maciej S. Szmigiero
Date: Mon Feb 01 2016 - 16:31:14 EST
On 01.02.2016 22:10, Mark Brown wrote:
> On Mon, Feb 01, 2016 at 05:58:06PM +0100, Maciej S. Szmigiero wrote:
>
>> Looks like a possible solution would be to change
>> regmap_raw_read() to do read using _regmap_read in
>> case the cache is bypassed and there is no ->read
>> callback defined for regmap implementation.
>
> No, that's completely broken. We can't do a raw read from a regmap that
> doesn't offer raw access and we shouldn't pretend to do so. If the
> caller is capable of substituting a register by register read the caller
> should take responsibility for that.
So can regcache initialization be changed to use register by register read
in case raw read fails?
Since other option for drivers like SSI which are memory mapped and
don't offer ability to reset their register values to default would be to
explicitly write driver hardcoded defaults also by doing
register by register write on probe time.
But this would force driver to keep the defaults which I think is bad
(especially for driver that supports multiple generations of hardware
like fsl_ssi which may have different default values).
Maciej