staging: hikey9xx: hi6421v600-regulator: fix delay logic
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 21 Jan 2021 07:18:12 +0000 (08:18 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Jan 2021 17:52:54 +0000 (18:52 +0100)
commitfd765da06066215b5e75c5c2a0db1543a81aa14d
tree8be4df3c7a01334f006731e0650ccbd15c03bc14
parent746eae6a164e1dfc992323c4aeaf157c21333958
staging: hikey9xx: hi6421v600-regulator: fix delay logic

The original driver, which can be seen at
commit 42f24d9d446a ("staging: regulator: add a regulator driver for HiSilicon 6421v600 SPMI PMIC")
had a complex logic to ensure that there won't be multiple power
enable/disable commands running at the same time. At the original
logic, it were ensured that:

- a next power up/down would wait for at least the on/off period;
- an extra delay would be granted. It turns that such extra delay
  has a value of zero, but it was relying on gettimeofday()
  call, which can take some time.

This was later simplified, but there are still some possible
issues. In order to avoid that, let's simply add a delay
to wait for the power up line to stabilize after powering up
a device.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/6733dac9813ba6688def404142cb7b964accf758.1611212783.git.mchehab+huawei@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/hikey9xx/hi6421v600-regulator.c
include/linux/mfd/hi6421-spmi-pmic.h