[alsa-devel] [PATCH 4/4] ASoC: tlv320dac33: Support for turning off the codec in BIAS_STANDBY

Peter Ujfalusi peter.ujfalusi at nokia.com
Fri Apr 30 12:55:25 CEST 2010

On Friday 30 April 2010 13:23:10 ext Mark Brown wrote:
> On Fri, Apr 30, 2010 at 01:10:14PM +0300, Peter Ujfalusi wrote:
> > On Friday 30 April 2010 12:56:37 ext Mark Brown wrote:
> > > Then just use
> > > the hooks in the normal audio stream bringup/teardown surely?  It's
> > > possible that I'm missing something as a result of your list of use
> > > cases but I'd expect this to flow fairly naturally from the normal call
> > > flow.
> > 
> > The thing is, that I want to handle the chip power in one place, and
> > dac33_set_bias_level is a really good place for that.
> Sure, but it shouldn't need to be worrying about playback at all.

Valid point ;)

> > At the time when pcm_prepare is called the codec is still in OFF.
> > So I just postponed the dac33_prepare_chip call for later, when the codec
> > switches BIAS level.
> > Than I enable the power and if there is a stream, than I do the
> > preparation. Note: the BIAS level change is still within the pcm_prepare
> > call chain...
> Surely a much more straightforward solution to this is just to add a
> post-DAPM prepare() callback to the DAI ops?  It seems like a perfectly
> reasonable thing to have that callback and it means you can rely on the
> existing mechanisms having taken care of the power for you.

Hmm, right... Well.
This is not going to work, I think.
I need to keep the dac33_pcm_prepare level of configuration for cases, when the 
codec is in ON and a playback is starting (and if the codec is not ON, than 
respond it for later, when it is switch on), right?
I _need_ to do the things, which is done in the dac33_prepare_chip function 
every time, when a stream is starting :(

Now, if I use DAPM_SUPPLY attached to the DAC:
If the codec has been brought up because the loopback is enabled, than the
dac33_prepare_chip will be called twice: once from dac33_pcm_prepare, and then 
from the SUPPLY event.
This might be also the case if I use the post-DAPM prepare (or pre)

I do agree, that it is not really nice to have playback related thing in the 
dac33_set_bias_level, but so far I think that is the only way to avoid 
additional hassle (which means more places to have error, problems).

> > In this way I don't need to do any additional housekeeping while managing
> > the power of the codec.
> My point here is that it seems like you need to do more housekeeping
> than you should :)

HeHe :)
My problem with that, is the additional house keeping needs more code, which 
usually means more place, where some corner case is not handled correctly.
Well, more code == more place for bugs ;)

> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


More information about the Alsa-devel mailing list