mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
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>
This commit is contained in:
parent
a1daf67d72
commit
77ee09c67e
2 changed files with 4 additions and 0 deletions
|
@ -385,6 +385,7 @@ struct snd_soc_codec {
|
||||||
int (*display_register)(struct snd_soc_codec *, char *,
|
int (*display_register)(struct snd_soc_codec *, char *,
|
||||||
size_t, unsigned int);
|
size_t, unsigned int);
|
||||||
int (*volatile_register)(unsigned int);
|
int (*volatile_register)(unsigned int);
|
||||||
|
int (*readable_register)(unsigned int);
|
||||||
hw_write_t hw_write;
|
hw_write_t hw_write;
|
||||||
hw_read_t hw_read;
|
hw_read_t hw_read;
|
||||||
void *reg_cache;
|
void *reg_cache;
|
||||||
|
|
|
@ -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);
|
count += sprintf(buf, "%s registers\n", codec->name);
|
||||||
for (i = 0; i < codec->reg_cache_size; i += step) {
|
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);
|
count += sprintf(buf + count, "%2x: ", i);
|
||||||
if (count >= PAGE_SIZE - 1)
|
if (count >= PAGE_SIZE - 1)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue