[linux-next:master 4305/5346] sound/soc/intel/avs/path.c:181: undefined reference to `intel_nhlt_get_endpoint_blob'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx/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@xxxxxxxxx>

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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux