Thread (10 messages) 10 messages, 3 authors, 2024-12-13

Re: [PATCH v7 4/6] ASoC: fsl_asrc_m2m: Add memory to memory function

From: Mark Brown <broonie@kernel.org>
Date: 2024-12-12 11:45:00
Also in: alsa-devel, linux-sound, lkml

On Thu, Dec 12, 2024 at 03:45:07PM +0800, Shengjiu Wang wrote:
Implement the ASRC memory to memory function using
the compress framework, user can use this function with
compress ioctl interface.

This feature can be shared by ASRC and EASRC drivers
This breaks an x86 allmodconfig build (using GCC 13):

/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:186:68: warning: ‘struct snd_compr_task_runtime’ declared inside parameter list will not be visible outside of this definition or declaration
  186 | static void asrc_m2m_device_run(struct fsl_asrc_pair *pair, struct snd_compr_task_runtime *task)
      |                                                                    ^~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c: In function ‘asrc_m2m_device_run’:
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:212:26: error: invalid use of undefined type ‘struct snd_compr_task_runtime’
  212 |         in_buf_len = task->input_size;
      |                          ^~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:279:13: error: invalid use of undefined type ‘struct snd_compr_task_runtime’
  279 |         task->output_size = out_dma_len;
      |             ^~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c: At top level:
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:451:49: warning: ‘struct snd_compr_task_runtime’ declared inside parameter list will not be visible outside of this definition or declaration
  451 |                                          struct snd_compr_task_runtime *task)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c: In function ‘fsl_asrc_m2m_comp_task_create’:
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:465:13: error: invalid use of undefined type ‘struct snd_compr_task_runtime’
  465 |         task->input = dma_buf_export(&exp_info_in);
      |             ^~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:466:24: error: invalid use of undefined type ‘struct snd_compr_task_runtime’
  466 |         if (IS_ERR(task->input)) {
      |                        ^~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:467:35: error: invalid use of undefined type ‘struct snd_compr_task_runtime’
  467 |                 ret = PTR_ERR(task->input);
      |                                   ^~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:475:13: error: invalid use of undefined type ‘struct snd_compr_task_runtime’
  475 |         task->output = dma_buf_export(&exp_info_out);
      |             ^~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:476:24: error: invalid use of undefined type ‘struct snd_compr_task_runtime’
  476 |         if (IS_ERR(task->output)) {
      |                        ^~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:477:35: error: invalid use of undefined type ‘struct snd_compr_task_runtime’
  477 |                 ret = PTR_ERR(task->output);
      |                                   ^~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c: At top level:
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:523:48: warning: ‘struct snd_compr_task_runtime’ declared inside parameter list will not be visible outside of this definition or declaration
  523 |                                         struct snd_compr_task_runtime *task)
      |                                                ^~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c: In function ‘fsl_asrc_m2m_comp_task_start’:
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:528:35: error: passing argument 2 of ‘asrc_m2m_device_run’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  528 |         asrc_m2m_device_run(pair, task);
      |                                   ^~~~
      |                                   |
      |                                   struct snd_compr_task_runtime *
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:186:92: note: expected ‘struct snd_compr_task_runtime *’ but argument is of type ‘struct snd_compr_task_runtime *’
  186 | static void asrc_m2m_device_run(struct fsl_asrc_pair *pair, struct snd_compr_task_runtime *task)
      |                                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c: At top level:
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:534:47: warning: ‘struct snd_compr_task_runtime’ declared inside parameter list will not be visible outside of this definition or declaration
  534 |                                        struct snd_compr_task_runtime *task)
      |                                               ^~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:540:47: warning: ‘struct snd_compr_task_runtime’ declared inside parameter list will not be visible outside of this definition or declaration
  540 |                                        struct snd_compr_task_runtime *task)
      |                                               ^~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:623:10: error: ‘struct snd_compr_ops’ has no member named ‘task_create’
  623 |         .task_create = fsl_asrc_m2m_comp_task_create,
      |          ^~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:623:24: warning: excess elements in struct initializer
  623 |         .task_create = fsl_asrc_m2m_comp_task_create,
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:623:24: note: (near initialization for ‘fsl_asrc_m2m_compr_ops’)
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:624:10: error: ‘struct snd_compr_ops’ has no member named ‘task_start’
  624 |         .task_start = fsl_asrc_m2m_comp_task_start,
      |          ^~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:624:23: warning: excess elements in struct initializer
  624 |         .task_start = fsl_asrc_m2m_comp_task_start,
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:624:23: note: (near initialization for ‘fsl_asrc_m2m_compr_ops’)
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:625:10: error: ‘struct snd_compr_ops’ has no member named ‘task_stop’
  625 |         .task_stop = fsl_asrc_m2m_comp_task_stop,
      |          ^~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:625:22: warning: excess elements in struct initializer
  625 |         .task_stop = fsl_asrc_m2m_comp_task_stop,
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:625:22: note: (near initialization for ‘fsl_asrc_m2m_compr_ops’)
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:626:10: error: ‘struct snd_compr_ops’ has no member named ‘task_free’
  626 |         .task_free = fsl_asrc_m2m_comp_task_free,
      |          ^~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:626:22: warning: excess elements in struct initializer
  626 |         .task_free = fsl_asrc_m2m_comp_task_free,
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:626:22: note: (near initialization for ‘fsl_asrc_m2m_compr_ops’)
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c: In function ‘fsl_asrc_m2m_init’:
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:701:41: error: ‘SND_COMPRESS_ACCEL’ undeclared (first use in this function); did you mean ‘SNDRV_COMPRESS_AVAIL’?
  701 |         ret = snd_compress_new(card, 0, SND_COMPRESS_ACCEL, "ASRC M2M", compr);
      |                                         ^~~~~~~~~~~~~~~~~~
      |                                         SNDRV_COMPRESS_AVAIL
/build/stage/linux/sound/soc/fsl/fsl_asrc_m2m.c:701:41: note: each undeclared identifier is reported only once for each function it appears in
cc1: some warnings being treated as errors

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help