Hi Mark:
Since regmap_update_bits is int style, I have to error check every time after call it. Also I find that the tegra_i2s.c call the function without error checking,
Could you tell me the right way to handle the regmap_update_bits ?
Best Regards
On 2014年07月02日 09:01, Huang Tao wrote:
Hi, Mark:
于 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?