From 531d907590efd4fd887d21b5ef4f7dddfa957cb0 Mon Sep 17 00:00:00 2001 From: Fenglin Wu Date: Wed, 24 Aug 2022 15:21:18 +0800 Subject: [PATCH] input: qcom-hv-haptics: update configuration for PATx_MEM mode Disable auto resonance explicitly for PATx_MEM mode play according to HW recommendation. Also, clear MEM_PAT_ACCESS_BIT after written PATx_MEM samples and it reduces device quiescent current in power off state. Change-Id: Iafaca15482bf1a03a19a49ee4d5e30faeb2fdeeb Signed-off-by: Fenglin Wu --- drivers/input/misc/qcom-hv-haptics.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/input/misc/qcom-hv-haptics.c b/drivers/input/misc/qcom-hv-haptics.c index 01b2589565c1..cb0aebfb29ae 100644 --- a/drivers/input/misc/qcom-hv-haptics.c +++ b/drivers/input/misc/qcom-hv-haptics.c @@ -1844,7 +1844,10 @@ static int haptics_update_pat_mem_samples(struct haptics_chip *chip, if (rc < 0) return rc; - return haptics_update_memory_data(chip, samples, length); + rc = haptics_update_memory_data(chip, samples, length); + rc |= haptics_masked_write(chip, chip->ptn_addr_base, + HAP_PTN_MEM_OP_ACCESS_REG, MEM_PAT_ACCESS_BIT, 0); + return rc; } static int haptics_get_fifo_fill_status(struct haptics_chip *chip, u32 *fill) @@ -2182,6 +2185,11 @@ static int haptics_load_predefined_effect(struct haptics_chip *chip, return -EINVAL; } + /* disable auto resonance for PATx_MEM mode */ + rc = haptics_enable_autores(chip, false); + if (rc < 0) + return rc; + dev_dbg(chip->dev, "Ignore loading data for preload FIFO effect: %d\n", play->effect->id); }