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

Commit 3692f40e authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "hal: Update Single mic device from Fluence to ECNS"

parents dabcf028 033c7cb3
Loading
Loading
Loading
Loading
+35 −39
Original line number Original line Diff line number Diff line
@@ -579,12 +579,12 @@ static struct audio_effect_config effect_config_table[GET_IN_DEVICE_INDEX(SND_DE
                                                                0x10EAF, 0x02},
                                                                0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_SM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC)][EFFECT_AEC] = {TX_VOICE_SMECNS_V2, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_SM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC)][EFFECT_NS] = {TX_VOICE_SMECNS_V2, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_SM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC)][EFFECT_AEC] = {TX_VOICE_SMECNS_V2, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_SM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC)][EFFECT_NS] = {TX_VOICE_SMECNS_V2, 0x0, 0x10EAF, 0x02},
};
};


/* ACDB IDs (audio DSP path configuration IDs) for each sound device */
/* ACDB IDs (audio DSP path configuration IDs) for each sound device */
@@ -4242,7 +4242,6 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
    struct audio_device *adev = my_data->adev;
    struct audio_device *adev = my_data->adev;
    snd_device_t snd_device = SND_DEVICE_NONE;
    snd_device_t snd_device = SND_DEVICE_NONE;


    if (my_data->fluence_type != FLUENCE_NONE) {
    if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
    if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
        if (my_data->fluence_in_spkr_mode) {
        if (my_data->fluence_in_spkr_mode) {
            if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
            if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -4260,19 +4259,18 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
            }
            }
            adev->acdb_settings |= DMIC_FLAG;
            adev->acdb_settings |= DMIC_FLAG;
        } else
        } else
                snd_device = SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
            snd_device = SND_DEVICE_IN_SPEAKER_MIC;
    } else if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
    } else if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
        if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
        if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
            (my_data->source_mic_type & SOURCE_DUAL_MIC)) {
            (my_data->source_mic_type & SOURCE_DUAL_MIC)) {
            snd_device = SND_DEVICE_IN_HANDSET_DMIC_AEC_NS;
            snd_device = SND_DEVICE_IN_HANDSET_DMIC_AEC_NS;
            adev->acdb_settings |= DMIC_FLAG;
            adev->acdb_settings |= DMIC_FLAG;
        } else
        } else
                snd_device = SND_DEVICE_IN_HANDSET_MIC_AEC_NS;
            snd_device = SND_DEVICE_IN_HANDSET_MIC;
    } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
    } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
        snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
        snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
    }
    }
    platform_set_echo_reference(adev, true, out_device);
    platform_set_echo_reference(adev, true, out_device);
    }


    return snd_device;
    return snd_device;
}
}
@@ -4284,7 +4282,7 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
    struct audio_device *adev = my_data->adev;
    struct audio_device *adev = my_data->adev;
    snd_device_t snd_device = SND_DEVICE_NONE;
    snd_device_t snd_device = SND_DEVICE_NONE;


    if (my_data->fluence_type != FLUENCE_NONE && adev->active_input->enable_aec &&
    if (adev->active_input->enable_aec &&
        adev->active_input->enable_ns) {
        adev->active_input->enable_ns) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
            if (my_data->fluence_in_spkr_mode) {
            if (my_data->fluence_in_spkr_mode) {
@@ -4317,8 +4315,7 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
            snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
            snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
        }
        }
        platform_set_echo_reference(adev, true, out_device);
        platform_set_echo_reference(adev, true, out_device);
    } else if (my_data->fluence_type != FLUENCE_NONE &&
    } else if (adev->active_input->enable_aec) {
               adev->active_input->enable_aec) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
            if (my_data->fluence_in_spkr_mode) {
            if (my_data->fluence_in_spkr_mode) {
                if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
                if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -4350,8 +4347,7 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
            snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
            snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
        }
        }
        platform_set_echo_reference(adev, true, out_device);
        platform_set_echo_reference(adev, true, out_device);
    } else if (my_data->fluence_type != FLUENCE_NONE &&
    } else if (adev->active_input->enable_ns) {
               adev->active_input->enable_ns) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
            if (my_data->fluence_in_spkr_mode) {
            if (my_data->fluence_in_spkr_mode) {
                if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
                if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
+1 −0
Original line number Original line Diff line number Diff line
@@ -398,6 +398,7 @@ enum {
#define TX_VOICE_DM_FV5_BROADSIDE 0x10F18
#define TX_VOICE_DM_FV5_BROADSIDE 0x10F18
#define TX_VOICE_FV5ECNS_SM 0x10F09
#define TX_VOICE_FV5ECNS_SM 0x10F09
#define TX_VOICE_FV5ECNS_DM 0x10F0A
#define TX_VOICE_FV5ECNS_DM 0x10F0A
#define TX_VOICE_SMECNS_V2 0x10F31


#define AUDIO_MAKE_STRING_FROM_ENUM(X)   { #X, X }
#define AUDIO_MAKE_STRING_FROM_ENUM(X)   { #X, X }


+38 −42
Original line number Original line Diff line number Diff line
@@ -561,12 +561,12 @@ static struct audio_effect_config effect_config_table[GET_IN_DEVICE_INDEX(SND_DE
                                                                0x10EAF, 0x02},
                                                                0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_SM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC)][EFFECT_AEC] = {TX_VOICE_SMECNS_V2, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_SM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC)][EFFECT_NS] = {TX_VOICE_SMECNS_V2, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_DM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC_AEC_NS)][EFFECT_AEC] = {TX_VOICE_FV5ECNS_SM, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC)][EFFECT_AEC] = {TX_VOICE_SMECNS_V2, 0x0, 0x10EAF, 0x01},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC_AEC_NS)][EFFECT_NS] = {TX_VOICE_FV5ECNS_SM, 0x0, 0x10EAF, 0x02},
    [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC)][EFFECT_NS] = {TX_VOICE_SMECNS_V2, 0x0, 0x10EAF, 0x02},
};
};


/* ACDB IDs (audio DSP path configuration IDs) for each sound device */
/* ACDB IDs (audio DSP path configuration IDs) for each sound device */
@@ -4026,7 +4026,6 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
    struct audio_device *adev = my_data->adev;
    struct audio_device *adev = my_data->adev;
    snd_device_t snd_device = SND_DEVICE_NONE;
    snd_device_t snd_device = SND_DEVICE_NONE;


    if (my_data->fluence_type != FLUENCE_NONE) {
    if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
    if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
        if (my_data->fluence_in_spkr_mode) {
        if (my_data->fluence_in_spkr_mode) {
            if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
            if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -4044,7 +4043,7 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
            }
            }
            adev->acdb_settings |= DMIC_FLAG;
            adev->acdb_settings |= DMIC_FLAG;
        } else
        } else
                snd_device = SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
            snd_device = SND_DEVICE_IN_SPEAKER_MIC;
    } else if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
    } else if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
        if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
        if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
            (my_data->source_mic_type & SOURCE_THREE_MIC)) {
            (my_data->source_mic_type & SOURCE_THREE_MIC)) {
@@ -4055,12 +4054,11 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
            snd_device = SND_DEVICE_IN_HANDSET_DMIC_AEC_NS;
            snd_device = SND_DEVICE_IN_HANDSET_DMIC_AEC_NS;
            adev->acdb_settings |= DMIC_FLAG;
            adev->acdb_settings |= DMIC_FLAG;
        } else
        } else
                snd_device = SND_DEVICE_IN_HANDSET_MIC_AEC_NS;
            snd_device = SND_DEVICE_IN_HANDSET_MIC;
    } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
    } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
            snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
        snd_device = SND_DEVICE_IN_HEADSET_MIC;
    }
    }
    platform_set_echo_reference(adev, true, out_device);
    platform_set_echo_reference(adev, true, out_device);
    }


    return snd_device;
    return snd_device;
}
}
@@ -4072,7 +4070,7 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
    struct audio_device *adev = my_data->adev;
    struct audio_device *adev = my_data->adev;
    snd_device_t snd_device = SND_DEVICE_NONE;
    snd_device_t snd_device = SND_DEVICE_NONE;


    if (my_data->fluence_type != FLUENCE_NONE && adev->active_input->enable_aec &&
    if (adev->active_input->enable_aec &&
        adev->active_input->enable_ns) {
        adev->active_input->enable_ns) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
            if (my_data->fluence_in_spkr_mode) {
            if (my_data->fluence_in_spkr_mode) {
@@ -4109,8 +4107,7 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
            snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
            snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
        }
        }
        platform_set_echo_reference(adev, true, out_device);
        platform_set_echo_reference(adev, true, out_device);
    } else if (my_data->fluence_type != FLUENCE_NONE &&
    } else if (adev->active_input->enable_aec) {
               adev->active_input->enable_aec) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
            if (my_data->fluence_in_spkr_mode) {
            if (my_data->fluence_in_spkr_mode) {
                if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
                if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -4146,8 +4143,7 @@ static snd_device_t get_snd_device_for_voice_comm(struct platform_data *my_data,
            snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
            snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
        }
        }
        platform_set_echo_reference(adev, true, out_device);
        platform_set_echo_reference(adev, true, out_device);
    } else if (my_data->fluence_type != FLUENCE_NONE &&
    } else if (adev->active_input->enable_ns) {
               adev->active_input->enable_ns) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
        if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
            if (my_data->fluence_in_spkr_mode) {
            if (my_data->fluence_in_spkr_mode) {
                if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
                if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
+1 −0
Original line number Original line Diff line number Diff line
@@ -518,6 +518,7 @@ enum {
#define TX_VOICE_FLUENCE_PROV2 0x10F17
#define TX_VOICE_FLUENCE_PROV2 0x10F17
#define TX_VOICE_DM_FV5_BROADSIDE 0x10F18
#define TX_VOICE_DM_FV5_BROADSIDE 0x10F18
#define TX_VOICE_FV5ECNS_SM 0x10F09
#define TX_VOICE_FV5ECNS_SM 0x10F09
#define TX_VOICE_SMECNS_V2 0x10F31
#define TX_VOICE_FV5ECNS_DM 0x10F0A
#define TX_VOICE_FV5ECNS_DM 0x10F0A


#define LIB_CSD_CLIENT "libcsd-client.so"
#define LIB_CSD_CLIENT "libcsd-client.so"