Hi Sakamoto-san
Power Down Release Command (PMVR, PMDAC, RSTN, PMDA1-PMDA6) which are located on PW_MGMT1 / PW_MGMT3 register must be write again after at least 5 LRCK cycle or later on each command. Otherwise, Playback volume will be 0dB. Basically, it should be
- PowerDownRelease by Power Management1 <= call 1.x after 5LRCK
1.x Dummy write to Power Management1 2. PowerDownRelease by Power Management3 <= call 2.x after 5LRCK 2.x Dummy write to Power Management3
To avoid too many dummy write, this patch is merging these.
- PowerDownRelease by Power Management1
- PowerDownRelease by Power Management3 <= call after 5LRCK
2.x Dummy write to Power Management1/3 <= merge dummy write
This patch adds dummy write when Playback Start timing.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
(snip)
Please add enough descriptions that kernel's timer functionality cannot guarantee accuracy of expiration of timer for 5 phases of word select clock on usual serial sound interface, and my (and Mark's) concern about missing sound wave on analog part of hardware in the beginning of playback. Without the information, users of this codec driver will be puzzled in their hardware test. I can easily imagine that.
For example, 5 phases of word select clock can be calculated:
- 0.113379 msec at 44.1 kHz
- 0.104167 msec at 48.0 kHz
- 0.026042 msec at 192.0 kHz
Kernel's timer service doesn't work by such accurate expiration time. At the best, 1 msec or more. On the other hand, typical drivers for any serial sound interface starts data transmission after a callback of .trigger.
Essentially, kernel's timer service is designed for 'rough' expiration to release system resources, such as socket buffer for any internet protocol. It surely guarantees timer expiration, but not for its accuracy.
But Mark Brown approved your idea under a certain compromise, due to current design of ALSA SoC part. The part includes no guarantee of timing to enable clocks on serial sound lines between .hw_params and .trigger, in my understanding.
Thank you for your comment, yes, it should be indicated log or comment.
I noticed other approach in response to your remarks. I will try to use it.
Best regards --- Kuninori Morimoto