linux/drivers/input
Stephen Boyd eea89e2557 Input: pmic8xxx-pwrkey - fix algorithm for converting trigger delay
[ Upstream commit eda5ecc0a6 ]

The trigger delay algorithm that converts from microseconds to
the register value looks incorrect. According to most of the PMIC
documentation, the equation is

	delay (Seconds) = (1 / 1024) * 2 ^ (x + 4)

except for one case where the documentation looks to have a
formatting issue and the equation looks like

	delay (Seconds) = (1 / 1024) * 2 x + 4

Most likely this driver was written with the improper
documentation to begin with. According to the downstream sources
the valid delays are from 2 seconds to 1/64 second, and the
latter equation just doesn't make sense for that. Let's fix the
algorithm and the range check to match the documentation and the
downstream sources.

Reported-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Fixes: 92d57a73e4 ("input: Add support for Qualcomm PMIC8XXX power key")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Tested-by: John Stultz <john.stultz@linaro.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2016-07-12 08:47:46 -04:00
..
gameport Input: joystick - use ktime for measuring timing 2014-09-11 23:41:18 -07:00
joystick Input: zhenhua - ensure we have BITREVERSE 2015-12-03 09:57:24 -05:00
keyboard Input: omap4-keypad - fix memory leak 2015-12-03 09:57:13 -05:00
misc Input: pmic8xxx-pwrkey - fix algorithm for converting trigger delay 2016-07-12 08:47:46 -04:00
mouse Input: elantech - add more IC body types to the list 2016-07-12 08:47:04 -04:00
serio Input: i8042 - add Fujitsu Lifebook U745 to the nomux list 2016-02-09 22:56:18 -05:00
tablet Input: gtco - fix crash on detecting device without endpoints 2016-05-08 16:49:12 -04:00
touchscreen Input: wacom_w8001 - w8001_MAX_LENGTH should be 13 2016-07-12 08:47:03 -04:00
apm-power.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
evbug.c Input: use pr_fmt and pr_<level> 2010-11-30 23:10:26 -08:00
evdev.c Input: evdev - do not report errors form flush() 2015-10-07 10:12:48 -04:00
ff-core.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
ff-memless.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
input-compat.c compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-compat.h compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-mt.c Input: fix used slots detection breakage 2014-08-25 14:59:48 -07:00
input-polldev.c Input: implement managed polled input devices 2014-05-14 16:40:04 -07:00
input.c Input: avoid negative input device numbers 2014-10-09 15:27:24 -07:00
joydev.c Input: fix use-after-free introduced with dynamic minor changes 2012-10-22 08:50:37 +03:00
Kconfig Input: mousedev - allow disabling even without CONFIG_EXPERT 2013-10-31 08:46:07 -07:00
Makefile Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
matrix-keymap.c input: Export matrix_keypad_parse_of_params() 2013-04-19 00:31:13 +02:00
mousedev.c Input: mousedev - fix race when creating mixed device 2014-03-29 14:44:23 -07:00
sparse-keymap.c treewide: Fix typo in Documentation/DocBook 2014-02-19 14:58:17 +01:00