Hi Oder,
I found that this patch breaks rt5677 private register access. Private register read/write becomes no-op after this patch.
When we provide our own reg_read()/reg_write() implementation, regmap won't do the translation for indirectly accessed or paged registers according to the provided regmap_range_cfg, since translation code is in _regmap_raw_read()/_regmap_raw_write(). Thus rt5677->regmap_physical receives register address like 0x1XX for private registers and thinks it's out of range.
I'm not sure what's the right fix. Maybe we can do the translation in rt5677_read()/rt5677_write(), or attach the regmap_range_cfg struct to rt5677->regmap_physical instead.
Thanks, Ben
On Fri, Nov 7, 2014 at 3:19 AM, Mark Brown broonie@kernel.org wrote:
On Wed, Nov 05, 2014 at 01:42:53PM +0800, Oder Chiou wrote:
In DSP mode, the register r/w should use the specific function to access that is invoked by address mapping of the DSP.
Applied, thanks.