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 <fenglinw@codeaurora.org>
This commit is contained in:
Fenglin Wu 2021-10-27 11:18:38 +08:00 • committed by Fenglin Wu
commit b09f20aa36

View file

@ -2721,15 +2721,15 @@ static int haptics_hw_init(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;
rc = haptics_config_openloop_lra_period(chip, t_lra_us);
if (rc < 0)
return rc;