Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67646dad authored by kunleiz's avatar kunleiz
Browse files

hal: fix incorrect VOIP input device selection

When VoIP starts, enable_aec flag has been set to
true for input stream. But VoIP tx device still
selects normal input device instead of AEC input
device.

Fix this by adding MODE_IN_COMM condition to ensure
proper device is selected..

CRs-Fixed: 2213163
Change-Id: Ib01b0f418e518f32d414deaacc5ae2df289b76c4
parent 146c371e
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -5420,7 +5420,8 @@ static int add_remove_audio_effect(const struct audio_stream *stream,

    lock_input_stream(in);
    pthread_mutex_lock(&in->dev->lock);
    if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) &&
    if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
         in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) &&
            in->enable_aec != enable &&
            (memcmp(&desc.type, FX_IID_AEC, sizeof(effect_uuid_t)) == 0)) {
        in->enable_aec = enable;
@@ -5434,7 +5435,8 @@ static int add_remove_audio_effect(const struct audio_stream *stream,
            (memcmp(&desc.type, FX_IID_NS, sizeof(effect_uuid_t)) == 0)) {
        in->enable_ns = enable;
        if (!in->standby) {
            if (in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) {
            if (in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
                in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) {
                if (enable_disable_effect(in->dev, EFFECT_NS, enable) == ENOSYS)
                    select_devices(in->dev, in->usecase);
            } else
@@ -6673,7 +6675,8 @@ static int adev_update_voice_comm_input_stream(struct stream_in *in,
    bool valid_ch = audio_channel_count_from_in_mask(in->channel_mask) == 1;

#ifndef COMPRESS_VOIP_ENABLED
    if (valid_rate && valid_ch) {
    if (valid_rate && valid_ch &&
        in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) {
        in->usecase = USECASE_AUDIO_RECORD_VOIP;
        in->config = default_pcm_config_voip_copp;
        in->config.period_size = VOIP_IO_BUF_SIZE(in->sample_rate,