input: qcom-hv-haptics: use OL_TLRA if getting CL_TLRA failed

If getting close-loop TLRA failed in driver probe, such as if there
is no valid value in SDAM register for CAL_TLRA_CL_STS because of the
bootloader had not run the frequency calibration successfully. Use
open-loop TLRA to program the hardware so the vibrator can still be
functional but just lose some efficiency because of unadjusted
frequency.

Change-Id: I8b8dd0906aa6b3fa882e2044cdbe579c746714a3
Signed-off-by: Fenglin Wu <quic_fenglinw@quicinc.com>
This commit is contained in:
Fenglin Wu 2021-12-22 12:31:01 +08:00 committed by David Collins
parent be18d8d3b5
commit e37bf7e664

View File

@ -2720,15 +2720,14 @@ static int haptics_init_lra_period_config(struct haptics_chip *chip)
return rc;
/* get calibrated close loop period */
t_lra_us = chip->config.t_lra_us;
rc = haptics_get_closeloop_lra_period(chip, true);
if (rc < 0)
return rc;
if (!rc && chip->config.cl_t_lra_us != 0)
t_lra_us = chip->config.cl_t_lra_us;
else
dev_warn(chip->dev, "get closeloop LRA period failed, rc=%d\n", rc);
/* Config T_LRA */
t_lra_us = chip->config.t_lra_us;
if (chip->config.cl_t_lra_us != 0)
t_lra_us = chip->config.cl_t_lra_us;
return haptics_config_openloop_lra_period(chip, t_lra_us);
}