Commit fc5f263e authored by Jaroslav Kysela's avatar Jaroslav Kysela Committed by Tanu Kaskinen
Browse files

ucm: fix the port / ucm device activation on boot



The UCM device must be activated using the pa_alsa_ucm_set_port()
call on boot (the sink creation time). In case when the
mixer controls are not defined for the application in the
UCM configuration, the mixer_handle is NULL.

Call the pa_alsa_ucm_set_port() before the mixer_handle check.
Signed-off-by: Jaroslav Kysela's avatarJaroslav Kysela <perex@perex.cz>
parent 77d00b1c
......@@ -2138,6 +2138,15 @@ static int setup_mixer(struct userdata *u, bool ignore_dB) {
pa_assert(u);
/* This code is before the u->mixer_handle check, because if the UCM
* configuration doesn't specify volume or mute controls, u->mixer_handle
* will be NULL, but the UCM device enable sequence will still need to be
* executed. */
if (u->sink->active_port && u->ucm_context) {
if (pa_alsa_ucm_set_port(u->ucm_context, u->sink->active_port, true) < 0)
return -1;
}
if (!u->mixer_handle)
return 0;
......@@ -2155,10 +2164,6 @@ static int setup_mixer(struct userdata *u, bool ignore_dB) {
} else {
pa_alsa_ucm_port_data *data;
/* First activate the port on the UCM side */
if (pa_alsa_ucm_set_port(u->ucm_context, u->sink->active_port, true) < 0)
return -1;
data = PA_DEVICE_PORT_DATA(u->sink->active_port);
/* Now activate volume controls, if any */
......
......@@ -1844,6 +1844,15 @@ static int setup_mixer(struct userdata *u, bool ignore_dB) {
pa_assert(u);
/* This code is before the u->mixer_handle check, because if the UCM
* configuration doesn't specify volume or mute controls, u->mixer_handle
* will be NULL, but the UCM device enable sequence will still need to be
* executed. */
if (u->source->active_port && u->ucm_context) {
if (pa_alsa_ucm_set_port(u->ucm_context, u->source->active_port, false) < 0)
return -1;
}
if (!u->mixer_handle)
return 0;
......@@ -1861,10 +1870,6 @@ static int setup_mixer(struct userdata *u, bool ignore_dB) {
} else {
pa_alsa_ucm_port_data *data;
/* First activate the port on the UCM side */
if (pa_alsa_ucm_set_port(u->ucm_context, u->source->active_port, false) < 0)
return -1;
data = PA_DEVICE_PORT_DATA(u->source->active_port);
/* Now activate volume controls, if any */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment