[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