On Thu, Jun 29, 2023 at 7:39 PM Mark Brown <broonie@xxxxxxxxxx> wrote: > On Thu, Jun 29, 2023 at 09:37:51AM +0800, Shengjiu Wang wrote: > > Implement the ASRC memory to memory function using > > the v4l2 framework, user can use this function with > > v4l2 ioctl interface. > > > > User send the output and capture buffer to driver and > > driver store the converted data to the capture buffer. > > > > This feature can be shared by ASRC and EASRC drivers > > > > Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx> > > --- > > sound/soc/fsl/Kconfig | 13 + > > sound/soc/fsl/Makefile | 2 + > > sound/soc/fsl/fsl_asrc_m2m.c | 878 +++++++++++++++++++++++++++++++++++ > > sound/soc/fsl/fsl_asrc_m2m.h | 48 ++ > > This feels like the bit where we interface v4l to ASoC should be a > separate library, there shouldn't be anything device specific about > getting an audio stream into a block of memory. I'm thinking something > like the way we handle dmaengine here. > > I've not dug into the code yet though. > Users may want to get the ASRC output in the user space, then do mixing with other streams before sending to ALSA. As there is no such API in ASoC, the best interface I found is the V4L2, but I need to do a little modification of the V4L2 API, extend it for audio usage. Could you please suggest more about the "separate library"? Should I place this "sound/soc/fsl/fsl_asrc_m2m.c" in another folder? best regards wang shengjiu