From 499088dfa72de234446a2a0a663aa0870ede84c1 Mon Sep 17 00:00:00 2001 From: Weilong Wu Date: Tue, 15 Oct 2019 15:08:36 +0800 Subject: [PATCH] dlkm: aw8624: fixed abnormal vibrator issue In some scenario, vibrator may can not stop immediately because stop command was returned. use 5ms delay to replace it and make sure short vibrator can work well. Change-Id: I82720f0d031c7306e1b5f806aa5a380ccccb8eec Signed-off-by: Weilong Wu Reviewed-on: https://gerrit.mot.com/1436810 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Hujun Liao Submit-Approved: Jira Key --- drivers/misc/awinic/aw8624/aw8624.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/misc/awinic/aw8624/aw8624.c b/drivers/misc/awinic/aw8624/aw8624.c index 3bbf61acaa8d..c5fc230050a4 100644 --- a/drivers/misc/awinic/aw8624/aw8624.c +++ b/drivers/misc/awinic/aw8624/aw8624.c @@ -1550,6 +1550,7 @@ static ssize_t aw8624_duration_store(struct device *dev, if (rc < 0) return rc; + pr_debug("%s: value=%d\n", __FUNCTION__, val); /* setting 0 on duration is NOP for now */ if (val <= 0) return count; @@ -1590,7 +1591,8 @@ static ssize_t aw8624_activate_store(struct device *dev, pr_debug("%s: value=%d\n", __FUNCTION__, val); if (val == 0) - return count; + msleep(5); + mutex_lock(&aw8624->lock); hrtimer_cancel(&aw8624->timer); aw8624->state = val;