int err;
snd_trace(UCM, "execute component sequence '%s': %s", cmpt_seq->device ?
- cmpt_seq->device->name : NULL, uc_mgr_enable_str(cmpt_seq->enable));
+ cmpt_seq->device->orig_name : NULL, uc_mgr_enable_str(cmpt_seq->enable));
/* enter component domain and store cdev for the component */
uc_mgr->in_component_domain = 1;
INIT_LIST_HEAD(&device->value_list);
list_add_tail(&device->list, &verb->device_list);
device->name = name;
+ device->orig_name = strdup(name);
+ if (device->orig_name == NULL)
+ return -ENOMEM;
/* in-place evaluation */
err = uc_mgr_evaluate_inplace(uc_mgr, cfg);
if (list_empty(&device->dev_list.list)) {
device->dev_list.type = dst_type;
} else {
- snd_error(UCM, "incompatible device list type ('%s', '%s')", device->name, src);
+ snd_error(UCM, "incompatible device list type ('%s', '%s')", device->orig_name, src);
return -EINVAL;
}
}
index++;
} while (index < 100); /* Safety limit */
if (index >= 100) {
- snd_error(UCM, "too many device name conflicts for '%s'", norm_name);
+ snd_error(UCM, "too many device name conflicts for '%s'", orig_name);
err = -EINVAL;
goto __error;
}
__no_colon:
err = parse_device_index(&norm_name, &index);
if (err < 0) {
- snd_error(UCM, "cannot parse device name '%s'", device->name);
+ snd_error(UCM, "cannot parse device name '%s'", orig_name);
goto __error;
}