[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202305160221.9XgweObz-lkp@intel.com>
Date: Tue, 16 May 2023 03:12:50 +0800
From: kernel test robot <lkp@...el.com>
To: Herve Codina <herve.codina@...tlin.com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
Mark Brown <broonie@...nel.org>
Subject: sound/soc/fsl/fsl_qmc_audio.c:146: undefined reference to
`qmc_chan_write_submit'
Hi Herve,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6
commit: 6ffa0da5c63f8408101d01075709981005eb66ec soc: fsl: cpm1: qmc: Fix test dependency
date: 9 weeks ago
config: powerpc-randconfig-r021-20230515
compiler: powerpc-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6ffa0da5c63f8408101d01075709981005eb66ec
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 6ffa0da5c63f8408101d01075709981005eb66ec
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=powerpc olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202305160221.9XgweObz-lkp@intel.com/
All errors (new ones prefixed by >>):
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_init_scc':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:799: undefined reference to `cpm_line_cr_cmd'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_release_port':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:910: undefined reference to `cpm_uart_freebuf'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_set_termios':
arch/powerpc/include/asm/cpm2.h:117: undefined reference to `__cpm2_setbrg'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_break_ctl':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:205: undefined reference to `cpm_line_cr_cmd'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_request_port':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:890: undefined reference to `cpm_uart_allocbuf'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_init_port':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:1175: undefined reference to `cpm_uart_map_pram'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.c:1241: undefined reference to `cpm_uart_unmap_pram'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.c:1180: undefined reference to `cpm_uart_map_pram'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_startup':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:411: undefined reference to `cpm_line_cr_cmd'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_shutdown':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:478: undefined reference to `cpm_line_cr_cmd'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_console_init':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:1379: undefined reference to `cpm_muram_init'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.o: in function `cpm_uart_console_setup':
drivers/tty/serial/cpm_uart/cpm_uart_core.c:1334: undefined reference to `cpm_line_cr_cmd'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.c:1329: undefined reference to `cpm_line_cr_cmd'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.c:1339: undefined reference to `cpm_uart_allocbuf'
powerpc-linux-ld: drivers/tty/serial/cpm_uart/cpm_uart_core.c:1352: undefined reference to `cpm_line_cr_cmd'
powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.o: in function `qmc_audio_pcm_trigger':
>> sound/soc/fsl/fsl_qmc_audio.c:146: undefined reference to `qmc_chan_write_submit'
>> powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.c:161: undefined reference to `qmc_chan_write_submit'
>> powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.c:171: undefined reference to `qmc_chan_read_submit'
powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.c:186: undefined reference to `qmc_chan_read_submit'
powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.o: in function `qmc_audio_pcm_read_complete':
>> sound/soc/fsl/fsl_qmc_audio.c:120: undefined reference to `qmc_chan_read_submit'
powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.o: in function `qmc_audio_pcm_write_complete':
sound/soc/fsl/fsl_qmc_audio.c:91: undefined reference to `qmc_chan_write_submit'
powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.o: in function `qmc_dai_trigger':
>> sound/soc/fsl/fsl_qmc_audio.c:524: undefined reference to `qmc_chan_stop'
>> powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.c:527: undefined reference to `qmc_chan_reset'
>> powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.c:518: undefined reference to `qmc_chan_start'
>> powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.c:534: undefined reference to `qmc_chan_stop'
powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.o: in function `qmc_dai_hw_params':
>> sound/soc/fsl/fsl_qmc_audio.c:487: undefined reference to `qmc_chan_set_param'
powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.o: in function `qmc_audio_dai_parse':
>> sound/soc/fsl/fsl_qmc_audio.c:608: undefined reference to `devm_qmc_chan_get_byphandle'
>> powerpc-linux-ld: sound/soc/fsl/fsl_qmc_audio.c:619: undefined reference to `qmc_chan_get_info'
vim +146 sound/soc/fsl/fsl_qmc_audio.c
075c7125b11c72 Herve Codina 2023-02-17 101
075c7125b11c72 Herve Codina 2023-02-17 102 static void qmc_audio_pcm_read_complete(void *context, size_t length)
075c7125b11c72 Herve Codina 2023-02-17 103 {
075c7125b11c72 Herve Codina 2023-02-17 104 struct qmc_dai_prtd *prtd = context;
075c7125b11c72 Herve Codina 2023-02-17 105 int ret;
075c7125b11c72 Herve Codina 2023-02-17 106
075c7125b11c72 Herve Codina 2023-02-17 107 if (length != prtd->period_size) {
075c7125b11c72 Herve Codina 2023-02-17 108 dev_err(prtd->qmc_dai->dev, "read complete length = %zu, exp %zu\n",
075c7125b11c72 Herve Codina 2023-02-17 109 length, prtd->period_size);
075c7125b11c72 Herve Codina 2023-02-17 110 }
075c7125b11c72 Herve Codina 2023-02-17 111
075c7125b11c72 Herve Codina 2023-02-17 112 prtd->period_ptr_ended += prtd->period_size;
075c7125b11c72 Herve Codina 2023-02-17 113 if (prtd->period_ptr_ended >= prtd->dma_buffer_end)
075c7125b11c72 Herve Codina 2023-02-17 114 prtd->period_ptr_ended = prtd->dma_buffer_start;
075c7125b11c72 Herve Codina 2023-02-17 115
075c7125b11c72 Herve Codina 2023-02-17 116 prtd->period_ptr_submitted += prtd->period_size;
075c7125b11c72 Herve Codina 2023-02-17 117 if (prtd->period_ptr_submitted >= prtd->dma_buffer_end)
075c7125b11c72 Herve Codina 2023-02-17 118 prtd->period_ptr_submitted = prtd->dma_buffer_start;
075c7125b11c72 Herve Codina 2023-02-17 119
075c7125b11c72 Herve Codina 2023-02-17 @120 ret = qmc_chan_read_submit(prtd->qmc_dai->qmc_chan,
075c7125b11c72 Herve Codina 2023-02-17 121 prtd->period_ptr_submitted, prtd->period_size,
075c7125b11c72 Herve Codina 2023-02-17 122 qmc_audio_pcm_read_complete, prtd);
075c7125b11c72 Herve Codina 2023-02-17 123 if (ret) {
075c7125b11c72 Herve Codina 2023-02-17 124 dev_err(prtd->qmc_dai->dev, "read_submit failed %d\n",
075c7125b11c72 Herve Codina 2023-02-17 125 ret);
075c7125b11c72 Herve Codina 2023-02-17 126 }
075c7125b11c72 Herve Codina 2023-02-17 127
075c7125b11c72 Herve Codina 2023-02-17 128 snd_pcm_period_elapsed(prtd->substream);
075c7125b11c72 Herve Codina 2023-02-17 129 }
075c7125b11c72 Herve Codina 2023-02-17 130
075c7125b11c72 Herve Codina 2023-02-17 131 static int qmc_audio_pcm_trigger(struct snd_soc_component *component,
075c7125b11c72 Herve Codina 2023-02-17 132 struct snd_pcm_substream *substream, int cmd)
075c7125b11c72 Herve Codina 2023-02-17 133 {
075c7125b11c72 Herve Codina 2023-02-17 134 struct qmc_dai_prtd *prtd = substream->runtime->private_data;
075c7125b11c72 Herve Codina 2023-02-17 135 int ret;
075c7125b11c72 Herve Codina 2023-02-17 136
075c7125b11c72 Herve Codina 2023-02-17 137 if (!prtd->qmc_dai) {
075c7125b11c72 Herve Codina 2023-02-17 138 dev_err(component->dev, "qmc_dai is not set\n");
075c7125b11c72 Herve Codina 2023-02-17 139 return -EINVAL;
075c7125b11c72 Herve Codina 2023-02-17 140 }
075c7125b11c72 Herve Codina 2023-02-17 141
075c7125b11c72 Herve Codina 2023-02-17 142 switch (cmd) {
075c7125b11c72 Herve Codina 2023-02-17 143 case SNDRV_PCM_TRIGGER_START:
075c7125b11c72 Herve Codina 2023-02-17 144 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
075c7125b11c72 Herve Codina 2023-02-17 145 /* Submit first chunk ... */
075c7125b11c72 Herve Codina 2023-02-17 @146 ret = qmc_chan_write_submit(prtd->qmc_dai->qmc_chan,
075c7125b11c72 Herve Codina 2023-02-17 147 prtd->period_ptr_submitted, prtd->period_size,
075c7125b11c72 Herve Codina 2023-02-17 148 qmc_audio_pcm_write_complete, prtd);
075c7125b11c72 Herve Codina 2023-02-17 149 if (ret) {
075c7125b11c72 Herve Codina 2023-02-17 150 dev_err(component->dev, "write_submit failed %d\n",
075c7125b11c72 Herve Codina 2023-02-17 151 ret);
075c7125b11c72 Herve Codina 2023-02-17 152 return ret;
075c7125b11c72 Herve Codina 2023-02-17 153 }
075c7125b11c72 Herve Codina 2023-02-17 154
075c7125b11c72 Herve Codina 2023-02-17 155 /* ... prepare next one ... */
075c7125b11c72 Herve Codina 2023-02-17 156 prtd->period_ptr_submitted += prtd->period_size;
075c7125b11c72 Herve Codina 2023-02-17 157 if (prtd->period_ptr_submitted >= prtd->dma_buffer_end)
075c7125b11c72 Herve Codina 2023-02-17 158 prtd->period_ptr_submitted = prtd->dma_buffer_start;
075c7125b11c72 Herve Codina 2023-02-17 159
075c7125b11c72 Herve Codina 2023-02-17 160 /* ... and send it */
075c7125b11c72 Herve Codina 2023-02-17 @161 ret = qmc_chan_write_submit(prtd->qmc_dai->qmc_chan,
075c7125b11c72 Herve Codina 2023-02-17 162 prtd->period_ptr_submitted, prtd->period_size,
075c7125b11c72 Herve Codina 2023-02-17 163 qmc_audio_pcm_write_complete, prtd);
075c7125b11c72 Herve Codina 2023-02-17 164 if (ret) {
075c7125b11c72 Herve Codina 2023-02-17 165 dev_err(component->dev, "write_submit failed %d\n",
075c7125b11c72 Herve Codina 2023-02-17 166 ret);
075c7125b11c72 Herve Codina 2023-02-17 167 return ret;
075c7125b11c72 Herve Codina 2023-02-17 168 }
075c7125b11c72 Herve Codina 2023-02-17 169 } else {
075c7125b11c72 Herve Codina 2023-02-17 170 /* Submit first chunk ... */
075c7125b11c72 Herve Codina 2023-02-17 @171 ret = qmc_chan_read_submit(prtd->qmc_dai->qmc_chan,
075c7125b11c72 Herve Codina 2023-02-17 172 prtd->period_ptr_submitted, prtd->period_size,
075c7125b11c72 Herve Codina 2023-02-17 173 qmc_audio_pcm_read_complete, prtd);
075c7125b11c72 Herve Codina 2023-02-17 174 if (ret) {
075c7125b11c72 Herve Codina 2023-02-17 175 dev_err(component->dev, "read_submit failed %d\n",
075c7125b11c72 Herve Codina 2023-02-17 176 ret);
075c7125b11c72 Herve Codina 2023-02-17 177 return ret;
075c7125b11c72 Herve Codina 2023-02-17 178 }
075c7125b11c72 Herve Codina 2023-02-17 179
075c7125b11c72 Herve Codina 2023-02-17 180 /* ... prepare next one ... */
075c7125b11c72 Herve Codina 2023-02-17 181 prtd->period_ptr_submitted += prtd->period_size;
075c7125b11c72 Herve Codina 2023-02-17 182 if (prtd->period_ptr_submitted >= prtd->dma_buffer_end)
075c7125b11c72 Herve Codina 2023-02-17 183 prtd->period_ptr_submitted = prtd->dma_buffer_start;
075c7125b11c72 Herve Codina 2023-02-17 184
075c7125b11c72 Herve Codina 2023-02-17 185 /* ... and send it */
075c7125b11c72 Herve Codina 2023-02-17 186 ret = qmc_chan_read_submit(prtd->qmc_dai->qmc_chan,
075c7125b11c72 Herve Codina 2023-02-17 187 prtd->period_ptr_submitted, prtd->period_size,
075c7125b11c72 Herve Codina 2023-02-17 188 qmc_audio_pcm_read_complete, prtd);
075c7125b11c72 Herve Codina 2023-02-17 189 if (ret) {
075c7125b11c72 Herve Codina 2023-02-17 190 dev_err(component->dev, "write_submit failed %d\n",
075c7125b11c72 Herve Codina 2023-02-17 191 ret);
075c7125b11c72 Herve Codina 2023-02-17 192 return ret;
075c7125b11c72 Herve Codina 2023-02-17 193 }
075c7125b11c72 Herve Codina 2023-02-17 194 }
075c7125b11c72 Herve Codina 2023-02-17 195 break;
075c7125b11c72 Herve Codina 2023-02-17 196
075c7125b11c72 Herve Codina 2023-02-17 197 case SNDRV_PCM_TRIGGER_RESUME:
075c7125b11c72 Herve Codina 2023-02-17 198 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
075c7125b11c72 Herve Codina 2023-02-17 199 break;
075c7125b11c72 Herve Codina 2023-02-17 200
075c7125b11c72 Herve Codina 2023-02-17 201 case SNDRV_PCM_TRIGGER_STOP:
075c7125b11c72 Herve Codina 2023-02-17 202 case SNDRV_PCM_TRIGGER_SUSPEND:
075c7125b11c72 Herve Codina 2023-02-17 203 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
075c7125b11c72 Herve Codina 2023-02-17 204 break;
075c7125b11c72 Herve Codina 2023-02-17 205
075c7125b11c72 Herve Codina 2023-02-17 206 default:
075c7125b11c72 Herve Codina 2023-02-17 207 return -EINVAL;
075c7125b11c72 Herve Codina 2023-02-17 208 }
075c7125b11c72 Herve Codina 2023-02-17 209
075c7125b11c72 Herve Codina 2023-02-17 210 return 0;
075c7125b11c72 Herve Codina 2023-02-17 211 }
075c7125b11c72 Herve Codina 2023-02-17 212
:::::: The code at line 146 was first introduced by commit
:::::: 075c7125b11c72e7933401d73000d6d151196072 ASoC: fsl: Add support for QMC audio
:::::: TO: Herve Codina <herve.codina@...tlin.com>
:::::: CC: Mark Brown <broonie@...nel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
View attachment "config" of type "text/plain" (175371 bytes)
Powered by blists - more mailing lists