[alsa-devel] [PATCH v2] tlv320aic3x: disable ADC/DAC while changing clock
Mark Brown
broonie at sirena.org.uk
Wed Apr 1 17:24:22 CEST 2009
On Wed, Apr 01, 2009 at 04:06:05PM +0200, Daniel Gl?ckner wrote:
> On 04/01/2009 02:10 PM, Mark Brown wrote:
> > Hrm, does the chip support asymmetric configurations for playback and
> > capture?
> No, why do you ask?
In that case rather than using a trigger to check if the device is
running it should be possible to use constraints to prevent
reconfiguration of the device when it's not supported - this is more
friendly to apps since they know they won't be allowed to change the
configuration.
> >> + * Enables or disables the left/right ADC/DAC according to new.
> >> + * Bits in new:
> > Is this really required? I can't see it being a good idea to bounce the
> > power of the DAC or ADC while they are live since that will impact the
> > audio stream noticably. It looks like it'd be better to do a check
> > which refuses to do the reconfiguration when it's not possible.
> Powering off is required in case the stream has been closed previously but the
m close_delayed_work has not yet been run. That was the case where I observed the
> problems this patch tries to fix.
Eew, right. This should go in the comments.
> > It's especially suspicious since the power of the DAC and ADC is managed
> > via DAPM; the only current user should be safe since it saves then
> > restores the state but it does raise alarm bells.
> How about making it a function that always disables the four components and
> referring to snd_soc_dapm_sync to restore the state?
Hrm. For the ADC that's probably OK but powering off the DAC does risk
being audible in the output; that does depend on the hardware, though.
It should do the right thing, I think, but checking for audio artefacts
would be advisable.
It'd probably also help to only do reconfiguration if actually required
rather than always powering down the ADCs and DACs.
> In this version of the patch I removed the line that restores the state when
> setting the sampling rate failed in-between. Is it safe to assume that DAPM will
> not enable the ADC/DAC on other occasions before a valid sampling rate has been
You should always get a chance to do a configuration before the DAC or
ADC is enabled, yes.
> configured? One could reorder aic3x_hw_params to detect the error before the
> first registers are written..
Yes.
More information about the Alsa-devel
mailing list