ASoC: rt1011: Add a flag for the R0 calibration test
The factory test needs to know whether the calibration completed. This flag helps to confirm the calibration completed or not. Signed-off-by: Shuming Fan <shumingf@realtek.com> Link: https://lore.kernel.org/r/20190806091459.14382-1-shumingf@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3403b808a0
commit
0922c7a51c
|
@ -1225,7 +1225,10 @@ static int rt1011_bq_drc_info(struct snd_kcontrol *kcontrol,
|
|||
static int rt1011_r0_cali_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
ucontrol->value.integer.value[0] = 0;
|
||||
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
|
||||
struct rt1011_priv *rt1011 = snd_soc_component_get_drvdata(component);
|
||||
|
||||
ucontrol->value.integer.value[0] = rt1011->cali_done;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1239,6 +1242,7 @@ static int rt1011_r0_cali_put(struct snd_kcontrol *kcontrol,
|
|||
if (!component->card->instantiated)
|
||||
return 0;
|
||||
|
||||
rt1011->cali_done = 0;
|
||||
if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF &&
|
||||
ucontrol->value.integer.value[0])
|
||||
rt1011_calibrate(rt1011, 1);
|
||||
|
@ -2135,6 +2139,7 @@ static int rt1011_calibrate(struct rt1011_priv *rt1011, unsigned char cali_flag)
|
|||
r0_factor = ((format / r0[0] * 100) / 128)
|
||||
- (r0_integer * 100);
|
||||
rt1011->r0_reg = r0[0];
|
||||
rt1011->cali_done = 1;
|
||||
dev_info(dev, "r0 resistance about %d.%02d ohm, reg=0x%X\n",
|
||||
r0_integer, r0_factor, r0[0]);
|
||||
}
|
||||
|
@ -2185,6 +2190,13 @@ static void rt1011_calibration_work(struct work_struct *work)
|
|||
|
||||
rt1011_calibrate(rt1011, 1);
|
||||
|
||||
/*
|
||||
* This flag should reset after booting.
|
||||
* The factory test will do calibration again and use this flag to check
|
||||
* whether the calibration completed
|
||||
*/
|
||||
rt1011->cali_done = 0;
|
||||
|
||||
/* initial */
|
||||
rt1011_reg_init(component);
|
||||
}
|
||||
|
|
|
@ -666,7 +666,7 @@ struct rt1011_priv {
|
|||
int pll_out;
|
||||
|
||||
int bq_drc_set;
|
||||
unsigned int r0_reg;
|
||||
unsigned int r0_reg, cali_done;
|
||||
int recv_spk_mode;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue