[alsa-devel] [PATCH v2] ASoC: ak4613: call dummy write for PW_MGMT1/3 when Playback

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Fri Dec 1 02:02:46 CET 2017


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
> >
> > 	1.   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.
> >
> > 	1.   PowerDownRelease by Power Management1
> > 	2.   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 at 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


More information about the Alsa-devel mailing list