Re: [PATCH] ASoC: io: Clean up snd_soc_codec_set_cache_io()

2014-02-26 Thread Mark Brown
On Thu, Feb 27, 2014 at 09:37:45AM +0800, Xiubo Li wrote:

> I'm also thinking could we just discard snd_soc_codec_set_cache_io()
> calling from each individual driver to simply the code? And just bind
> it to devm_regmap_init_i2c() and devm_regmap_init_spi()...

> Is there any other limitations for snd_soc_codec_set_cache_io() usage?

That's the goal overall, I'm not sure it's worth going through and
changing the signature of the function and then later going through and
merging it, it's just too much churn.  The main thing we need to do in
order to do that is to make sure nothing is relying on specific
sequencing during startup, probably by providing a way to manually set
the regmap pointer in the main device probe function rather than in the
ASoC one.


signature.asc
Description: Digital signature


[PATCH] ASoC: io: Clean up snd_soc_codec_set_cache_io()

2014-02-26 Thread Xiubo Li
Now that all users have been converted to regmap and the config.reg_bits
and config.val_bits can be setted by each user through regmap core API.
So these two params are redundant here.

Signed-off-by: Xiubo Li 
---

@Mark and All

I'm also thinking could we just discard snd_soc_codec_set_cache_io()
calling from each individual driver to simply the code? And just bind
it to devm_regmap_init_i2c() and devm_regmap_init_spi()...

Is there any other limitations for snd_soc_codec_set_cache_io() usage?





 include/sound/soc.h  | 1 -
 sound/soc/codecs/ad193x.c| 2 +-
 sound/soc/codecs/adau1373.c  | 2 +-
 sound/soc/codecs/adav80x.c   | 2 +-
 sound/soc/codecs/ak4535.c| 2 +-
 sound/soc/codecs/ak4641.c| 2 +-
 sound/soc/codecs/ak4642.c| 2 +-
 sound/soc/codecs/ak4671.c| 2 +-
 sound/soc/codecs/alc5623.c   | 2 +-
 sound/soc/codecs/alc5632.c   | 2 +-
 sound/soc/codecs/cq93vc.c| 2 +-
 sound/soc/codecs/cs4270.c| 2 +-
 sound/soc/codecs/cs42l51.c   | 2 +-
 sound/soc/codecs/cs42l52.c   | 2 +-
 sound/soc/codecs/cs42l73.c   | 2 +-
 sound/soc/codecs/da7210.c| 2 +-
 sound/soc/codecs/da7213.c| 2 +-
 sound/soc/codecs/da732x.c| 2 +-
 sound/soc/codecs/da9055.c| 2 +-
 sound/soc/codecs/isabelle.c  | 2 +-
 sound/soc/codecs/lm49453.c   | 2 +-
 sound/soc/codecs/max9768.c   | 2 +-
 sound/soc/codecs/max98088.c  | 2 +-
 sound/soc/codecs/max98090.c  | 2 +-
 sound/soc/codecs/max98095.c  | 2 +-
 sound/soc/codecs/max9850.c   | 2 +-
 sound/soc/codecs/mc13783.c   | 2 +-
 sound/soc/codecs/ml26124.c   | 2 +-
 sound/soc/codecs/rt5631.c| 2 +-
 sound/soc/codecs/rt5640.c| 2 +-
 sound/soc/codecs/sgtl5000.c  | 2 +-
 sound/soc/codecs/sn95031.c   | 2 +-
 sound/soc/codecs/ssm2518.c   | 2 +-
 sound/soc/codecs/ssm2602.c   | 2 +-
 sound/soc/codecs/sta32x.c| 2 +-
 sound/soc/codecs/sta529.c| 2 +-
 sound/soc/codecs/tlv320aic23.c   | 2 +-
 sound/soc/codecs/tlv320aic26.c   | 2 +-
 sound/soc/codecs/tlv320aic32x4.c | 2 +-
 sound/soc/codecs/tlv320aic3x.c   | 2 +-
 sound/soc/codecs/wm2000.c| 2 +-
 sound/soc/codecs/wm2200.c| 2 +-
 sound/soc/codecs/wm5100.c| 2 +-
 sound/soc/codecs/wm5102.c| 2 +-
 sound/soc/codecs/wm5110.c| 2 +-
 sound/soc/codecs/wm8350.c| 2 +-
 sound/soc/codecs/wm8400.c| 2 +-
 sound/soc/codecs/wm8510.c| 2 +-
 sound/soc/codecs/wm8523.c| 2 +-
 sound/soc/codecs/wm8580.c| 2 +-
 sound/soc/codecs/wm8711.c| 2 +-
 sound/soc/codecs/wm8728.c| 2 +-
 sound/soc/codecs/wm8731.c| 2 +-
 sound/soc/codecs/wm8737.c| 2 +-
 sound/soc/codecs/wm8741.c| 2 +-
 sound/soc/codecs/wm8750.c| 2 +-
 sound/soc/codecs/wm8753.c| 2 +-
 sound/soc/codecs/wm8770.c| 2 +-
 sound/soc/codecs/wm8776.c| 2 +-
 sound/soc/codecs/wm8804.c| 2 +-
 sound/soc/codecs/wm8900.c| 2 +-
 sound/soc/codecs/wm8903.c| 2 +-
 sound/soc/codecs/wm8904.c| 2 +-
 sound/soc/codecs/wm8940.c| 2 +-
 sound/soc/codecs/wm8955.c| 2 +-
 sound/soc/codecs/wm8960.c| 2 +-
 sound/soc/codecs/wm8961.c| 2 +-
 sound/soc/codecs/wm8962.c| 2 +-
 sound/soc/codecs/wm8971.c| 2 +-
 sound/soc/codecs/wm8974.c| 2 +-
 sound/soc/codecs/wm8978.c| 2 +-
 sound/soc/codecs/wm8983.c| 2 +-
 sound/soc/codecs/wm8985.c| 2 +-
 sound/soc/codecs/wm8988.c| 2 +-
 sound/soc/codecs/wm8990.c| 2 +-
 sound/soc/codecs/wm8991.c| 2 +-
 sound/soc/codecs/wm8993.c| 2 +-
 sound/soc/codecs/wm8994.c| 2 +-
 sound/soc/codecs/wm8995.c| 2 +-
 sound/soc/codecs/wm8996.c| 2 +-
 sound/soc/codecs/wm8997.c| 2 +-
 sound/soc/codecs/wm9081.c| 2 +-
 sound/soc/codecs/wm9090.c| 2 +-
 sound/soc/soc-core.c | 2 +-
 sound/soc/soc-io.c   | 9 -
 85 files changed, 83 insertions(+), 93 deletions(-)

diff --git a/include/sound/soc.h b/include/sound/soc.h
index ecfb334..0a1d732 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -404,7 +404,6 @@ int snd_soc_codec_readable_register(struct snd_soc_codec 
*codec,
 int snd_soc_codec_writable_register(struct snd_soc_codec *codec,
unsigned int reg);
 int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
-  int addr_bits, int data_bits,
   enum snd_soc_control_type control);
 int snd_soc_cache_sync(struct snd_soc_codec *codec);
 int snd_soc_cache_init(struct snd_soc_codec *codec);
diff --git a/sound/soc/codecs/ad193x.c b/sound/soc/codecs/ad193x.c
index 9381a76..052495f 100644
--- a/sound/soc/codecs/ad193x.c
+++ b/sound/soc/codecs/ad193x.c
@@ -325,7 +325,7 @@ static int ad193x_codec_probe(struct snd_soc_codec *codec)
int ret;
 
codec->control_data = ad193x->regmap;
- 

[PATCH] ASoC: io: Clean up snd_soc_codec_set_cache_io()

2014-02-26 Thread Xiubo Li
Now that all users have been converted to regmap and the config.reg_bits
and config.val_bits can be setted by each user through regmap core API.
So these two params are redundant here.

Signed-off-by: Xiubo Li li.xi...@freescale.com
---

@Mark and All

I'm also thinking could we just discard snd_soc_codec_set_cache_io()
calling from each individual driver to simply the code? And just bind
it to devm_regmap_init_i2c() and devm_regmap_init_spi()...

Is there any other limitations for snd_soc_codec_set_cache_io() usage?





 include/sound/soc.h  | 1 -
 sound/soc/codecs/ad193x.c| 2 +-
 sound/soc/codecs/adau1373.c  | 2 +-
 sound/soc/codecs/adav80x.c   | 2 +-
 sound/soc/codecs/ak4535.c| 2 +-
 sound/soc/codecs/ak4641.c| 2 +-
 sound/soc/codecs/ak4642.c| 2 +-
 sound/soc/codecs/ak4671.c| 2 +-
 sound/soc/codecs/alc5623.c   | 2 +-
 sound/soc/codecs/alc5632.c   | 2 +-
 sound/soc/codecs/cq93vc.c| 2 +-
 sound/soc/codecs/cs4270.c| 2 +-
 sound/soc/codecs/cs42l51.c   | 2 +-
 sound/soc/codecs/cs42l52.c   | 2 +-
 sound/soc/codecs/cs42l73.c   | 2 +-
 sound/soc/codecs/da7210.c| 2 +-
 sound/soc/codecs/da7213.c| 2 +-
 sound/soc/codecs/da732x.c| 2 +-
 sound/soc/codecs/da9055.c| 2 +-
 sound/soc/codecs/isabelle.c  | 2 +-
 sound/soc/codecs/lm49453.c   | 2 +-
 sound/soc/codecs/max9768.c   | 2 +-
 sound/soc/codecs/max98088.c  | 2 +-
 sound/soc/codecs/max98090.c  | 2 +-
 sound/soc/codecs/max98095.c  | 2 +-
 sound/soc/codecs/max9850.c   | 2 +-
 sound/soc/codecs/mc13783.c   | 2 +-
 sound/soc/codecs/ml26124.c   | 2 +-
 sound/soc/codecs/rt5631.c| 2 +-
 sound/soc/codecs/rt5640.c| 2 +-
 sound/soc/codecs/sgtl5000.c  | 2 +-
 sound/soc/codecs/sn95031.c   | 2 +-
 sound/soc/codecs/ssm2518.c   | 2 +-
 sound/soc/codecs/ssm2602.c   | 2 +-
 sound/soc/codecs/sta32x.c| 2 +-
 sound/soc/codecs/sta529.c| 2 +-
 sound/soc/codecs/tlv320aic23.c   | 2 +-
 sound/soc/codecs/tlv320aic26.c   | 2 +-
 sound/soc/codecs/tlv320aic32x4.c | 2 +-
 sound/soc/codecs/tlv320aic3x.c   | 2 +-
 sound/soc/codecs/wm2000.c| 2 +-
 sound/soc/codecs/wm2200.c| 2 +-
 sound/soc/codecs/wm5100.c| 2 +-
 sound/soc/codecs/wm5102.c| 2 +-
 sound/soc/codecs/wm5110.c| 2 +-
 sound/soc/codecs/wm8350.c| 2 +-
 sound/soc/codecs/wm8400.c| 2 +-
 sound/soc/codecs/wm8510.c| 2 +-
 sound/soc/codecs/wm8523.c| 2 +-
 sound/soc/codecs/wm8580.c| 2 +-
 sound/soc/codecs/wm8711.c| 2 +-
 sound/soc/codecs/wm8728.c| 2 +-
 sound/soc/codecs/wm8731.c| 2 +-
 sound/soc/codecs/wm8737.c| 2 +-
 sound/soc/codecs/wm8741.c| 2 +-
 sound/soc/codecs/wm8750.c| 2 +-
 sound/soc/codecs/wm8753.c| 2 +-
 sound/soc/codecs/wm8770.c| 2 +-
 sound/soc/codecs/wm8776.c| 2 +-
 sound/soc/codecs/wm8804.c| 2 +-
 sound/soc/codecs/wm8900.c| 2 +-
 sound/soc/codecs/wm8903.c| 2 +-
 sound/soc/codecs/wm8904.c| 2 +-
 sound/soc/codecs/wm8940.c| 2 +-
 sound/soc/codecs/wm8955.c| 2 +-
 sound/soc/codecs/wm8960.c| 2 +-
 sound/soc/codecs/wm8961.c| 2 +-
 sound/soc/codecs/wm8962.c| 2 +-
 sound/soc/codecs/wm8971.c| 2 +-
 sound/soc/codecs/wm8974.c| 2 +-
 sound/soc/codecs/wm8978.c| 2 +-
 sound/soc/codecs/wm8983.c| 2 +-
 sound/soc/codecs/wm8985.c| 2 +-
 sound/soc/codecs/wm8988.c| 2 +-
 sound/soc/codecs/wm8990.c| 2 +-
 sound/soc/codecs/wm8991.c| 2 +-
 sound/soc/codecs/wm8993.c| 2 +-
 sound/soc/codecs/wm8994.c| 2 +-
 sound/soc/codecs/wm8995.c| 2 +-
 sound/soc/codecs/wm8996.c| 2 +-
 sound/soc/codecs/wm8997.c| 2 +-
 sound/soc/codecs/wm9081.c| 2 +-
 sound/soc/codecs/wm9090.c| 2 +-
 sound/soc/soc-core.c | 2 +-
 sound/soc/soc-io.c   | 9 -
 85 files changed, 83 insertions(+), 93 deletions(-)

diff --git a/include/sound/soc.h b/include/sound/soc.h
index ecfb334..0a1d732 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -404,7 +404,6 @@ int snd_soc_codec_readable_register(struct snd_soc_codec 
*codec,
 int snd_soc_codec_writable_register(struct snd_soc_codec *codec,
unsigned int reg);
 int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
-  int addr_bits, int data_bits,
   enum snd_soc_control_type control);
 int snd_soc_cache_sync(struct snd_soc_codec *codec);
 int snd_soc_cache_init(struct snd_soc_codec *codec);
diff --git a/sound/soc/codecs/ad193x.c b/sound/soc/codecs/ad193x.c
index 9381a76..052495f 100644
--- a/sound/soc/codecs/ad193x.c
+++ b/sound/soc/codecs/ad193x.c
@@ -325,7 +325,7 @@ static int ad193x_codec_probe(struct snd_soc_codec *codec)
int ret;
 

Re: [PATCH] ASoC: io: Clean up snd_soc_codec_set_cache_io()

2014-02-26 Thread Mark Brown
On Thu, Feb 27, 2014 at 09:37:45AM +0800, Xiubo Li wrote:

 I'm also thinking could we just discard snd_soc_codec_set_cache_io()
 calling from each individual driver to simply the code? And just bind
 it to devm_regmap_init_i2c() and devm_regmap_init_spi()...

 Is there any other limitations for snd_soc_codec_set_cache_io() usage?

That's the goal overall, I'm not sure it's worth going through and
changing the signature of the function and then later going through and
merging it, it's just too much churn.  The main thing we need to do in
order to do that is to make sure nothing is relying on specific
sequencing during startup, probably by providing a way to manually set
the regmap pointer in the main device probe function rather than in the
ASoC one.


signature.asc
Description: Digital signature