[alsa-devel] [PATCH v2] tlv320aic3x: disable ADC/DAC while changing clock
dg at emlix.com
Wed Apr 1 18:21:19 CEST 2009
On 04/01/2009 05:24 PM, Mark Brown wrote:
> 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
It was my impression that it is up to the pcm part to install these
constraints as this is where SNDRV_PCM_INFO_JOINT_DUPLEX can be put into
the snd_pcm_hardware structure.
>>> 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.
I can't hear any artefacts with my cheap headphones.
The delayed close is audible, though.
> It'd probably also help to only do reconfiguration if actually required
> rather than always powering down the ADCs and DACs.
That's what is done in these lines at the very first in aic3x_hw_params:
+ if (aic3x->format == params_format(params) &&
+ aic3x->rate == params_rate(params))
+ return 0;
>> One could reorder aic3x_hw_params to detect the error before the
>> first registers are written..
I'll make it three patches then:
- one to remove the redundant actions on bias level off
- one to reorder hw_params
- and one to fix the bug
Dipl.-Math. Daniel Glöckner, emlix GmbH, http://www.emlix.com
Fon +49 551 30664-0, Fax -11, Bahnhofsallee 1b, 37081 Göttingen, Germany
Geschäftsführung: Dr. Uwe Kracke, Dr. Cord Seele, Ust-IdNr.: DE 205 198 055
Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160
emlix - your embedded linux partner
More information about the Alsa-devel