diff options
author | Won Hyoung Lee <whlee@sta.samsung.com> | 2011-11-08 14:07:10 -0800 |
---|---|---|
committer | Arve Hjønnevåg <arve@android.com> | 2011-11-17 17:54:44 -0800 |
commit | 197b429c4b705836c9ac0902d67d716049529297 (patch) | |
tree | 8535e2378795c122ba43eeb54ee858bb2874a5d8 /drivers/input | |
parent | 7353b3f93f19a73f5465a49872d80f6e09758833 (diff) | |
download | kernel_samsung_crespo-197b429c4b705836c9ac0902d67d716049529297.zip kernel_samsung_crespo-197b429c4b705836c9ac0902d67d716049529297.tar.gz kernel_samsung_crespo-197b429c4b705836c9ac0902d67d716049529297.tar.bz2 |
gp2a: set poll_delay to DELAY_LOWBOUND when new delay < DELAY_LOWBOUND
If a delay of 0 or some low value is passed from any apps,
then system can lock up.
Change-Id: I543d48a1e02becd1f74cc81e0212909d3e864082
Signed-off-by: Won Hyoung Lee <whlee@sta.samsung.com>
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/misc/gp2a.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/input/misc/gp2a.c b/drivers/input/misc/gp2a.c index ea82700..472da90 100644 --- a/drivers/input/misc/gp2a.c +++ b/drivers/input/misc/gp2a.c @@ -64,6 +64,8 @@ #define PROXIMITY 1 #define ALL 2 +#define DELAY_LOWBOUND (5 * NSEC_PER_MSEC) + /* start time delay for light sensor in nano seconds */ #define LIGHT_SENSOR_START_TIME_DELAY 50000000 @@ -167,6 +169,13 @@ static ssize_t poll_delay_store(struct device *dev, gp2a_dbgmsg("new delay = %lldns, old delay = %lldns\n", new_delay, ktime_to_ns(gp2a->light_poll_delay)); + + if (new_delay < DELAY_LOWBOUND) { + gp2a_dbgmsg("new delay less than low bound, so set delay " + "to %lld\n", (int64_t)DELAY_LOWBOUND); + new_delay = DELAY_LOWBOUND; + } + mutex_lock(&gp2a->power_lock); if (new_delay != ktime_to_ns(gp2a->light_poll_delay)) { gp2a->light_poll_delay = ns_to_ktime(new_delay); |