All of lore.kernel.org
 help / color / mirror / Atom feed
* wm8904 and output volume control
@ 2022-12-16 23:47 Emanuele Ghidoli
  2022-12-19  9:58 ` Charles Keepax
  0 siblings, 1 reply; 8+ messages in thread
From: Emanuele Ghidoli @ 2022-12-16 23:47 UTC (permalink / raw)
  To: alsa-devel
  Cc: Charles Keepax, Takashi Iwai, Liam Girdwood, Michael Walle,
	Mark Brown, Francesco Dolcini, emanuele.ghidoli

Hello,
I have found that output volume is set to the default value after a 
limited time (~4 seconds) after play stop.
I have analyzed what is happening:
- at first play the volume is the expected one
- After stopping playing + ~4 seconds wm8904_set_bias_level (..., 
SND_SOC_BIAS_OFF) is called
- Chip is reset and regulator is switched off if "possible" (not in our 
case, it is important to note)
- at second play wm8904_set_bias_level (..., SND_SOC_BIAS_STANDBY) is 
called. wm8904_hw_params is also called just before.

I see that all I2C transactions are good, registers are written as 
expected, especially volume control register (even the silly HPOUT_VU 
bit, to do a volume update is correctly written).
Reading out this register, using i2cget (bypassing regcache), report the 
"expected" value. But the real output volume correspond to the default 
value (hw default, that it is the same value in wm8904_reg_defaults 
structure).

I checked that SYSCLK_ENA is 0 during register writing (needed if 
MCLK/SYSCLK is not present). I do not know if there is some other 
constrain on these registers.

If I rewrite the volume control register, a second time, the volume is 
set (tested with i2cset, from user space. And from kernel space, 
bypassing regcache).

I resolve also by reverting e9149b8c00d2 ("ASoC: wm8904: fix regcache 
handling").
I'm not here to say that the commit is wrong. I analyzed it and seem 
perfect (in few words it align the hw with the regcache avoiding 
potential incoherence).

I'm trying to compare first play and second play register programming 
sequence. They are similar but not the same. But on the first play the 
volume output is good.

Do someone remember something similar fixed on another codec?
Any idea is appreciated.
Thank you.
Best regards,


Emanuele Ghidoli

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

end of thread, other threads:[~2022-12-28 10:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-16 23:47 wm8904 and output volume control Emanuele Ghidoli
2022-12-19  9:58 ` Charles Keepax
2022-12-19 15:20   ` Emanuele Ghidoli
2022-12-20 10:00     ` Charles Keepax
2022-12-20 19:12       ` Emanuele Ghidoli
2022-12-21 16:56         ` Charles Keepax
2022-12-21 17:38           ` Emanuele Ghidoli
2022-12-28 10:04             ` Charles Keepax

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.