On Wed, Jul 24, 2019 at 10:52:00AM +0900, Kuninori Morimoto wrote: > > From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > > Current ALSA SoC is directly using component->driver->ops->xxx, > thus, it is deep nested, and makes code difficult to read, > and is not good for encapsulation. > This patch adds new snd_soc_component_pointer() and use it. > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > --- > +int snd_soc_component_pointer(struct snd_soc_component *component, > + struct snd_pcm_substream *substream) > +{ > + if (component->driver->ops && > + component->driver->ops->pointer) > + return component->driver->ops->pointer(substream); > + > + return 0; > +} > > @@ -1115,13 +1115,10 @@ static snd_pcm_uframes_t soc_pcm_pointer(struct snd_pcm_substream *substream) > for_each_rtdcom(rtd, rtdcom) { > component = rtdcom->component; > > - if (!component->driver->ops || > - !component->driver->ops->pointer) > - continue; > - > + offset = snd_soc_component_pointer(component, substream); > /* FIXME: use 1st pointer */ > - offset = component->driver->ops->pointer(substream); > - break; > + if (offset > 0) > + break; This doesn't feel like it is equivalent to the previous code, is zero not a valid value for pointer to return? Thanks, Charles _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel