From b09f20aa364e6800454bc253909eef407c60ef06 Mon Sep 17 00:00:00 2001 From: Fenglin Wu Date: Wed, 27 Oct 2021 11:18:38 +0800 Subject: [PATCH] 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 --- drivers/input/misc/qcom-hv-haptics.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/input/misc/qcom-hv-haptics.c b/drivers/input/misc/qcom-hv-haptics.c index 873aa2a0cbe8..4c8a8ca6a147 100644 --- a/drivers/input/misc/qcom-hv-haptics.c +++ b/drivers/input/misc/qcom-hv-haptics.c @@ -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;