ASoC: Writing register default value for the reset register
Subsystems (3)
PATCH 1/1 ASoC: Writing register default value for the reset register
The WM8983 can be reset by performing a write of any value to the software reset register.
To avoid writing to the software reset register while resume, we should write the same value in wm8983_reg_defs to software reset register in wm8983_probe().
The write to the reset register is suppressed by the cache restore code when it skips writes of default registers.
--- sound/soc/codecs/wm8983.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
sound/soc/codecs/wm8983.c +1 -1
@@ -1007,7 +1007,7 @@ static int wm8983_probe(struct snd_soc_codec *codec)return ret; } - ret =snd_soc_write (codec,WM8983_SOFTWARE_RESET ,0x8983 ); + ret =snd_soc_write (codec,WM8983_SOFTWARE_RESET ,0 );if (ret <0 ) {dev_err (codec->dev,"Failed to issue reset: %d\n" , ret);return ret;
Signature · 1 line
1.7.4.1
Quoted 18 lines · Axel Lin
The WM8983 can be reset by performing a write of any value to the software reset register.
To avoid writing to the software reset register while resume, we should write the same value inwm8983_reg_defsto software reset register inwm8983_probe().
The write to the reset register is suppressed by the cache restore code when it skips writes of default registers.Signed-off-by Axel Lin <[email protected]>--- sound/soc/codecs/wm8983.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)sound/soc/codecs/wm8983.c +0
-0
sound/soc/codecs/wm8983.c static int wm8983_probe(struct snd_soc_codec *codec) · line 1013
Quoted 8 lines
sound/soc/codecs/wm8983.c +1
-1@@ -1007,7 +1007,7 @@ static int wm8983_probe(struct snd_soc_codec *codec)return ret; } - ret =snd_soc_write (codec,WM8983_SOFTWARE_RESET ,0x8983 ); + ret =snd_soc_write (codec,WM8983_SOFTWARE_RESET ,0 );if (ret <0 ) {dev_err (codec->dev,"Failed to issue reset: %d\n" , ret);return ret;
We should probably just handle the reset register specially during resume.
Thanks,
Dimitris
Quoted 9 lines · Dimitris Papastamos
sound/soc/codecs/wm8983.c static int wm8983_probe(struct snd_soc_codec *codec) · line 1010
Quoted 5 lines · Axel Lin
The WM8983 can be reset by performing a write of any value to the software reset register.
sound/soc/codecs/wm8983.c +1
-1- ret =snd_soc_write (codec,WM8983_SOFTWARE_RESET ,0x8983 ); + ret =snd_soc_write (codec,WM8983_SOFTWARE_RESET ,0 );We should probably just handle the reset register specially during resume.
I really don't think it's worth the code complexity to add special handling like that, this is a trivial patch which avoids the need for any extra infrastructure.
Quoted 11 lines · Mark Brown
Quoted 9 lines · Dimitris Papastamos
sound/soc/codecs/wm8983.c static int wm8983_probe(struct snd_soc_codec *codec) · line 1010
Quoted 5 lines · Axel Lin
The WM8983 can be reset by performing a write of any value to the software reset register.
sound/soc/codecs/wm8983.c +1
-1- ret =snd_soc_write (codec,WM8983_SOFTWARE_RESET ,0x8983 ); + ret =snd_soc_write (codec,WM8983_SOFTWARE_RESET ,0 );We should probably just handle the reset register specially during resume.
Quoted 3 lines
I really don't think it's worth the code complexity to add special handling like that, this is a trivial patch which avoids the need for any extra infrastructure.
Aw I thought this code was using the old style open coded syncing functions, which would be trivial and perhaps idiomatic to simply check for the reset register and continue.
Thanks,
Dimitris
Mark Brown
AppliedQuoted 2 lines · Axel Lin
The WM8983 can be reset by performing a write of any value to the software reset register.
Applied, thanks.