RE: Re: [PATCH 4/4] ASoC: wm8524: Delay some time to follow power up sequency

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

 



> On Wed, Feb 22, 2023 at 07:39:45PM +0800, Chancel Liu wrote:
> 
> > +	switch (cmd) {
> > +	case SNDRV_PCM_TRIGGER_START:
> > +	case SNDRV_PCM_TRIGGER_RESUME:
> > +	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
> > +		mdelay(wm8524->power_up_delay);
> > +		break;
> 
> Doing a 100ms busy wait in atomic context does not seem like a great
> idea, never mind a 1.5s one.  This shouldn't be done in trigger, it
> needs to be done later - digital_mute() might be a better time to hook
> in, though longer delays like this are really quite bad.

Yes, such long time delay in driver is very bad. But this device requires
waiting some time before able to output audio. We have to wait otherwise the
beginning data may be lost.

The power up to audio out timing occurs after MCLK, BCLK and MUTE=1 are ready.
I added the delay in trigger() because some CPU DAI drivers enable BCLK in
trigger(). You suggested moving the delay to digital_mute(). It seems
digital_mute() is called before cpu_dai->trigger. Please correct me if I'm
wrong.

Regards, 
Chancel Liu




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux