All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true
@ 2011-08-27 16:24 Lars-Peter Clausen
  2011-08-27 16:24 ` [PATCH 2/3] ASoC: Fix register cache sync register_writable WARN_ONs Lars-Peter Clausen
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Lars-Peter Clausen @ 2011-08-27 16:24 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood; +Cc: alsa-devel, Lars-Peter Clausen

Change the default return value of snd_soc_codec_{readable,writable}_register to
true when no codec specific callback for this function is given. Otherwise all
registers of that codec will neither be readable nor writable, which is most
certainly not what we want.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/soc-core.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index fd173f6..4065d4e 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1635,7 +1635,7 @@ int snd_soc_codec_readable_register(struct snd_soc_codec *codec,
 	if (codec->readable_register)
 		return codec->readable_register(codec, reg);
 	else
-		return 0;
+		return 1;
 }
 EXPORT_SYMBOL_GPL(snd_soc_codec_readable_register);
 
@@ -1653,7 +1653,7 @@ int snd_soc_codec_writable_register(struct snd_soc_codec *codec,
 	if (codec->writable_register)
 		return codec->writable_register(codec, reg);
 	else
-		return 0;
+		return 1;
 }
 EXPORT_SYMBOL_GPL(snd_soc_codec_writable_register);
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] ASoC: Fix register cache sync register_writable WARN_ONs
  2011-08-27 16:24 [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true Lars-Peter Clausen
@ 2011-08-27 16:24 ` Lars-Peter Clausen
  2011-08-27 16:24 ` [PATCH 3/3] ASoC: soc_codec_reg_show use snd_soc_codec_readable_register Lars-Peter Clausen
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Lars-Peter Clausen @ 2011-08-27 16:24 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood; +Cc: alsa-devel, Lars-Peter Clausen

Currently the condition for these WARN_ONs is reversed and they are placed
before the actual check whether we are going to write to that register. So if
the codec implements the register_writable callback we'll get a warning for each
writable register when syncing the register cache.

While we are at it change the check to use snd_soc_codec_writable_register
instead of open-coding it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/soc-cache.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c
index fdfd488..143c705 100644
--- a/sound/soc/soc-cache.c
+++ b/sound/soc/soc-cache.c
@@ -203,14 +203,14 @@ static int snd_soc_rbtree_cache_sync(struct snd_soc_codec *codec)
 		rbnode = rb_entry(node, struct snd_soc_rbtree_node, node);
 		for (i = 0; i < rbnode->blklen; ++i) {
 			regtmp = rbnode->base_reg + i;
-			WARN_ON(codec->writable_register &&
-				codec->writable_register(codec, regtmp));
 			val = snd_soc_rbtree_get_register(rbnode, i);
 			def = snd_soc_get_cache_val(codec->reg_def_copy, i,
 						    rbnode->word_size);
 			if (val == def)
 				continue;
 
+			WARN_ON(!snd_soc_codec_writable_register(codec, regtmp));
+
 			codec->cache_bypass = 1;
 			ret = snd_soc_write(codec, regtmp, val);
 			codec->cache_bypass = 0;
@@ -560,8 +560,7 @@ static int snd_soc_lzo_cache_sync(struct snd_soc_codec *codec)
 
 	lzo_blocks = codec->reg_cache;
 	for_each_set_bit(i, lzo_blocks[0]->sync_bmp, lzo_blocks[0]->sync_bmp_nbits) {
-		WARN_ON(codec->writable_register &&
-			codec->writable_register(codec, i));
+		WARN_ON(!snd_soc_codec_writable_register(codec, i));
 		ret = snd_soc_cache_read(codec, i, &val);
 		if (ret)
 			return ret;
@@ -820,8 +819,6 @@ static int snd_soc_flat_cache_sync(struct snd_soc_codec *codec)
 
 	codec_drv = codec->driver;
 	for (i = 0; i < codec_drv->reg_cache_size; ++i) {
-		WARN_ON(codec->writable_register &&
-			codec->writable_register(codec, i));
 		ret = snd_soc_cache_read(codec, i, &val);
 		if (ret)
 			return ret;
@@ -829,6 +826,9 @@ static int snd_soc_flat_cache_sync(struct snd_soc_codec *codec)
 			if (snd_soc_get_cache_val(codec->reg_def_copy,
 						  i, codec_drv->reg_word_size) == val)
 				continue;
+
+		WARN_ON(!snd_soc_codec_writable_register(codec, i));
+
 		ret = snd_soc_write(codec, i, val);
 		if (ret)
 			return ret;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] ASoC: soc_codec_reg_show use snd_soc_codec_readable_register
  2011-08-27 16:24 [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true Lars-Peter Clausen
  2011-08-27 16:24 ` [PATCH 2/3] ASoC: Fix register cache sync register_writable WARN_ONs Lars-Peter Clausen
@ 2011-08-27 16:24 ` Lars-Peter Clausen
  2011-08-29  9:28 ` [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true Liam Girdwood
  2011-08-31  8:47 ` Mark Brown
  3 siblings, 0 replies; 5+ messages in thread
From: Lars-Peter Clausen @ 2011-08-27 16:24 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood; +Cc: alsa-devel, Lars-Peter Clausen

Use snd_soc_codec_readable_register instead of open-coding it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/soc-core.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 4065d4e..fc7fff3 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -143,7 +143,7 @@ static ssize_t soc_codec_reg_show(struct snd_soc_codec *codec, char *buf,
 		step = codec->driver->reg_cache_step;
 
 	for (i = 0; i < codec->driver->reg_cache_size; i += step) {
-		if (codec->readable_register && !codec->readable_register(codec, i))
+		if (!snd_soc_codec_readable_register(codec, i))
 			continue;
 		if (codec->driver->display_register) {
 			count += codec->driver->display_register(codec, buf + count,
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true
  2011-08-27 16:24 [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true Lars-Peter Clausen
  2011-08-27 16:24 ` [PATCH 2/3] ASoC: Fix register cache sync register_writable WARN_ONs Lars-Peter Clausen
  2011-08-27 16:24 ` [PATCH 3/3] ASoC: soc_codec_reg_show use snd_soc_codec_readable_register Lars-Peter Clausen
@ 2011-08-29  9:28 ` Liam Girdwood
  2011-08-31  8:47 ` Mark Brown
  3 siblings, 0 replies; 5+ messages in thread
From: Liam Girdwood @ 2011-08-29  9:28 UTC (permalink / raw)
  To: Lars-Peter Clausen; +Cc: alsa-devel@alsa-project.org, Mark Brown

On 27/08/11 17:24, Lars-Peter Clausen wrote:
> Change the default return value of snd_soc_codec_{readable,writable}_register to
> true when no codec specific callback for this function is given. Otherwise all
> registers of that codec will neither be readable nor writable, which is most
> certainly not what we want.
> 
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
> ---
>  sound/soc/soc-core.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index fd173f6..4065d4e 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -1635,7 +1635,7 @@ int snd_soc_codec_readable_register(struct snd_soc_codec *codec,
>  	if (codec->readable_register)
>  		return codec->readable_register(codec, reg);
>  	else
> -		return 0;
> +		return 1;
>  }
>  EXPORT_SYMBOL_GPL(snd_soc_codec_readable_register);
>  
> @@ -1653,7 +1653,7 @@ int snd_soc_codec_writable_register(struct snd_soc_codec *codec,
>  	if (codec->writable_register)
>  		return codec->writable_register(codec, reg);
>  	else
> -		return 0;
> +		return 1;
>  }
>  EXPORT_SYMBOL_GPL(snd_soc_codec_writable_register);
>  

All

Acked-by: Liam Girdwood <lrg@ti.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true
  2011-08-27 16:24 [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true Lars-Peter Clausen
                   ` (2 preceding siblings ...)
  2011-08-29  9:28 ` [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true Liam Girdwood
@ 2011-08-31  8:47 ` Mark Brown
  3 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2011-08-31  8:47 UTC (permalink / raw)
  To: Lars-Peter Clausen; +Cc: alsa-devel, Liam Girdwood

On Sat, Aug 27, 2011 at 06:24:12PM +0200, Lars-Peter Clausen wrote:
> Change the default return value of snd_soc_codec_{readable,writable}_register to
> true when no codec specific callback for this function is given. Otherwise all
> registers of that codec will neither be readable nor writable, which is most
> certainly not what we want.

Applied all, thanks.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-08-31  8:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-27 16:24 [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true Lars-Peter Clausen
2011-08-27 16:24 ` [PATCH 2/3] ASoC: Fix register cache sync register_writable WARN_ONs Lars-Peter Clausen
2011-08-27 16:24 ` [PATCH 3/3] ASoC: soc_codec_reg_show use snd_soc_codec_readable_register Lars-Peter Clausen
2011-08-29  9:28 ` [PATCH 1/3] ASoC: snd_soc_codec_{readable, writable}_register change default to true Liam Girdwood
2011-08-31  8:47 ` Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.