Subject: Re: [PATCH v4 0/7] ASoC: fsl: add memory to memory function for ASRC

From: Takashi Iwai <[email-masked]>
Date: Mon, 14 Oct 2024 12:07:05 +0200

On Wed, 25 Sep 2024 08:55:09 +0200,
Shengjiu Wang wrote:
> 
> This function is base on the accelerator implementation
> for compress API:
> https://patchwork.kernel.org/project/alsa-devel/patch/[email-masked]/
> Add it to this patch set.
> 
> Audio signal processing also has the requirement for memory to
> memory similar as Video.
> 
> This asrc memory to memory (memory ->asrc->memory) case is a non
> real time use case.
> 
> User fills the input buffer to the asrc module, after conversion, then asrc
> sends back the output buffer to user. So it is not a traditional ALSA playback
> and capture case.
> 
> Because we had implemented the "memory -> asrc ->i2s device-> codec"
> use case in ALSA.  Now the "memory->asrc->memory" needs
> to reuse the code in asrc driver, so the patch 1 and patch 2 is for refining
> the code to make it can be shared by the "memory->asrc->memory"
> driver.
> 
> Other change is to add memory to memory support for two kinds of i.MX ASRC
> modules.
> 
> changes in v4:
> - remove the RFC tag, no comments receive in v3
> - Add Jaroslav Kysela's patch in this patch set. because it may be
>   better for reviewing in a full patch set.
> - Fix the list_for_each_entry_reverse to list_for_each_entry_safe_reverse
> - Fix some coding style issues in Jaroslav Kysela's patch
> 
> changes in v3:
> - use Jaroslav's suggestion for header file compress_params.h (PATCH 01)
> - remove the ASRC_OUTPUT_FORMAT/ASRC_OUTPUT_RATE definition
> - remove ASRC_RATIO_MOD in this version because it uses .set_metadata()
>   Will wait Jaroslav's update or other better method in the future.
> - Address some comments from Pierre.
> 
> changes in v2:
> - Remove the changes in compress API
> - drop the SNDRV_COMPRESS_SRC_RATIO_MOD
> - drop the SND_AUDIOCODEC_SRC and struct snd_dec_src
> - define private metadata key value
>   ASRC_OUTPUT_FORMAT/ASRC_OUTPUT_RATE/ASRC_RATIO_MOD
> 
> Jaroslav Kysela (1):
>   ALSA: compress_offload: introduce accel operation mode
> 
> Shengjiu Wang (6):
>   ALSA: compress: Add output rate and output format support
>   ASoC: fsl_asrc: define functions for memory to memory usage
>   ASoC: fsl_easrc: define functions for memory to memory usage
>   ASoC: fsl_asrc_m2m: Add memory to memory function
>   ASoC: fsl_asrc: register m2m platform device
>   ASoC: fsl_easrc: register m2m platform device
> 
>  .../sound/designs/compress-accel.rst          | 136 ++++
>  include/sound/compress_driver.h               |  46 ++
>  include/uapi/sound/compress_offload.h         |  63 +-
>  include/uapi/sound/compress_params.h          |  23 +-
>  sound/core/Kconfig                            |   3 +
>  sound/core/compress_offload.c                 | 351 ++++++++-
>  sound/soc/fsl/Kconfig                         |   1 +
>  sound/soc/fsl/Makefile                        |   2 +-
>  sound/soc/fsl/fsl_asrc.c                      | 179 ++++-
>  sound/soc/fsl/fsl_asrc.h                      |   2 +
>  sound/soc/fsl/fsl_asrc_common.h               |  70 ++
>  sound/soc/fsl/fsl_asrc_m2m.c                  | 727 ++++++++++++++++++
>  sound/soc/fsl/fsl_easrc.c                     | 261 ++++++-
>  sound/soc/fsl/fsl_easrc.h                     |   4 +
>  14 files changed, 1851 insertions(+), 17 deletions(-)
>  create mode 100644 Documentation/sound/designs/compress-accel.rst
>  create mode 100644 sound/soc/fsl/fsl_asrc_m2m.c

Are there any objections against this basic design and ABI?

The details of the implementations can be changed in future, but the
basic design and the ABI must be set in stone before merging.

thanks,

Takashi