[PATCH] ASoC: SOF - topology - do not change the link trigger order for pre-1.4 firmware

kbuild test robot lkp at intel.com
Sat Feb 22 10:48:40 CET 2020


Hi Jaroslav,

I love your patch! Yet something to improve:

[auto build test ERROR on asoc/for-next]
[also build test ERROR on v5.6-rc2 next-20200221]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Jaroslav-Kysela/ASoC-SOF-topology-do-not-change-the-link-trigger-order-for-pre-1-4-firmware/20200222-155003
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: c6x-allyesconfig (attached as .config)
compiler: c6x-elf-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=c6x 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   sound/soc/sof/topology.c: In function 'sof_link_load':
>> sound/soc/sof/topology.c:3114:34: error: 'sdev' undeclared (first use in this function); did you mean 'cdev'?
     struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
                                     ^~~~
                                     cdev
   sound/soc/sof/topology.c:3114:34: note: each undeclared identifier is reported only once for each function it appears in

vim +3114 sound/soc/sof/topology.c

  3105	
  3106	/* DAI link - used for any driver specific init */
  3107	static int sof_link_load(struct snd_soc_component *scomp, int index,
  3108				 struct snd_soc_dai_link *link,
  3109				 struct snd_soc_tplg_link_config *cfg)
  3110	{
  3111		struct snd_soc_tplg_private *private = &cfg->priv;
  3112		struct sof_ipc_dai_config config;
  3113		struct snd_soc_tplg_hw_config *hw_config;
> 3114		struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
  3115		int num_hw_configs;
  3116		int ret;
  3117		int i = 0;
  3118	
  3119		if (!link->platforms) {
  3120			dev_err(scomp->dev, "error: no platforms\n");
  3121			return -EINVAL;
  3122		}
  3123		link->platforms->name = dev_name(scomp->dev);
  3124	
  3125		/*
  3126		 * Set nonatomic property for FE dai links as their trigger action
  3127		 * involves IPC's.
  3128		 */
  3129		if (!link->no_pcm) {
  3130			link->nonatomic = true;
  3131	
  3132			/* this causes DSP panic on firmware v1.3 */
  3133			if (v->abi_version > SOF_ABI_VER(3, 7, 0)) {
  3134				/* set trigger order */
  3135				link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
  3136				link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
  3137			}
  3138	
  3139			/* nothing more to do for FE dai links */
  3140			return 0;
  3141		}
  3142	
  3143		/* check we have some tokens - we need at least DAI type */
  3144		if (le32_to_cpu(private->size) == 0) {
  3145			dev_err(scomp->dev, "error: expected tokens for DAI, none found\n");
  3146			return -EINVAL;
  3147		}
  3148	
  3149		/* Send BE DAI link configurations to DSP */
  3150		memset(&config, 0, sizeof(config));
  3151	
  3152		/* get any common DAI tokens */
  3153		ret = sof_parse_tokens(scomp, &config, dai_link_tokens,
  3154				       ARRAY_SIZE(dai_link_tokens), private->array,
  3155				       le32_to_cpu(private->size));
  3156		if (ret != 0) {
  3157			dev_err(scomp->dev, "error: parse link tokens failed %d\n",
  3158				le32_to_cpu(private->size));
  3159			return ret;
  3160		}
  3161	
  3162		/*
  3163		 * DAI links are expected to have at least 1 hw_config.
  3164		 * But some older topologies might have no hw_config for HDA dai links.
  3165		 */
  3166		num_hw_configs = le32_to_cpu(cfg->num_hw_configs);
  3167		if (!num_hw_configs) {
  3168			if (config.type != SOF_DAI_INTEL_HDA) {
  3169				dev_err(scomp->dev, "error: unexpected DAI config count %d!\n",
  3170					le32_to_cpu(cfg->num_hw_configs));
  3171				return -EINVAL;
  3172			}
  3173		} else {
  3174			dev_dbg(scomp->dev, "tplg: %d hw_configs found, default id: %d!\n",
  3175				cfg->num_hw_configs, le32_to_cpu(cfg->default_hw_config_id));
  3176	
  3177			for (i = 0; i < num_hw_configs; i++) {
  3178				if (cfg->hw_config[i].id == cfg->default_hw_config_id)
  3179					break;
  3180			}
  3181	
  3182			if (i == num_hw_configs) {
  3183				dev_err(scomp->dev, "error: default hw_config id: %d not found!\n",
  3184					le32_to_cpu(cfg->default_hw_config_id));
  3185				return -EINVAL;
  3186			}
  3187		}
  3188	
  3189		/* configure dai IPC message */
  3190		hw_config = &cfg->hw_config[i];
  3191	
  3192		config.hdr.cmd = SOF_IPC_GLB_DAI_MSG | SOF_IPC_DAI_CONFIG;
  3193		config.format = le32_to_cpu(hw_config->fmt);
  3194	
  3195		/* now load DAI specific data and send IPC - type comes from token */
  3196		switch (config.type) {
  3197		case SOF_DAI_INTEL_SSP:
  3198			ret = sof_link_ssp_load(scomp, index, link, cfg, hw_config,
  3199						&config);
  3200			break;
  3201		case SOF_DAI_INTEL_DMIC:
  3202			ret = sof_link_dmic_load(scomp, index, link, cfg, hw_config,
  3203						 &config);
  3204			break;
  3205		case SOF_DAI_INTEL_HDA:
  3206			ret = sof_link_hda_load(scomp, index, link, cfg, hw_config,
  3207						&config);
  3208			break;
  3209		case SOF_DAI_INTEL_ALH:
  3210			ret = sof_link_alh_load(scomp, index, link, cfg, hw_config,
  3211						&config);
  3212			break;
  3213		case SOF_DAI_IMX_SAI:
  3214			ret = sof_link_sai_load(scomp, index, link, cfg, hw_config,
  3215						&config);
  3216			break;
  3217		case SOF_DAI_IMX_ESAI:
  3218			ret = sof_link_esai_load(scomp, index, link, cfg, hw_config,
  3219						 &config);
  3220			break;
  3221		default:
  3222			dev_err(scomp->dev, "error: invalid DAI type %d\n",
  3223				config.type);
  3224			ret = -EINVAL;
  3225			break;
  3226		}
  3227		if (ret < 0)
  3228			return ret;
  3229	
  3230		return 0;
  3231	}
  3232	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 51658 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20200222/92df2397/attachment-0001.gz>


More information about the Alsa-devel mailing list