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@xxxxxxxxx> 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@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip