Explorar el Código

ASoC: Allow CODECs to flag invalid registers

This helps CODECs with sparse register maps work better with the
register cache display interface.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown hace 16 años
padre
commit
77ee09c67e
Se han modificado 2 ficheros con 4 adiciones y 0 borrados
  1. 1 0
      include/sound/soc.h
  2. 3 0
      sound/soc/soc-core.c

+ 1 - 0
include/sound/soc.h

@@ -385,6 +385,7 @@ struct snd_soc_codec {
 	int (*display_register)(struct snd_soc_codec *, char *,
 				size_t, unsigned int);
 	int (*volatile_register)(unsigned int);
+	int (*readable_register)(unsigned int);
 	hw_write_t hw_write;
 	hw_read_t hw_read;
 	void *reg_cache;

+ 3 - 0
sound/soc/soc-core.c

@@ -1156,6 +1156,9 @@ static ssize_t soc_codec_reg_show(struct snd_soc_codec *codec, char *buf)
 
 	count += sprintf(buf, "%s registers\n", codec->name);
 	for (i = 0; i < codec->reg_cache_size; i += step) {
+		if (codec->readable_register && !codec->readable_register(i))
+			continue;
+
 		count += sprintf(buf + count, "%2x: ", i);
 		if (count >= PAGE_SIZE - 1)
 			break;