Re: Need help fixing pop/click artifacts in an ASOC driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 15, 2018 at 01:55:06AM +0200, Dimitris Papavasiliou wrote:
> On 11/15/2018 01:02 AM, Mark Brown wrote:
> > I've no idea what you're proposing, sorry.

> I mentioned it in the message you replied to initially, so you
> can consult that for more details if you want, but I'll give a
> summary below:

That was rather a long mail and I got a bit lost about what the proposal
was.

> As far as I could determine experimentally, switching clocks when
> the DAC is not suspended seems to result in a spike at the input
> of the DAC, the level of which doesn't depend on the digital
> volume setting (so that it's always very loud).  I tried various

This is fairly normal; the DAC is partly digital.

> Avoiding the spike instead of relying on muting seems preferable,
> but, since the power state of the PCM5122 is manipulated by the
> CODEC driver, in response to requests to set the bias level, I'm
> concerned about potential race conditions.

Given that there's no substantial delays in the power up/down paths of
the driver you probably want to set idle_bias_off and possibly also
configuring ignore_pmdown_time to force immediate poweroff.  That should
get the device powered down rapidly, though bouncing the power on and
off all the time isn't great.  If you do need ignore_pmdown_time then
it's probably better to add a higher level interface that allows the
machine driver to cancel all power down timers.

> if (no_switch_needed)
>     return;
> 
> snd_soc_dapm_mutex_lock(dapm);
> force = (snd_soc_dapm_get_bias_level(dapm) != SND_SOC_BIAS_OFF);
> 
> if (force)
>     snd_soc_dapm_force_bias_level(dapm, SND_SOC_BIAS_OFF);
> 
> /* Switch the clock here. */
> 
> ...
> 
> if (force)
>     snd_soc_dapm_sync_unlocked(dapm);
> 
> snd_soc_dapm_mutex_unlock(dapm);

This is not a good idea, fiddling around with DAPM internals from
drivers is going to be very fragile as things change in future.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux