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

Commit 1062162e authored by Dhanalakshmi Siddani's avatar Dhanalakshmi Siddani Committed by Gerrit - the friendly Code Review server
Browse files

audio: Add Quad mic mixer controls and EC reference changes for FFV

- Add quad mic mixer controls in audio and sound trigger xmls files.
- Add changes to set EC reference device for FFV.

CRs-Fixed: 2225936
Change-Id: Ife05d9069db2880473f8e6d06ab284c011f935ae
parent 77883a58
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          -->
<audio_platform_info>
    <acdb_ids>
         <device name="SND_DEVICE_IN_HANDSET_QMIC" acdb_id="140"/>
         <device name="SND_DEVICE_IN_HANDSET_6MIC" acdb_id="140"/>
         <device name="SND_DEVICE_IN_HANDSET_8MIC" acdb_id="140"/>
         <device name="SND_DEVICE_IN_EC_REF_LOOPBACK_MONO" acdb_id="140"/>
+24 −0
Original line number Diff line number Diff line
@@ -288,6 +288,30 @@
        <ctl name="DMIC MUX7" value="DMIC4" />
    </path>

    <path name="listen-handset-qmic">
       <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
        <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
        <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
        <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
        <ctl name="SLIM_0_TX Channels" value="Four" />
        <ctl name="SLIM TX5 MUX" value="DEC5" />
        <ctl name="ADC MUX5" value="DMIC" />
        <ctl name="DMIC MUX5" value="DMIC0" />
        <ctl name="DEC5 Volume" value="96" />
        <ctl name="SLIM TX6 MUX" value="DEC6" />
        <ctl name="ADC MUX6" value="DMIC" />
        <ctl name="DMIC MUX6" value="DMIC2" />
        <ctl name="DEC6 Volume" value="96" />
        <ctl name="SLIM TX7 MUX" value="DEC7" />
        <ctl name="ADC MUX7" value="DMIC" />
        <ctl name="DMIC MUX7" value="DMIC1" />
        <ctl name="DEC7 Volume" value="96" />
        <ctl name="SLIM TX8 MUX" value="DEC8" />
        <ctl name="ADC MUX8" value="DMIC" />
        <ctl name="DMIC MUX8" value="DMIC3" />
        <ctl name="DEC8 Volume" value="96" />
    </path>

    <path name="listen-handset-6mic">
        <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
        <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+18 −6
Original line number Diff line number Diff line
@@ -828,7 +828,7 @@ int32_t audio_extn_ffv_read(struct audio_stream_in *stream __unused,
    bytes_to_copy = (bytes <= out_buf_size) ? bytes : out_buf_size;
    memcpy(buffer, process_out_ptr, bytes_to_copy);
    if (bytes_to_copy != out_buf_size)
        ALOGD("%s: out buffer data dropped, copied %d bytes",
        ALOGD("%s: out buffer data dropped, copied %zd bytes",
               __func__, bytes_to_copy);

#ifdef FFV_PCM_DUMP
@@ -893,18 +893,30 @@ void audio_extn_ffv_set_parameters(struct audio_device *adev __unused,
                ALOGE("%s: Invalid ec ref", __func__);
            }
        }

        ret = str_parms_get_int(parms, AUDIO_PARAMETER_FFV_EC_REF_DEVICE, &val);
        if (ret >= 0) {
        ret = -1;
        if (str_parms_get_int(parms, AUDIO_PARAMETER_FFV_EC_REF_DEVICE, &val) >= 0) {
            ret = 1;
            str_parms_del(parms, AUDIO_PARAMETER_FFV_EC_REF_DEVICE);
        } else if (str_parms_get_int(parms, AUDIO_PARAMETER_DEVICE_CONNECT, &val) >= 0) {
            ret = 1;
            str_parms_del(parms, AUDIO_PARAMETER_DEVICE_CONNECT);
        }
        if (ret == 1) {
            if (val & AUDIO_DEVICE_OUT_SPEAKER) {
                ALOGD("%s: capture ec ref from speaker", __func__);
                ffvmod.ec_ref_dev = AUDIO_DEVICE_OUT_SPEAKER;
            } else if (val & AUDIO_DEVICE_OUT_LINE) {
                ALOGD("%s: capture ec ref from line out", __func__);
                ffvmod.ec_ref_dev = AUDIO_DEVICE_OUT_LINE;
            } else {
                ALOGE("%s: Invalid ec ref out device", __func__);
            }
        }

        ret = str_parms_get_int(parms, AUDIO_PARAMETER_DEVICE_DISCONNECT, &val);
        if (ret >= 0) {
            str_parms_del(parms, AUDIO_PARAMETER_DEVICE_DISCONNECT);
            if (val & AUDIO_DEVICE_OUT_LINE) {
                ALOGD("%s: capture ec ref from speaker", __func__);
                ffvmod.ec_ref_dev = AUDIO_DEVICE_OUT_SPEAKER;
            }
        }

+4 −2
Original line number Diff line number Diff line
@@ -585,13 +585,15 @@ void audio_extn_sound_trigger_set_parameters(struct audio_device *adev __unused,
    }

    ret = str_parms_get_int(params, AUDIO_PARAMETER_DEVICE_CONNECT, &val);
    if ((ret >= 0) && audio_is_input_device(val)) {
    if ((ret >= 0) && (audio_is_input_device(val) ||
           (val == AUDIO_DEVICE_OUT_LINE))) {
        event.u.value = val;
        st_dev->st_callback(AUDIO_EVENT_DEVICE_CONNECT, &event);
    }

    ret = str_parms_get_int(params, AUDIO_PARAMETER_DEVICE_DISCONNECT, &val);
    if ((ret >= 0) && audio_is_input_device(val)) {
    if ((ret >= 0) && (audio_is_input_device(val) ||
            (val == AUDIO_DEVICE_OUT_LINE))) {
        event.u.value = val;
        st_dev->st_callback(AUDIO_EVENT_DEVICE_DISCONNECT, &event);
    }
+2 −1
Original line number Diff line number Diff line
@@ -1099,7 +1099,8 @@ int enable_snd_device(struct audio_device *adev,
                                              "true-native-mode");
            adev->native_playback_enabled = true;
        }
        if ((snd_device == SND_DEVICE_IN_HANDSET_6MIC) &&
        if (((snd_device == SND_DEVICE_IN_HANDSET_6MIC) ||
            (snd_device == SND_DEVICE_IN_HANDSET_QMIC)) &&
            (audio_extn_ffv_get_stream() == adev->active_input)) {
            ALOGD("%s: init ec ref loopback", __func__);
            audio_extn_ffv_init_ec_ref_loopback(adev, snd_device);