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 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel