[alsa-devel] [PATCH v4] ASoC: ak4613: call dummy write for PW_MGMT1/3 when Playback
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Tue Dec 5 03:21:43 CET 2017
Hi Takashi, again
> > +static void ak4613_dummy_write(struct work_struct *work)
> > +{
> > + struct ak4613_priv *priv = container_of(work,
> > + struct ak4613_priv,
> > + dummy_write_work);
> > + struct snd_soc_component *component = priv->component;
> > + unsigned int mgmt1;
> > + unsigned int mgmt3;
> > +
> > + /* wait 5 LR clocks */
> > + udelay(5000000 / priv->rate);
> > +
> > + snd_soc_component_read(component, PW_MGMT1, &mgmt1);
> > + snd_soc_component_read(component, PW_MGMT3, &mgmt3);
> > +
> > + snd_soc_component_write(component, PW_MGMT1, mgmt1);
> > + snd_soc_component_write(component, PW_MGMT3, mgmt3);
> > +}
>
> In my understanding, it's better to have care of kernel preemption in
> this case because data transmission is already activated and these
> should be executed as quick as possible to prevent much presentation
> loss.
To avoid v6 patch, I want to know more clearly.
Do you mean it needs spin lock ?
If so lock in trigger, and unlock here ?
Or lock/unlock on each ?
Best regards
---
Kuninori Morimoto
More information about the Alsa-devel
mailing list