Loading include/sound/q6adm-v2.h +18 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,20 @@ struct route_payload { unsigned int session_id; }; struct default_chmixer_param_id_coeff { uint32_t index; uint16_t num_output_channels; uint16_t num_input_channels; }; struct msm_pcm_channel_mixer { int output_channel; int input_channels[ADM_MAX_CHANNELS]; bool enable; int rule; int channel_weight[ADM_MAX_CHANNELS][ADM_MAX_CHANNELS]; }; int srs_trumedia_open(int port_id, int copp_idx, __s32 srs_tech_id, void *srs_params); Loading Loading @@ -166,4 +180,8 @@ int adm_get_source_tracking(int port_id, int copp_idx, struct source_tracking_param *sourceTrackingData); int adm_swap_speaker_channels(int port_id, int copp_idx, int sample_rate, bool spk_swap); int adm_programable_channel_mixer(int port_id, int copp_idx, int session_id, int session_type, struct msm_pcm_channel_mixer *ch_mixer, int channel_index); #endif /* __Q6_ADM_V2_H__ */ sound/soc/codecs/sdm660_cdc/msm-analog-cdc.c +86 −7 Original line number Diff line number Diff line Loading @@ -1400,8 +1400,26 @@ static int msm_anlg_cdc_codec_enable_on_demand_supply( } switch (event) { case SND_SOC_DAPM_PRE_PMU: if (atomic_inc_return(&supply->ref) == 1) if (atomic_inc_return(&supply->ref) == 1) { ret = regulator_set_voltage(supply->supply, supply->min_uv, supply->max_uv); if (ret) { dev_err(codec->dev, "Setting regulator voltage(en) for micbias with err = %d\n", ret); goto out; } ret = regulator_set_load(supply->supply, supply->optimum_ua); if (ret < 0) { dev_err(codec->dev, "Setting regulator optimum mode(en) failed for micbias with err = %d\n", ret); goto out; } ret = regulator_enable(supply->supply); } if (ret) dev_err(codec->dev, "%s: Failed to enable %s\n", __func__, Loading @@ -1413,12 +1431,27 @@ static int msm_anlg_cdc_codec_enable_on_demand_supply( __func__, on_demand_supply_name[w->shift]); goto out; } if (atomic_dec_return(&supply->ref) == 0) if (atomic_dec_return(&supply->ref) == 0) { ret = regulator_disable(supply->supply); if (ret) dev_err(codec->dev, "%s: Failed to disable %s\n", __func__, on_demand_supply_name[w->shift]); ret = regulator_set_voltage(supply->supply, 0, supply->max_uv); if (ret) { dev_err(codec->dev, "Setting regulator voltage(dis) failed for micbias with err = %d\n", ret); goto out; } ret = regulator_set_load(supply->supply, 0); if (ret < 0) dev_err(codec->dev, "Setting regulator optimum mode(dis) failed for micbias with err = %d\n", ret); } break; default: break; Loading Loading @@ -3685,6 +3718,30 @@ static struct regulator *msm_anlg_cdc_find_regulator( return NULL; } static void msm_anlg_cdc_update_micbias_regulator( const struct sdm660_cdc_priv *sdm660_cdc, const char *name, struct on_demand_supply *micbias_supply) { int i; struct sdm660_cdc_pdata *pdata = sdm660_cdc->dev->platform_data; for (i = 0; i < sdm660_cdc->num_of_supplies; i++) { if (sdm660_cdc->supplies[i].supply && !strcmp(sdm660_cdc->supplies[i].supply, name)) { micbias_supply->supply = sdm660_cdc->supplies[i].consumer; micbias_supply->min_uv = pdata->regulator[i].min_uv; micbias_supply->max_uv = pdata->regulator[i].max_uv; micbias_supply->optimum_ua = pdata->regulator[i].optimum_ua; return; } } dev_err(sdm660_cdc->dev, "Error: regulator not found:%s\n", name); } static int msm_anlg_cdc_device_down(struct snd_soc_codec *codec) { struct msm_asoc_mach_data *pdata = NULL; Loading Loading @@ -4114,10 +4171,10 @@ static int msm_anlg_cdc_soc_probe(struct snd_soc_codec *codec) wcd9xxx_spmi_set_codec(codec); sdm660_cdc->on_demand_list[ON_DEMAND_MICBIAS].supply = msm_anlg_cdc_find_regulator( msm_anlg_cdc_update_micbias_regulator( sdm660_cdc, on_demand_supply_name[ON_DEMAND_MICBIAS]); on_demand_supply_name[ON_DEMAND_MICBIAS], &sdm660_cdc->on_demand_list[ON_DEMAND_MICBIAS]); atomic_set(&sdm660_cdc->on_demand_list[ON_DEMAND_MICBIAS].ref, 0); Loading Loading @@ -4317,6 +4374,28 @@ static int msm_anlg_cdc_init_supplies(struct sdm660_cdc_priv *sdm660_cdc, if (regulator_count_voltages( sdm660_cdc->supplies[i].consumer) <= 0) continue; if (pdata->regulator[i].ondemand) { ret = regulator_set_voltage( sdm660_cdc->supplies[i].consumer, 0, pdata->regulator[i].max_uv); if (ret) { dev_err(sdm660_cdc->dev, "Setting regulator voltage failed for regulator %s err = %d\n", sdm660_cdc->supplies[i].supply, ret); goto err_supplies; } ret = regulator_set_load( sdm660_cdc->supplies[i].consumer, 0); if (ret < 0) { dev_err(sdm660_cdc->dev, "Setting regulator optimum mode failed for regulator %s err = %d\n", sdm660_cdc->supplies[i].supply, ret); goto err_supplies; } else { ret = 0; continue; } } ret = regulator_set_voltage(sdm660_cdc->supplies[i].consumer, pdata->regulator[i].min_uv, pdata->regulator[i].max_uv); Loading sound/soc/codecs/sdm660_cdc/msm-analog-cdc.h +3 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,9 @@ struct sdm660_cdc_regulator { struct on_demand_supply { struct regulator *supply; atomic_t ref; int min_uv; int max_uv; int optimum_ua; }; struct wcd_imped_i_ref { Loading sound/soc/msm/msm8998.c +1 −4 Original line number Diff line number Diff line Loading @@ -4086,7 +4086,6 @@ static void msm_aux_pcm_snd_shutdown(struct snd_pcm_substream *substream) dev_err(rtd->card->dev, "%s lpaif_tert_muxsel_virt_addr is NULL\n", __func__); auxpcm_intf_conf[index].ref_cnt++; } } mutex_unlock(&auxpcm_intf_conf[index].lock); Loading Loading @@ -4575,11 +4574,9 @@ static void msm_mi2s_snd_shutdown(struct snd_pcm_substream *substream) mutex_lock(&mi2s_intf_conf[index].lock); if (--mi2s_intf_conf[index].ref_cnt == 0) { ret = msm_mi2s_set_sclk(substream, false); if (ret < 0) { if (ret < 0) pr_err("%s:clock disable failed for MI2S (%d); ret=%d\n", __func__, index, ret); mi2s_intf_conf[index].ref_cnt++; } } mutex_unlock(&mi2s_intf_conf[index].lock); Loading sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c +28 −40 Original line number Diff line number Diff line Loading @@ -3444,21 +3444,18 @@ static int msm_compr_playback_app_type_cfg_put(struct snd_kcontrol *kcontrol, u64 fe_id = kcontrol->private_value; int session_type = SESSION_TYPE_RX; int be_id = ucontrol->value.integer.value[3]; struct msm_pcm_stream_app_type_cfg cfg_data = {0, 0, 48000}; int ret = 0; int app_type; int acdb_dev_id; int sample_rate = 48000; app_type = ucontrol->value.integer.value[0]; acdb_dev_id = ucontrol->value.integer.value[1]; cfg_data.app_type = ucontrol->value.integer.value[0]; cfg_data.acdb_dev_id = ucontrol->value.integer.value[1]; if (ucontrol->value.integer.value[2] != 0) sample_rate = ucontrol->value.integer.value[2]; cfg_data.sample_rate = ucontrol->value.integer.value[2]; pr_debug("%s: fe_id- %llu session_type- %d be_id- %d app_type- %d acdb_dev_id- %d sample_rate- %d\n", __func__, fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); cfg_data.app_type, cfg_data.acdb_dev_id, cfg_data.sample_rate); ret = msm_pcm_routing_reg_stream_app_type_cfg(fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); be_id, &cfg_data); if (ret < 0) pr_err("%s: msm_pcm_routing_reg_stream_app_type_cfg failed returned %d\n", __func__, ret); Loading @@ -3471,28 +3468,25 @@ static int msm_compr_playback_app_type_cfg_get(struct snd_kcontrol *kcontrol, { u64 fe_id = kcontrol->private_value; int session_type = SESSION_TYPE_RX; int be_id = ucontrol->value.integer.value[3]; int be_id = 0; struct msm_pcm_stream_app_type_cfg cfg_data = {0}; int ret = 0; int app_type; int acdb_dev_id; int sample_rate; ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type, be_id, &app_type, &acdb_dev_id, &sample_rate); &be_id, &cfg_data); if (ret < 0) { pr_err("%s: msm_pcm_routing_get_stream_app_type_cfg failed returned %d\n", __func__, ret); goto done; } ucontrol->value.integer.value[0] = app_type; ucontrol->value.integer.value[1] = acdb_dev_id; ucontrol->value.integer.value[2] = sample_rate; ucontrol->value.integer.value[0] = cfg_data.app_type; ucontrol->value.integer.value[1] = cfg_data.acdb_dev_id; ucontrol->value.integer.value[2] = cfg_data.sample_rate; ucontrol->value.integer.value[3] = be_id; pr_debug("%s: fedai_id %llu, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n", __func__, fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); cfg_data.app_type, cfg_data.acdb_dev_id, cfg_data.sample_rate); done: return ret; } Loading @@ -3503,21 +3497,18 @@ static int msm_compr_capture_app_type_cfg_put(struct snd_kcontrol *kcontrol, u64 fe_id = kcontrol->private_value; int session_type = SESSION_TYPE_TX; int be_id = ucontrol->value.integer.value[3]; struct msm_pcm_stream_app_type_cfg cfg_data = {0, 0, 48000}; int ret = 0; int app_type; int acdb_dev_id; int sample_rate = 48000; app_type = ucontrol->value.integer.value[0]; acdb_dev_id = ucontrol->value.integer.value[1]; cfg_data.app_type = ucontrol->value.integer.value[0]; cfg_data.acdb_dev_id = ucontrol->value.integer.value[1]; if (ucontrol->value.integer.value[2] != 0) sample_rate = ucontrol->value.integer.value[2]; cfg_data.sample_rate = ucontrol->value.integer.value[2]; pr_debug("%s: fe_id- %llu session_type- %d be_id- %d app_type- %d acdb_dev_id- %d sample_rate- %d\n", __func__, fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); cfg_data.app_type, cfg_data.acdb_dev_id, cfg_data.sample_rate); ret = msm_pcm_routing_reg_stream_app_type_cfg(fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); be_id, &cfg_data); if (ret < 0) pr_err("%s: msm_pcm_routing_reg_stream_app_type_cfg failed returned %d\n", __func__, ret); Loading @@ -3530,28 +3521,25 @@ static int msm_compr_capture_app_type_cfg_get(struct snd_kcontrol *kcontrol, { u64 fe_id = kcontrol->private_value; int session_type = SESSION_TYPE_TX; int be_id = ucontrol->value.integer.value[3]; int be_id = 0; struct msm_pcm_stream_app_type_cfg cfg_data = {0}; int ret = 0; int app_type; int acdb_dev_id; int sample_rate; ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type, be_id, &app_type, &acdb_dev_id, &sample_rate); &be_id, &cfg_data); if (ret < 0) { pr_err("%s: msm_pcm_routing_get_stream_app_type_cfg failed returned %d\n", __func__, ret); goto done; } ucontrol->value.integer.value[0] = app_type; ucontrol->value.integer.value[1] = acdb_dev_id; ucontrol->value.integer.value[2] = sample_rate; ucontrol->value.integer.value[0] = cfg_data.app_type; ucontrol->value.integer.value[1] = cfg_data.acdb_dev_id; ucontrol->value.integer.value[2] = cfg_data.sample_rate; ucontrol->value.integer.value[3] = be_id; pr_debug("%s: fedai_id %llu, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n", __func__, fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); cfg_data.app_type, cfg_data.acdb_dev_id, cfg_data.sample_rate); done: return ret; } Loading Loading
include/sound/q6adm-v2.h +18 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,20 @@ struct route_payload { unsigned int session_id; }; struct default_chmixer_param_id_coeff { uint32_t index; uint16_t num_output_channels; uint16_t num_input_channels; }; struct msm_pcm_channel_mixer { int output_channel; int input_channels[ADM_MAX_CHANNELS]; bool enable; int rule; int channel_weight[ADM_MAX_CHANNELS][ADM_MAX_CHANNELS]; }; int srs_trumedia_open(int port_id, int copp_idx, __s32 srs_tech_id, void *srs_params); Loading Loading @@ -166,4 +180,8 @@ int adm_get_source_tracking(int port_id, int copp_idx, struct source_tracking_param *sourceTrackingData); int adm_swap_speaker_channels(int port_id, int copp_idx, int sample_rate, bool spk_swap); int adm_programable_channel_mixer(int port_id, int copp_idx, int session_id, int session_type, struct msm_pcm_channel_mixer *ch_mixer, int channel_index); #endif /* __Q6_ADM_V2_H__ */
sound/soc/codecs/sdm660_cdc/msm-analog-cdc.c +86 −7 Original line number Diff line number Diff line Loading @@ -1400,8 +1400,26 @@ static int msm_anlg_cdc_codec_enable_on_demand_supply( } switch (event) { case SND_SOC_DAPM_PRE_PMU: if (atomic_inc_return(&supply->ref) == 1) if (atomic_inc_return(&supply->ref) == 1) { ret = regulator_set_voltage(supply->supply, supply->min_uv, supply->max_uv); if (ret) { dev_err(codec->dev, "Setting regulator voltage(en) for micbias with err = %d\n", ret); goto out; } ret = regulator_set_load(supply->supply, supply->optimum_ua); if (ret < 0) { dev_err(codec->dev, "Setting regulator optimum mode(en) failed for micbias with err = %d\n", ret); goto out; } ret = regulator_enable(supply->supply); } if (ret) dev_err(codec->dev, "%s: Failed to enable %s\n", __func__, Loading @@ -1413,12 +1431,27 @@ static int msm_anlg_cdc_codec_enable_on_demand_supply( __func__, on_demand_supply_name[w->shift]); goto out; } if (atomic_dec_return(&supply->ref) == 0) if (atomic_dec_return(&supply->ref) == 0) { ret = regulator_disable(supply->supply); if (ret) dev_err(codec->dev, "%s: Failed to disable %s\n", __func__, on_demand_supply_name[w->shift]); ret = regulator_set_voltage(supply->supply, 0, supply->max_uv); if (ret) { dev_err(codec->dev, "Setting regulator voltage(dis) failed for micbias with err = %d\n", ret); goto out; } ret = regulator_set_load(supply->supply, 0); if (ret < 0) dev_err(codec->dev, "Setting regulator optimum mode(dis) failed for micbias with err = %d\n", ret); } break; default: break; Loading Loading @@ -3685,6 +3718,30 @@ static struct regulator *msm_anlg_cdc_find_regulator( return NULL; } static void msm_anlg_cdc_update_micbias_regulator( const struct sdm660_cdc_priv *sdm660_cdc, const char *name, struct on_demand_supply *micbias_supply) { int i; struct sdm660_cdc_pdata *pdata = sdm660_cdc->dev->platform_data; for (i = 0; i < sdm660_cdc->num_of_supplies; i++) { if (sdm660_cdc->supplies[i].supply && !strcmp(sdm660_cdc->supplies[i].supply, name)) { micbias_supply->supply = sdm660_cdc->supplies[i].consumer; micbias_supply->min_uv = pdata->regulator[i].min_uv; micbias_supply->max_uv = pdata->regulator[i].max_uv; micbias_supply->optimum_ua = pdata->regulator[i].optimum_ua; return; } } dev_err(sdm660_cdc->dev, "Error: regulator not found:%s\n", name); } static int msm_anlg_cdc_device_down(struct snd_soc_codec *codec) { struct msm_asoc_mach_data *pdata = NULL; Loading Loading @@ -4114,10 +4171,10 @@ static int msm_anlg_cdc_soc_probe(struct snd_soc_codec *codec) wcd9xxx_spmi_set_codec(codec); sdm660_cdc->on_demand_list[ON_DEMAND_MICBIAS].supply = msm_anlg_cdc_find_regulator( msm_anlg_cdc_update_micbias_regulator( sdm660_cdc, on_demand_supply_name[ON_DEMAND_MICBIAS]); on_demand_supply_name[ON_DEMAND_MICBIAS], &sdm660_cdc->on_demand_list[ON_DEMAND_MICBIAS]); atomic_set(&sdm660_cdc->on_demand_list[ON_DEMAND_MICBIAS].ref, 0); Loading Loading @@ -4317,6 +4374,28 @@ static int msm_anlg_cdc_init_supplies(struct sdm660_cdc_priv *sdm660_cdc, if (regulator_count_voltages( sdm660_cdc->supplies[i].consumer) <= 0) continue; if (pdata->regulator[i].ondemand) { ret = regulator_set_voltage( sdm660_cdc->supplies[i].consumer, 0, pdata->regulator[i].max_uv); if (ret) { dev_err(sdm660_cdc->dev, "Setting regulator voltage failed for regulator %s err = %d\n", sdm660_cdc->supplies[i].supply, ret); goto err_supplies; } ret = regulator_set_load( sdm660_cdc->supplies[i].consumer, 0); if (ret < 0) { dev_err(sdm660_cdc->dev, "Setting regulator optimum mode failed for regulator %s err = %d\n", sdm660_cdc->supplies[i].supply, ret); goto err_supplies; } else { ret = 0; continue; } } ret = regulator_set_voltage(sdm660_cdc->supplies[i].consumer, pdata->regulator[i].min_uv, pdata->regulator[i].max_uv); Loading
sound/soc/codecs/sdm660_cdc/msm-analog-cdc.h +3 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,9 @@ struct sdm660_cdc_regulator { struct on_demand_supply { struct regulator *supply; atomic_t ref; int min_uv; int max_uv; int optimum_ua; }; struct wcd_imped_i_ref { Loading
sound/soc/msm/msm8998.c +1 −4 Original line number Diff line number Diff line Loading @@ -4086,7 +4086,6 @@ static void msm_aux_pcm_snd_shutdown(struct snd_pcm_substream *substream) dev_err(rtd->card->dev, "%s lpaif_tert_muxsel_virt_addr is NULL\n", __func__); auxpcm_intf_conf[index].ref_cnt++; } } mutex_unlock(&auxpcm_intf_conf[index].lock); Loading Loading @@ -4575,11 +4574,9 @@ static void msm_mi2s_snd_shutdown(struct snd_pcm_substream *substream) mutex_lock(&mi2s_intf_conf[index].lock); if (--mi2s_intf_conf[index].ref_cnt == 0) { ret = msm_mi2s_set_sclk(substream, false); if (ret < 0) { if (ret < 0) pr_err("%s:clock disable failed for MI2S (%d); ret=%d\n", __func__, index, ret); mi2s_intf_conf[index].ref_cnt++; } } mutex_unlock(&mi2s_intf_conf[index].lock); Loading
sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c +28 −40 Original line number Diff line number Diff line Loading @@ -3444,21 +3444,18 @@ static int msm_compr_playback_app_type_cfg_put(struct snd_kcontrol *kcontrol, u64 fe_id = kcontrol->private_value; int session_type = SESSION_TYPE_RX; int be_id = ucontrol->value.integer.value[3]; struct msm_pcm_stream_app_type_cfg cfg_data = {0, 0, 48000}; int ret = 0; int app_type; int acdb_dev_id; int sample_rate = 48000; app_type = ucontrol->value.integer.value[0]; acdb_dev_id = ucontrol->value.integer.value[1]; cfg_data.app_type = ucontrol->value.integer.value[0]; cfg_data.acdb_dev_id = ucontrol->value.integer.value[1]; if (ucontrol->value.integer.value[2] != 0) sample_rate = ucontrol->value.integer.value[2]; cfg_data.sample_rate = ucontrol->value.integer.value[2]; pr_debug("%s: fe_id- %llu session_type- %d be_id- %d app_type- %d acdb_dev_id- %d sample_rate- %d\n", __func__, fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); cfg_data.app_type, cfg_data.acdb_dev_id, cfg_data.sample_rate); ret = msm_pcm_routing_reg_stream_app_type_cfg(fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); be_id, &cfg_data); if (ret < 0) pr_err("%s: msm_pcm_routing_reg_stream_app_type_cfg failed returned %d\n", __func__, ret); Loading @@ -3471,28 +3468,25 @@ static int msm_compr_playback_app_type_cfg_get(struct snd_kcontrol *kcontrol, { u64 fe_id = kcontrol->private_value; int session_type = SESSION_TYPE_RX; int be_id = ucontrol->value.integer.value[3]; int be_id = 0; struct msm_pcm_stream_app_type_cfg cfg_data = {0}; int ret = 0; int app_type; int acdb_dev_id; int sample_rate; ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type, be_id, &app_type, &acdb_dev_id, &sample_rate); &be_id, &cfg_data); if (ret < 0) { pr_err("%s: msm_pcm_routing_get_stream_app_type_cfg failed returned %d\n", __func__, ret); goto done; } ucontrol->value.integer.value[0] = app_type; ucontrol->value.integer.value[1] = acdb_dev_id; ucontrol->value.integer.value[2] = sample_rate; ucontrol->value.integer.value[0] = cfg_data.app_type; ucontrol->value.integer.value[1] = cfg_data.acdb_dev_id; ucontrol->value.integer.value[2] = cfg_data.sample_rate; ucontrol->value.integer.value[3] = be_id; pr_debug("%s: fedai_id %llu, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n", __func__, fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); cfg_data.app_type, cfg_data.acdb_dev_id, cfg_data.sample_rate); done: return ret; } Loading @@ -3503,21 +3497,18 @@ static int msm_compr_capture_app_type_cfg_put(struct snd_kcontrol *kcontrol, u64 fe_id = kcontrol->private_value; int session_type = SESSION_TYPE_TX; int be_id = ucontrol->value.integer.value[3]; struct msm_pcm_stream_app_type_cfg cfg_data = {0, 0, 48000}; int ret = 0; int app_type; int acdb_dev_id; int sample_rate = 48000; app_type = ucontrol->value.integer.value[0]; acdb_dev_id = ucontrol->value.integer.value[1]; cfg_data.app_type = ucontrol->value.integer.value[0]; cfg_data.acdb_dev_id = ucontrol->value.integer.value[1]; if (ucontrol->value.integer.value[2] != 0) sample_rate = ucontrol->value.integer.value[2]; cfg_data.sample_rate = ucontrol->value.integer.value[2]; pr_debug("%s: fe_id- %llu session_type- %d be_id- %d app_type- %d acdb_dev_id- %d sample_rate- %d\n", __func__, fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); cfg_data.app_type, cfg_data.acdb_dev_id, cfg_data.sample_rate); ret = msm_pcm_routing_reg_stream_app_type_cfg(fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); be_id, &cfg_data); if (ret < 0) pr_err("%s: msm_pcm_routing_reg_stream_app_type_cfg failed returned %d\n", __func__, ret); Loading @@ -3530,28 +3521,25 @@ static int msm_compr_capture_app_type_cfg_get(struct snd_kcontrol *kcontrol, { u64 fe_id = kcontrol->private_value; int session_type = SESSION_TYPE_TX; int be_id = ucontrol->value.integer.value[3]; int be_id = 0; struct msm_pcm_stream_app_type_cfg cfg_data = {0}; int ret = 0; int app_type; int acdb_dev_id; int sample_rate; ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type, be_id, &app_type, &acdb_dev_id, &sample_rate); &be_id, &cfg_data); if (ret < 0) { pr_err("%s: msm_pcm_routing_get_stream_app_type_cfg failed returned %d\n", __func__, ret); goto done; } ucontrol->value.integer.value[0] = app_type; ucontrol->value.integer.value[1] = acdb_dev_id; ucontrol->value.integer.value[2] = sample_rate; ucontrol->value.integer.value[0] = cfg_data.app_type; ucontrol->value.integer.value[1] = cfg_data.acdb_dev_id; ucontrol->value.integer.value[2] = cfg_data.sample_rate; ucontrol->value.integer.value[3] = be_id; pr_debug("%s: fedai_id %llu, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n", __func__, fe_id, session_type, be_id, app_type, acdb_dev_id, sample_rate); cfg_data.app_type, cfg_data.acdb_dev_id, cfg_data.sample_rate); done: return ret; } Loading