Merge "ASoC: sdm660_cdc: Fix HPH CnP and kernel panic issue on sdm660-internal"
This commit is contained in:
commit
98871f5864
2 changed files with 31 additions and 5 deletions
|
@ -49,10 +49,10 @@
|
|||
#define BUS_DOWN 1
|
||||
|
||||
/*
|
||||
* 50 Milliseconds sufficient for DSP bring up in the lpass
|
||||
* 200 Milliseconds sufficient for DSP bring up in the lpass
|
||||
* after Sub System Restart
|
||||
*/
|
||||
#define ADSP_STATE_READY_TIMEOUT_MS 50
|
||||
#define ADSP_STATE_READY_TIMEOUT_MS 200
|
||||
|
||||
#define EAR_PMD 0
|
||||
#define EAR_PMU 1
|
||||
|
|
|
@ -215,6 +215,7 @@ static int msm_dig_cdc_codec_config_compander(struct snd_soc_codec *codec,
|
|||
{
|
||||
struct msm_dig_priv *dig_cdc = snd_soc_codec_get_drvdata(codec);
|
||||
int comp_ch_bits_set = 0x03;
|
||||
int comp_ch_value;
|
||||
|
||||
dev_dbg(codec->dev, "%s: event %d shift %d, enabled %d\n",
|
||||
__func__, event, interp_n,
|
||||
|
@ -234,15 +235,40 @@ static int msm_dig_cdc_codec_config_compander(struct snd_soc_codec *codec,
|
|||
dig_cdc->set_compander_mode(dig_cdc->handle, 0x00);
|
||||
return 0;
|
||||
};
|
||||
comp_ch_value = snd_soc_read(codec,
|
||||
MSM89XX_CDC_CORE_COMP0_B1_CTL);
|
||||
if (interp_n == 0) {
|
||||
if ((comp_ch_value & 0x02) == 0x02) {
|
||||
dev_dbg(codec->dev,
|
||||
"%s comp ch already enabled\n",
|
||||
__func__);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (interp_n == 1) {
|
||||
if ((comp_ch_value & 0x01) == 0x01) {
|
||||
dev_dbg(codec->dev,
|
||||
"%s comp ch already enabled\n",
|
||||
__func__);
|
||||
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);
|
||||
snd_soc_update_bits(codec,
|
||||
MSM89XX_CDC_CORE_CLK_RX_B2_CTL, 0x01, 0x01);
|
||||
snd_soc_update_bits(codec,
|
||||
MSM89XX_CDC_CORE_COMP0_B1_CTL,
|
||||
1 << interp_n, 1 << interp_n);
|
||||
if (dig_cdc->comp_enabled[MSM89XX_RX1]) {
|
||||
snd_soc_update_bits(codec,
|
||||
MSM89XX_CDC_CORE_COMP0_B1_CTL,
|
||||
0x02, 0x02);
|
||||
}
|
||||
if (dig_cdc->comp_enabled[MSM89XX_RX2]) {
|
||||
snd_soc_update_bits(codec,
|
||||
MSM89XX_CDC_CORE_COMP0_B1_CTL,
|
||||
0x01, 0x01);
|
||||
}
|
||||
snd_soc_update_bits(codec,
|
||||
MSM89XX_CDC_CORE_COMP0_B3_CTL, 0xFF, 0x01);
|
||||
snd_soc_update_bits(codec,
|
||||
|
|
Loading…
Add table
Reference in a new issue