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

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

Merge "configs: msmsteppe: Add support for BCL feature"

parents c4c599c1 22f3f866
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
@@ -410,6 +410,13 @@
    <ctl name="IIR0 INP2 MUX" value="ZERO" />
    <ctl name="IIR0 INP3 MUX" value="ZERO" />

    <!-- vbat related data -->
    <ctl name="GSM mode Enable" value="OFF" />
    <ctl name="WSA_Softclip0 Enable" value="0" />
    <ctl name="WSA_Softclip1 Enable" value="0" />
    <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="0" />
    <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="0" />

    <!-- Codec controls end -->

    <!-- defaults for mmap record -->
@@ -1962,6 +1969,22 @@
        <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
    </path>

   <path name="speaker-vbat-mono">
       <path name="speaker-mono" />
       <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
   </path>

   <path name="speaker-vbat-mono-2">
       <path name="speaker-mono-2" />
       <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
   </path>

   <path name="speaker-vbat">
       <path name="speaker" />
       <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
       <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
   </path>

   <path name="sidetone-iir">
        <ctl name="IIR0 Enable Band1" value="1" />
        <ctl name="IIR0 Enable Band2" value="1" />
@@ -2023,6 +2046,22 @@
        <path name="speaker-protected" />
    </path>

    <path name="speaker-protected-vbat">
        <path name="speaker-protected" />
        <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
        <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
    </path>

    <path name="voice-speaker-protected-vbat">
        <path name="voice-speaker-protected" />
        <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
    </path>

    <path name="voice-speaker-2-protected-vbat">
        <path name="voice-speaker-2-protected" />
        <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
    </path>

    <path name="vi-feedback">
    </path>

@@ -2102,6 +2141,14 @@
        <path name="speaker-mono-2" />
    </path>

    <path name="voice-speaker-vbat">
        <path name="speaker-vbat-mono" />
    </path>

    <path name="voice-speaker-2-vbat">
        <path name="speaker-vbat-mono-2" />
    </path>

    <path name="voice-speaker-mic">
        <path name="speaker-mic" />
    </path>
+21 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ struct audio_extn_module {
    uint32_t proxy_channel_num;
    bool hpx_enabled;
    bool vbat_enabled;
    bool bcl_enabled;
    bool hifi_audio_enabled;
    bool ras_enabled;
    struct aptx_dec_bt_addr addr;
@@ -414,6 +415,25 @@ bool audio_extn_can_use_vbat(void)
    ALOGD("%s: vbat.enabled property is set to %s", __func__, prop_vbat_enabled);
    return (aextnmod.vbat_enabled ? true: false);
}

bool audio_extn_is_bcl_enabled(void)
{
    ALOGD("%s: status: %d", __func__, aextnmod.bcl_enabled);
    return (aextnmod.bcl_enabled ? true: false);
}

bool audio_extn_can_use_bcl(void)
{
    char prop_bcl_enabled[PROPERTY_VALUE_MAX] = "false";

    property_get("persist.vendor.audio.bcl.enabled", prop_bcl_enabled, "0");
    if (!strncmp("true", prop_bcl_enabled, 4)) {
        aextnmod.bcl_enabled = 1;
    }

    ALOGD("%s: bcl.enabled property is set to %s", __func__, prop_bcl_enabled);
    return (aextnmod.bcl_enabled ? true: false);
}
#endif

#ifdef RAS_ENABLED
@@ -824,6 +844,7 @@ void audio_extn_init(struct audio_device *adev)
    aextnmod.proxy_channel_num = 2;
    aextnmod.hpx_enabled = 0;
    aextnmod.vbat_enabled = 0;
    aextnmod.bcl_enabled = 0;
    aextnmod.hifi_audio_enabled = 0;
    aextnmod.addr.nap = 0;
    aextnmod.addr.uap = 0;
+4 −0
Original line number Diff line number Diff line
@@ -169,9 +169,13 @@ void audio_extn_set_aanc_noise_level(struct audio_device *adev,
#ifndef VBAT_MONITOR_ENABLED
#define audio_extn_is_vbat_enabled()                     (0)
#define audio_extn_can_use_vbat()                        (0)
#define audio_extn_is_bcl_enabled()                     (0)
#define audio_extn_can_use_bcl()                        (0)
#else
bool audio_extn_is_vbat_enabled(void);
bool audio_extn_can_use_vbat(void);
bool audio_extn_is_bcl_enabled(void);
bool audio_extn_can_use_bcl(void);
#endif

#ifndef RAS_ENABLED
+12 −4
Original line number Diff line number Diff line
@@ -238,6 +238,7 @@ struct platform_data {
    bool is_acdb_initialized;
    /* Vbat monitor related flags */
    bool is_vbat_speaker;
    bool is_bcl_speaker;
    bool gsm_mode_enabled;
    bool is_slimbus_interface;
    bool is_internal_codec;
@@ -1751,6 +1752,9 @@ static void send_codec_cal(acdb_loader_get_calibration_t acdb_loader_get_calibra
        ret = 0;

        if ((plat_data->is_vbat_speaker) && (WCD9XXX_VBAT_CAL == type)) {
           /* VBAT BCL speaker does not need tuning data */
           if (!plat_data->is_bcl_speaker)
               return;
           ret = send_vbat_adc_data_to_acdb(plat_data, cal_name_info[type]);
           if (ret < 0)
               ALOGE("%s error in sending vbat adc data to acdb", __func__);
@@ -2218,6 +2222,10 @@ void *platform_init(struct audio_device *adev)
    if (ret)
        my_data->is_vbat_speaker = true;

    ret = audio_extn_can_use_bcl();
    if (ret)
        my_data->is_bcl_speaker = true;

    list_init(&my_data->acdb_meta_key_list);

    set_platform_defaults(my_data);
@@ -3408,7 +3416,7 @@ int platform_switch_voice_call_enable_device_config(void *platform,
         out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
         out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT) &&
         audio_extn_spkr_prot_is_enabled()) {
        if (my_data->is_vbat_speaker)
        if (my_data->is_vbat_speaker || my_data->is_bcl_speaker)
            acdb_rx_id = acdb_device_table[SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT];
        else
            acdb_rx_id = acdb_device_table[SND_DEVICE_OUT_SPEAKER_PROTECTED];
@@ -3483,7 +3491,7 @@ int platform_switch_voice_call_usecase_route_post(void *platform,
         out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
         out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT) &&
         audio_extn_spkr_prot_is_enabled()) {
        if (my_data->is_vbat_speaker)
        if (my_data->is_vbat_speaker || my_data->is_bcl_speaker)
            acdb_rx_id = acdb_device_table[SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT];
         else
            acdb_rx_id = acdb_device_table[SND_DEVICE_OUT_SPEAKER_PROTECTED];
@@ -4005,7 +4013,7 @@ snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *o
            else
                snd_device = SND_DEVICE_OUT_BT_SCO;
        } else if (devices & AUDIO_DEVICE_OUT_SPEAKER) {
                if (my_data->is_vbat_speaker) {
                if (my_data->is_vbat_speaker || my_data->is_bcl_speaker) {
                    if (hw_info_is_stereo_spkr(my_data->hw_info)) {
                        if (my_data->mono_speaker == SPKR_1)
                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_VBAT;
@@ -4089,7 +4097,7 @@ snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *o
            snd_device = SND_DEVICE_OUT_SPEAKER_EXTERNAL_2;
        else if (adev->speaker_lr_swap)
            snd_device = SND_DEVICE_OUT_SPEAKER_REVERSE;
        else if (my_data->is_vbat_speaker)
        else if (my_data->is_vbat_speaker || my_data->is_bcl_speaker)
            snd_device = SND_DEVICE_OUT_SPEAKER_VBAT;
        else
            snd_device = SND_DEVICE_OUT_SPEAKER;