Merge "ASoC: wcd: set analog gain mode to manual when compander is off"
This commit is contained in:
commit
4eaf88bd5e
@ -2574,6 +2574,18 @@ static int msm_anlg_cdc_codec_enable_micbias(struct snd_soc_dapm_widget *w,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void set_compander_mode(void *handle, int val)
|
||||
{
|
||||
struct sdm660_cdc_priv *handle_cdc = handle;
|
||||
struct snd_soc_codec *codec = handle_cdc->codec;
|
||||
|
||||
if (get_codec_version(handle_cdc) >= DIANGU) {
|
||||
snd_soc_update_bits(codec,
|
||||
MSM89XX_PMIC_ANALOG_RX_COM_BIAS_DAC,
|
||||
0x08, val);
|
||||
};
|
||||
}
|
||||
|
||||
static void update_clkdiv(void *handle, int val)
|
||||
{
|
||||
struct sdm660_cdc_priv *handle_cdc = handle;
|
||||
@ -4607,6 +4619,7 @@ static int msm_anlg_cdc_probe(struct platform_device *pdev)
|
||||
BLOCKING_INIT_NOTIFIER_HEAD(&sdm660_cdc->notifier_mbhc);
|
||||
|
||||
sdm660_cdc->dig_plat_data.handle = (void *) sdm660_cdc;
|
||||
sdm660_cdc->dig_plat_data.set_compander_mode = set_compander_mode;
|
||||
sdm660_cdc->dig_plat_data.update_clkdiv = update_clkdiv;
|
||||
sdm660_cdc->dig_plat_data.get_cdc_version = get_cdc_version;
|
||||
sdm660_cdc->dig_plat_data.register_notifier =
|
||||
|
@ -168,6 +168,7 @@ struct msm_dig_ctrl_data {
|
||||
|
||||
struct msm_dig_ctrl_platform_data {
|
||||
void *handle;
|
||||
void (*set_compander_mode)(void *handle, int val);
|
||||
void (*update_clkdiv)(void *handle, int val);
|
||||
int (*get_cdc_version)(void *handle);
|
||||
int (*register_notifier)(void *handle,
|
||||
|
@ -231,6 +231,12 @@ static int msm_dig_cdc_codec_config_compander(struct snd_soc_codec *codec,
|
||||
}
|
||||
|
||||
if (SND_SOC_DAPM_EVENT_ON(event)) {
|
||||
/* compander is not enabled */
|
||||
if (!dig_cdc->comp_enabled[interp_n]) {
|
||||
dig_cdc->set_compander_mode(dig_cdc->handle, 0x00);
|
||||
return 0;
|
||||
};
|
||||
dig_cdc->set_compander_mode(dig_cdc->handle, 0x08);
|
||||
/* Enable Compander Clock */
|
||||
snd_soc_update_bits(codec,
|
||||
MSM89XX_CDC_CORE_COMP0_B2_CTL, 0x0F, 0x09);
|
||||
@ -2080,6 +2086,7 @@ static int msm_dig_cdc_probe(struct platform_device *pdev)
|
||||
msm_dig_cdc->dig_base, &msm_digital_regmap_config);
|
||||
|
||||
msm_dig_cdc->update_clkdiv = pdata->update_clkdiv;
|
||||
msm_dig_cdc->set_compander_mode = pdata->set_compander_mode;
|
||||
msm_dig_cdc->get_cdc_version = pdata->get_cdc_version;
|
||||
msm_dig_cdc->handle = pdata->handle;
|
||||
msm_dig_cdc->register_notifier = pdata->register_notifier;
|
||||
|
@ -55,6 +55,7 @@ struct msm_dig_priv {
|
||||
u32 mute_mask;
|
||||
int dapm_bias_off;
|
||||
void *handle;
|
||||
void (*set_compander_mode)(void *handle, int val);
|
||||
void (*update_clkdiv)(void *handle, int val);
|
||||
int (*get_cdc_version)(void *handle);
|
||||
int (*register_notifier)(void *handle,
|
||||
@ -65,6 +66,7 @@ struct msm_dig_priv {
|
||||
|
||||
struct dig_ctrl_platform_data {
|
||||
void *handle;
|
||||
void (*set_compander_mode)(void *handle, int val);
|
||||
void (*update_clkdiv)(void *handle, int val);
|
||||
int (*get_cdc_version)(void *handle);
|
||||
int (*register_notifier)(void *handle,
|
||||
|
Loading…
Reference in New Issue
Block a user