* [linux-next:master 4305/5346] sound/soc/intel/avs/path.c:181: undefined reference to `intel_nhlt_get_endpoint_blob'
@ 2022-04-21 21:55 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-04-21 21:55 UTC (permalink / raw)
To: Cezary Rojewski
Cc: kbuild-all, Linux Memory Management List, Mark Brown,
Amadeusz Sławiński
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 65eb92e4c9f0a962656f131521f4fbc0d24c9d4c
commit: 274d79e5187558078fcf107445fe56ab2fbe4c97 [4305/5346] ASoC: Intel: avs: Configure modules according to their type
config: ia64-randconfig-r006-20220420 (https://download.01.org/0day-ci/archive/20220422/202204220546.342iZJyv-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.2.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/next/linux-next.git/commit/?id=274d79e5187558078fcf107445fe56ab2fbe4c97
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 274d79e5187558078fcf107445fe56ab2fbe4c97
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
`adc3xxx_i2c_remove' referenced in section `.data' of sound/soc/codecs/tlv320adc3xxx.o: defined in discarded section `.exit.text' of sound/soc/codecs/tlv320adc3xxx.o
ia64-linux-ld: sound/soc/intel/avs/path.o: in function `avs_copier_create':
>> sound/soc/intel/avs/path.c:181: undefined reference to `intel_nhlt_get_endpoint_blob'
>> ia64-linux-ld: sound/soc/intel/avs/path.c:205: undefined reference to `intel_nhlt_get_endpoint_blob'
vim +181 sound/soc/intel/avs/path.c
142
143 static int avs_copier_create(struct avs_dev *adev, struct avs_path_module *mod)
144 {
145 struct nhlt_acpi_table *nhlt = adev->nhlt;
146 struct avs_tplg_module *t = mod->template;
147 struct avs_copier_cfg *cfg;
148 struct nhlt_specific_cfg *ep_blob;
149 union avs_connector_node_id node_id = {0};
150 size_t cfg_size, data_size = 0;
151 void *data = NULL;
152 u32 dma_type;
153 int ret;
154
155 dma_type = t->cfg_ext->copier.dma_type;
156 node_id.dma_type = dma_type;
157
158 switch (dma_type) {
159 struct avs_audio_format *fmt;
160 int direction;
161
162 case AVS_DMA_I2S_LINK_OUTPUT:
163 case AVS_DMA_I2S_LINK_INPUT:
164 if (avs_dma_type_is_input(dma_type))
165 direction = SNDRV_PCM_STREAM_CAPTURE;
166 else
167 direction = SNDRV_PCM_STREAM_PLAYBACK;
168
169 if (t->cfg_ext->copier.blob_fmt)
170 fmt = t->cfg_ext->copier.blob_fmt;
171 else if (direction == SNDRV_PCM_STREAM_CAPTURE)
172 fmt = t->in_fmt;
173 else
174 fmt = t->cfg_ext->copier.out_fmt;
175
176 ep_blob = intel_nhlt_get_endpoint_blob(adev->dev,
177 nhlt, t->cfg_ext->copier.vindex.i2s.instance,
178 NHLT_LINK_SSP, fmt->valid_bit_depth, fmt->bit_depth,
179 fmt->num_channels, fmt->sampling_freq, direction,
180 NHLT_DEVICE_I2S);
> 181 if (!ep_blob) {
182 dev_err(adev->dev, "no I2S ep_blob found\n");
183 return -ENOENT;
184 }
185
186 data = ep_blob->caps;
187 data_size = ep_blob->size;
188 /* I2S gateway's vindex is statically assigned in topology */
189 node_id.vindex = t->cfg_ext->copier.vindex.val;
190
191 break;
192
193 case AVS_DMA_DMIC_LINK_INPUT:
194 direction = SNDRV_PCM_STREAM_CAPTURE;
195
196 if (t->cfg_ext->copier.blob_fmt)
197 fmt = t->cfg_ext->copier.blob_fmt;
198 else
199 fmt = t->in_fmt;
200
201 ep_blob = intel_nhlt_get_endpoint_blob(adev->dev, nhlt, 0,
202 NHLT_LINK_DMIC, fmt->valid_bit_depth,
203 fmt->bit_depth, fmt->num_channels,
204 fmt->sampling_freq, direction, NHLT_DEVICE_DMIC);
> 205 if (!ep_blob) {
206 dev_err(adev->dev, "no DMIC ep_blob found\n");
207 return -ENOENT;
208 }
209
210 data = ep_blob->caps;
211 data_size = ep_blob->size;
212 /* DMIC gateway's vindex is statically assigned in topology */
213 node_id.vindex = t->cfg_ext->copier.vindex.val;
214
215 break;
216
217 case AVS_DMA_HDA_HOST_OUTPUT:
218 case AVS_DMA_HDA_HOST_INPUT:
219 /* HOST gateway's vindex is dynamically assigned with DMA id */
220 node_id.vindex = mod->owner->owner->dma_id;
221 break;
222
223 case AVS_DMA_HDA_LINK_OUTPUT:
224 case AVS_DMA_HDA_LINK_INPUT:
225 node_id.vindex = t->cfg_ext->copier.vindex.val |
226 mod->owner->owner->dma_id;
227 break;
228
229 case INVALID_OBJECT_ID:
230 default:
231 node_id = INVALID_NODE_ID;
232 break;
233 }
234
235 cfg_size = sizeof(*cfg) + data_size;
236 /* Every config-BLOB contains gateway attributes. */
237 if (data_size)
238 cfg_size -= sizeof(cfg->gtw_cfg.config.attrs);
239
240 cfg = kzalloc(cfg_size, GFP_KERNEL);
241 if (!cfg)
242 return -ENOMEM;
243
244 cfg->base.cpc = t->cfg_base->cpc;
245 cfg->base.ibs = t->cfg_base->ibs;
246 cfg->base.obs = t->cfg_base->obs;
247 cfg->base.is_pages = t->cfg_base->is_pages;
248 cfg->base.audio_fmt = *t->in_fmt;
249 cfg->out_fmt = *t->cfg_ext->copier.out_fmt;
250 cfg->feature_mask = t->cfg_ext->copier.feature_mask;
251 cfg->gtw_cfg.node_id = node_id;
252 cfg->gtw_cfg.dma_buffer_size = t->cfg_ext->copier.dma_buffer_size;
253 /* config_length in DWORDs */
254 cfg->gtw_cfg.config_length = DIV_ROUND_UP(data_size, 4);
255 if (data)
256 memcpy(&cfg->gtw_cfg.config, data, data_size);
257
258 mod->gtw_attrs = cfg->gtw_cfg.config.attrs;
259
260 ret = avs_dsp_init_module(adev, mod->module_id, mod->owner->instance_id,
261 t->core_id, t->domain, cfg, cfg_size,
262 &mod->instance_id);
263 kfree(cfg);
264 return ret;
265 }
266
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-04-21 21:55 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-21 21:55 [linux-next:master 4305/5346] sound/soc/intel/avs/path.c:181: undefined reference to `intel_nhlt_get_endpoint_blob' kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox