On Tue, Mar 06, 2012 at 12:03:20PM +0900, Tomoya MORINAGA wrote:
2012年3月2日21:58 Mark Brown broonie@opensource.wolfsonmicro.com:
Let me know why I should use SND_SOC_REGMAP not _I2C.
Have you checked what _I2C and _REGMAP do?
I've just checked it. If SND_SOC_REGMAP is used, it seems there is no processing in it.
This is not the case.
So, can I delete snd_soc_codec_set_cache_io ?
No.
Use module_i2c_driver().
I understand.
As a matter of interest, why can I use module_i2c_driver ?
It is best practice.
There is no ASoC driver uses module_i2c_driver.
This is not the case. As I have *REPEATEDLY* told you you should be sumbitting code against current development versions of the subsystem.
+static int ml26124_update_bits(struct snd_soc_codec *codec, unsigned short reg,
unsigned int mask, unsigned int value)
Why are you open coding this in your driver? There is no point in replicating subsystem functionality.
For ML26124 spec, it's necessary. Because the codec's register read-address and write-address is not the same. E.G. Sampling Rate Register R: offset=0 W: offset=1
This is not what the above prototype says, the above prototype has only one register in it. You need to make this *much* clearer for the registers it's affecting.