diff options
Diffstat (limited to 'drivers/input/misc')
-rw-r--r-- | drivers/input/misc/adxl34x.c | 2 | ||||
-rw-r--r-- | drivers/input/misc/hp_sdc_rtc.c | 5 | ||||
-rw-r--r-- | drivers/input/misc/pcf8574_keypad.c | 7 |
3 files changed, 10 insertions, 4 deletions
diff --git a/drivers/input/misc/adxl34x.c b/drivers/input/misc/adxl34x.c index 0735de3a6468..1cb1da294419 100644 --- a/drivers/input/misc/adxl34x.c +++ b/drivers/input/misc/adxl34x.c | |||
@@ -158,7 +158,7 @@ | |||
158 | 158 | ||
159 | /* ORIENT ADXL346 only */ | 159 | /* ORIENT ADXL346 only */ |
160 | #define ADXL346_2D_VALID (1 << 6) | 160 | #define ADXL346_2D_VALID (1 << 6) |
161 | #define ADXL346_2D_ORIENT(x) (((x) & 0x3) >> 4) | 161 | #define ADXL346_2D_ORIENT(x) (((x) & 0x30) >> 4) |
162 | #define ADXL346_3D_VALID (1 << 3) | 162 | #define ADXL346_3D_VALID (1 << 3) |
163 | #define ADXL346_3D_ORIENT(x) ((x) & 0x7) | 163 | #define ADXL346_3D_ORIENT(x) ((x) & 0x7) |
164 | #define ADXL346_2D_PORTRAIT_POS 0 /* +X */ | 164 | #define ADXL346_2D_PORTRAIT_POS 0 /* +X */ |
diff --git a/drivers/input/misc/hp_sdc_rtc.c b/drivers/input/misc/hp_sdc_rtc.c index 86b822806e95..45e0e3e55de2 100644 --- a/drivers/input/misc/hp_sdc_rtc.c +++ b/drivers/input/misc/hp_sdc_rtc.c | |||
@@ -180,7 +180,10 @@ static int64_t hp_sdc_rtc_read_i8042timer (uint8_t loadcmd, int numreg) | |||
180 | if (WARN_ON(down_interruptible(&i8042tregs))) | 180 | if (WARN_ON(down_interruptible(&i8042tregs))) |
181 | return -1; | 181 | return -1; |
182 | 182 | ||
183 | if (hp_sdc_enqueue_transaction(&t)) return -1; | 183 | if (hp_sdc_enqueue_transaction(&t)) { |
184 | up(&i8042tregs); | ||
185 | return -1; | ||
186 | } | ||
184 | 187 | ||
185 | /* Sleep until results come back. */ | 188 | /* Sleep until results come back. */ |
186 | if (WARN_ON(down_interruptible(&i8042tregs))) | 189 | if (WARN_ON(down_interruptible(&i8042tregs))) |
diff --git a/drivers/input/misc/pcf8574_keypad.c b/drivers/input/misc/pcf8574_keypad.c index e37392976fdd..0deca5a3c87f 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 | |||
113 | idev->keycodemax = ARRAY_SIZE(lp->btncode); | 113 | idev->keycodemax = ARRAY_SIZE(lp->btncode); |
114 | 114 | ||
115 | for (i = 0; i < ARRAY_SIZE(pcf8574_kp_btncode); i++) { | 115 | for (i = 0; i < ARRAY_SIZE(pcf8574_kp_btncode); i++) { |
116 | lp->btncode[i] = pcf8574_kp_btncode[i]; | 116 | if (lp->btncode[i] <= KEY_MAX) { |
117 | __set_bit(lp->btncode[i] & KEY_MAX, idev->keybit); | 117 | lp->btncode[i] = pcf8574_kp_btncode[i]; |
118 | __set_bit(lp->btncode[i], idev->keybit); | ||
119 | } | ||
118 | } | 120 | } |
121 | __clear_bit(KEY_RESERVED, idev->keybit); | ||
119 | 122 | ||
120 | sprintf(lp->name, DRV_NAME); | 123 | sprintf(lp->name, DRV_NAME); |
121 | sprintf(lp->phys, "kp_data/input0"); | 124 | sprintf(lp->phys, "kp_data/input0"); |