acp: add ports only when there are ucm devices

This commit is contained in:
Wim Taymans 2023-01-03 13:16:06 +01:00
parent 2eaac9b67a
commit 3595e31124

View file

@ -470,10 +470,12 @@ static void add_profiles(pa_card *impl)
pa_dynarray_append(&impl->out.devices, dev); pa_dynarray_append(&impl->out.devices, dev);
} }
if (impl->use_ucm) { if (impl->use_ucm) {
pa_alsa_ucm_add_ports_combination(NULL, &m->ucm_context, if (m->ucm_context.ucm_devices) {
true, impl->ports, ap, NULL); pa_alsa_ucm_add_ports_combination(NULL, &m->ucm_context,
pa_alsa_ucm_add_ports(&dev->ports, m->proplist, &m->ucm_context, true, impl->ports, ap, NULL);
true, impl, dev->pcm_handle, impl->profile_set->ignore_dB); pa_alsa_ucm_add_ports(&dev->ports, m->proplist, &m->ucm_context,
true, impl, dev->pcm_handle, impl->profile_set->ignore_dB);
}
} }
else else
pa_alsa_path_set_add_ports(m->output_path_set, ap, impl->ports, pa_alsa_path_set_add_ports(m->output_path_set, ap, impl->ports,
@ -492,10 +494,12 @@ static void add_profiles(pa_card *impl)
} }
if (impl->use_ucm) { if (impl->use_ucm) {
pa_alsa_ucm_add_ports_combination(NULL, &m->ucm_context, if (m->ucm_context.ucm_devices) {
false, impl->ports, ap, NULL); pa_alsa_ucm_add_ports_combination(NULL, &m->ucm_context,
pa_alsa_ucm_add_ports(&dev->ports, m->proplist, &m->ucm_context, false, impl->ports, ap, NULL);
false, impl, dev->pcm_handle, impl->profile_set->ignore_dB); pa_alsa_ucm_add_ports(&dev->ports, m->proplist, &m->ucm_context,
false, impl, dev->pcm_handle, impl->profile_set->ignore_dB);
}
} else } else
pa_alsa_path_set_add_ports(m->input_path_set, ap, impl->ports, pa_alsa_path_set_add_ports(m->input_path_set, ap, impl->ports,
dev->ports, NULL); dev->ports, NULL);
@ -1454,20 +1458,26 @@ int acp_card_set_profile(struct acp_card *card, uint32_t new_index, uint32_t fla
if (np->output_mappings) { if (np->output_mappings) {
PA_IDXSET_FOREACH(am, np->output_mappings, idx) { PA_IDXSET_FOREACH(am, np->output_mappings, idx) {
if (impl->use_ucm) if (impl->use_ucm) {
/* Update ports priorities */ /* Update ports priorities */
pa_alsa_ucm_add_ports_combination(am->output.ports, &am->ucm_context, if (am->ucm_context.ucm_devices) {
true, impl->ports, np, NULL); pa_alsa_ucm_add_ports_combination(am->output.ports, &am->ucm_context,
true, impl->ports, np, NULL);
}
}
device_enable(impl, am, &am->output); device_enable(impl, am, &am->output);
} }
} }
if (np->input_mappings) { if (np->input_mappings) {
PA_IDXSET_FOREACH(am, np->input_mappings, idx) { PA_IDXSET_FOREACH(am, np->input_mappings, idx) {
if (impl->use_ucm) if (impl->use_ucm) {
/* Update ports priorities */ /* Update ports priorities */
pa_alsa_ucm_add_ports_combination(am->input.ports, &am->ucm_context, if (am->ucm_context.ucm_devices) {
false, impl->ports, np, NULL); pa_alsa_ucm_add_ports_combination(am->input.ports, &am->ucm_context,
false, impl->ports, np, NULL);
}
}
device_enable(impl, am, &am->input); device_enable(impl, am, &am->input);
} }
} }