Re: [PATCH 2/2] ASoC: add driver for Rockchip RK3xxx I2S controller

From: Mark Brown
Date: Wed Jul 02 2014 - 06:23:49 EST


On Wed, Jul 02, 2014 at 09:01:49AM +0800, Huang Tao wrote:
> ä 2014å07æ02æ 01:07, Mark Brown åé:
> >> +static inline void i2s_writel(struct rk_i2s_dev *i2s, u32 value,
> >> > + unsigned int offset)
> >> > +{
> >> > + writel_relaxed(value, i2s->regs + offset);
> >> > +}
> >> > +
> >> > +static inline u32 i2s_readl(struct rk_i2s_dev *i2s, unsigned int offset)
> >> > +{
> >> > + return readl_relaxed(i2s->regs + offset);
> >> > +}
> > Perhaps use regmap? The main advantage would be the debug
> > infrastructure, though you could also use _update_bits() to reduce the
> > amount of time spent locked.

> Are you sure? This is a I2S driver, we can write the register directly,
> do not through I2C or SPI bus.
> Write a register is only a few instructions on ARM, but write through
> regmap, it may take a long path.
> I think it will just consume CPU power and make the whole thing more
> complex.
> Could you tell me what benefits we can get if use regmap? Or something I
> just missing?

The main thing is the diagnostic infrastructure, plus the cache if you
find you need that for suspend and resume (which you didn't implement
yet) - that's the main reason things use regmap for memory mapped
registers. There is some overhead but it's not *that* big.

Attachment: signature.asc
Description: Digital signature