mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 12:25:00 -04:00
ASoC: Lahaina: correction to CPS payload
CPS Threshold values to be written to the slave device were not properly packed. Code change to correct the payload as per the specification. Change-Id: Ie5bbfca0875d16467160f96d20219c4946f81a72 Signed-off-by: Vangala, Amarnath <avangala@codeaurora.org>
This commit is contained in:
parent
fbd69cbe23
commit
d153bc1d48
1 changed files with 19 additions and 5 deletions
|
|
@ -5109,7 +5109,7 @@ static int msm_snd_cdc_dma_startup(struct snd_pcm_substream *substream)
|
|||
static void set_cps_config(struct snd_soc_pcm_runtime *rtd,
|
||||
u32 num_ch, u32 ch_mask)
|
||||
{
|
||||
int i = 0;
|
||||
int i = 0, j = 0;
|
||||
int val = 0;
|
||||
u8 dev_num = 0;
|
||||
int ch_configured = 0;
|
||||
|
|
@ -5118,6 +5118,7 @@ static void set_cps_config(struct snd_soc_pcm_runtime *rtd,
|
|||
struct snd_soc_dai_link *dai_link = rtd->dai_link;
|
||||
struct msm_asoc_mach_data *pdata =
|
||||
snd_soc_card_get_drvdata(rtd->card);
|
||||
struct lpass_swr_spkr_dep_cfg_t *spkr_dep_cfg_ptr;
|
||||
|
||||
if (!pdata) {
|
||||
pr_err("%s: pdata is NULL\n", __func__);
|
||||
|
|
@ -5176,9 +5177,11 @@ static void set_cps_config(struct snd_soc_pcm_runtime *rtd,
|
|||
return;
|
||||
}
|
||||
|
||||
spkr_dep_cfg_ptr = &(pdata->cps_config.spkr_dep_cfg[i]);
|
||||
|
||||
/* Clear stale dev num info */
|
||||
pdata->cps_config.spkr_dep_cfg[i].vbatt_pkd_reg_addr &= 0xFFFF;
|
||||
pdata->cps_config.spkr_dep_cfg[i].temp_pkd_reg_addr &= 0xFFFF;
|
||||
spkr_dep_cfg_ptr->vbatt_pkd_reg_addr &= 0xFFFF;
|
||||
spkr_dep_cfg_ptr->temp_pkd_reg_addr &= 0xFFFF;
|
||||
|
||||
val = 0;
|
||||
|
||||
|
|
@ -5192,11 +5195,22 @@ static void set_cps_config(struct snd_soc_pcm_runtime *rtd,
|
|||
val |= (i*2) << 16;
|
||||
|
||||
/* Update dev num in packed reg addr */
|
||||
pdata->cps_config.spkr_dep_cfg[i].vbatt_pkd_reg_addr |= val;
|
||||
spkr_dep_cfg_ptr->vbatt_pkd_reg_addr |= val;
|
||||
|
||||
val &= 0xFF0FFFF;
|
||||
val |= ((i*2)+1) << 16;
|
||||
pdata->cps_config.spkr_dep_cfg[i].temp_pkd_reg_addr |= val;
|
||||
spkr_dep_cfg_ptr->temp_pkd_reg_addr |= val;
|
||||
|
||||
/* Retain dev_num from val */
|
||||
val &= 0x00F00000;
|
||||
for (j = 0; j < MAX_CPS_LEVELS; j++)
|
||||
{
|
||||
val &= 0xFFF0FFFF;
|
||||
val |= ((i * 3) + j) << 16;
|
||||
spkr_dep_cfg_ptr->value_normal_thrsd[j] |= val;
|
||||
spkr_dep_cfg_ptr->value_low1_thrsd[j] |= val;
|
||||
spkr_dep_cfg_ptr->value_low2_thrsd[j] |= val;
|
||||
}
|
||||
i++;
|
||||
ch_configured++;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue