summaryrefslogtreecommitdiffstats
path: root/drivers/input/misc/pcf8574_keypad.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-01-05 11:19:34 +0100
committerTakashi Iwai <tiwai@suse.de>2014-01-05 11:19:34 +0100
commit4b5a5096bb834102b2e821f5f34274f041862d67 (patch)
treefe55f4f11111e34d503a6a01aeb4bfc2eae5e88a /drivers/input/misc/pcf8574_keypad.c
parent19570d747795f0ecff79403698b868dc5ad7fa86 (diff)
parent150116bcfbd9004f01e682535baddaca2b90d3b2 (diff)
Merge branch 'for-linus' into for-next
Diffstat (limited to 'drivers/input/misc/pcf8574_keypad.c')
-rw-r--r--drivers/input/misc/pcf8574_keypad.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/input/misc/pcf8574_keypad.c b/drivers/input/misc/pcf8574_keypad.c
index e37392976fd..0deca5a3c87 100644
--- a/drivers/input/misc/pcf8574_keypad.c
+++ b/drivers/input/misc/pcf8574_keypad.c
@@ -113,9 +113,12 @@ static int pcf8574_kp_probe(struct i2c_client *client, const struct i2c_device_i
idev->keycodemax = ARRAY_SIZE(lp->btncode);
for (i = 0; i < ARRAY_SIZE(pcf8574_kp_btncode); i++) {
- lp->btncode[i] = pcf8574_kp_btncode[i];
- __set_bit(lp->btncode[i] & KEY_MAX, idev->keybit);
+ if (lp->btncode[i] <= KEY_MAX) {
+ lp->btncode[i] = pcf8574_kp_btncode[i];
+ __set_bit(lp->btncode[i], idev->keybit);
+ }
}
+ __clear_bit(KEY_RESERVED, idev->keybit);
sprintf(lp->name, DRV_NAME);
sprintf(lp->phys, "kp_data/input0");