[alsa-devel] Question about WM8904 regcache
Bo Shen
voice.shen at atmel.com
Fri Jul 12 09:00:26 CEST 2013
Hi Mark,
I am sorry to disturb you. On our EK board, it use wm8904 codec. When
I enable the audio, and use alsa utils aplay to test, I meet the
following issue.
The audio can not playback, it show the following error.
---8>---
#aplay 44.1k_16bit_stereo.wav
Playing WAVE '44.1k_16bit_stereo.wav' : Signed 16 bit Little Endian,
Rate 44100 Hz, Stereo
aplay: pcm_write:1737: write error: Input/output error
---<8---
After check the register, they are not be configured correctly. When
read from debug file system, found the cache_dirty always Y before
playback and also failed playback.
I try to add the following two line in wm8904_set_bias_level into
"case SND_SOC_BIAS_ON", it doesn't work.
---8>---
@@ -1832,9 +1834,12 @@ static int wm8904_set_bias_level(struct
snd_soc_codec *codec,
switch (level) {
case SND_SOC_BIAS_ON:
+ regcache_cache_only(wm8904->regmap, false);
+ regcache_sync(wm8904->regmap);
break;
---<8---
However, If I comment the regcache_cache_only(wm8904->regmap, true)
as following, then it play OK.
---8>---
@@ -2232,7 +2239,7 @@ static int wm8904_i2c_probe(struct i2c_client *i2c,
WM8904_POBCTRL, 0);
/* Can leave the device powered off until we need it */
- regcache_cache_only(wm8904->regmap, true);
+ // regcache_cache_only(wm8904->regmap, true);
---<8---
So, any clue for this issue?
Thanks.
Best Regards,
Bo Shen
More information about the Alsa-devel
mailing list