On Tue, Mar 06, 2012 at 12:03:20PM +0900, Tomoya MORINAGA wrote: > 2012年3月2日21:58 Mark Brown : > >> 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.