Skip to content

Commit fc47912

Browse files
committed
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input updates from Dmitry Torokhov: "A few drivers were updated with device tree bindings and others got a few small cleanups and fixes." Fix trivial conflict in drivers/input/keyboard/omap-keypad.c due to changes clashing with a whitespace cleanup. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (28 commits) Input: wacom - mark Intuos5 pad as in-prox when touching buttons Input: synaptics - adjust threshold for treating position values as negative Input: hgpk - use %*ph to dump small buffer Input: gpio_keys_polled - fix dt pdata->nbuttons Input: Add KD[GS]KBDIACRUC ioctls to the compatible list Input: omap-keypad - fixed formatting Input: tegra - move platform data header Input: wacom - add support for EMR on Cintiq 24HD touch Input: s3c2410_ts - make s3c_ts_pmops const Input: samsung-keypad - use of_get_child_count() helper Input: samsung-keypad - use of_match_ptr() Input: uinput - fix formatting Input: uinput - specify exact bit sizes on userspace APIs Input: uinput - mark failed submission requests as free Input: uinput - fix race that can block nonblocking read Input: uinput - return -EINVAL when read buffer size is too small Input: uinput - take event lock when fetching events from buffer Input: get rid of MATCH_BIT() macro Input: rotary-encoder - add DT bindings Input: rotary-encoder - constify platform data pointers ...
2 parents 06fe918 + dde3ada commit fc47912

File tree

24 files changed

+610
-287
lines changed

24 files changed

+610
-287
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
Device-Tree bindings for input/gpio_keys_polled.c keyboard driver
2+
3+
Required properties:
4+
- compatible = "gpio-keys-polled";
5+
- poll-interval: Poll interval time in milliseconds
6+
7+
Optional properties:
8+
- autorepeat: Boolean, Enable auto repeat feature of Linux input
9+
subsystem.
10+
11+
Each button (key) is represented as a sub-node of "gpio-keys-polled":
12+
Subnode properties:
13+
14+
- gpios: OF device-tree gpio specification.
15+
- label: Descriptive name of the key.
16+
- linux,code: Keycode to emit.
17+
18+
Optional subnode-properties:
19+
- linux,input-type: Specify event type this button/key generates.
20+
If not specified defaults to <1> == EV_KEY.
21+
- debounce-interval: Debouncing interval time in milliseconds.
22+
If not specified defaults to 5.
23+
- gpio-key,wakeup: Boolean, button can wake-up the system.
24+
25+
Example nodes:
26+
27+
gpio_keys_polled {
28+
compatible = "gpio-keys-polled";
29+
#address-cells = <1>;
30+
#size-cells = <0>;
31+
poll-interval = <100>;
32+
autorepeat;
33+
button@21 {
34+
label = "GPIO Key UP";
35+
linux,code = <103>;
36+
gpios = <&gpio1 0 1>;
37+
};
38+
...
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Rotary encoder DT bindings
2+
3+
Required properties:
4+
- gpios: a spec for two GPIOs to be used
5+
6+
Optional properties:
7+
- linux,axis: the input subsystem axis to map to this rotary encoder.
8+
Defaults to 0 (ABS_X / REL_X)
9+
- rotary-encoder,steps: Number of steps in a full turnaround of the
10+
encoder. Only relevant for absolute axis. Defaults to 24 which is a
11+
typical value for such devices.
12+
- rotary-encoder,relative-axis: register a relative axis rather than an
13+
absolute one. Relative axis will only generate +1/-1 events on the input
14+
device, hence no steps need to be passed.
15+
- rotary-encoder,rollover: Automatic rollove when the rotary value becomes
16+
greater than the specified steps or smaller than 0. For absolute axis only.
17+
- rotary-encoder,half-period: Makes the driver work on half-period mode.
18+
19+
See Documentation/input/rotary-encoder.txt for more information.
20+
21+
Example:
22+
23+
rotary@0 {
24+
compatible = "rotary-encoder";
25+
gpios = <&gpio 19 1>, <&gpio 20 0>; /* GPIO19 is inverted */
26+
linux,axis = <0>; /* REL_X */
27+
rotary-encoder,relative-axis;
28+
};
29+
30+
rotary@1 {
31+
compatible = "rotary-encoder";
32+
gpios = <&gpio 21 0>, <&gpio 22 0>;
33+
linux,axis = <1>; /* ABS_Y */
34+
rotary-encoder,steps = <24>;
35+
rotary-encoder,rollover;
36+
};

drivers/input/apm-power.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ static void system_power_event(unsigned int keycode)
3333
}
3434

3535
static void apmpower_event(struct input_handle *handle, unsigned int type,
36-
unsigned int code, int value)
36+
unsigned int code, int value)
3737
{
3838
/* only react on key down events */
3939
if (value != 1)

drivers/input/ff-core.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ int input_ff_upload(struct input_dev *dev, struct ff_effect *effect,
138138

139139
if (effect->id == -1) {
140140
for (id = 0; id < ff->max_effects; id++)
141-
if (!ff->effect_owners[id])
142-
break;
141+
if (!ff->effect_owners[id])
142+
break;
143143

144144
if (id >= ff->max_effects) {
145145
ret = -ENOSPC;

drivers/input/ff-memless.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,14 @@ static const struct ff_envelope *get_envelope(const struct ff_effect *effect)
7272
static const struct ff_envelope empty_envelope;
7373

7474
switch (effect->type) {
75-
case FF_PERIODIC:
76-
return &effect->u.periodic.envelope;
77-
case FF_CONSTANT:
78-
return &effect->u.constant.envelope;
79-
default:
80-
return &empty_envelope;
75+
case FF_PERIODIC:
76+
return &effect->u.periodic.envelope;
77+
78+
case FF_CONSTANT:
79+
return &effect->u.constant.envelope;
80+
81+
default:
82+
return &empty_envelope;
8183
}
8284
}
8385

drivers/input/input.c

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -918,18 +918,10 @@ int input_set_keycode(struct input_dev *dev,
918918
}
919919
EXPORT_SYMBOL(input_set_keycode);
920920

921-
#define MATCH_BIT(bit, max) \
922-
for (i = 0; i < BITS_TO_LONGS(max); i++) \
923-
if ((id->bit[i] & dev->bit[i]) != id->bit[i]) \
924-
break; \
925-
if (i != BITS_TO_LONGS(max)) \
926-
continue;
927-
928921
static const struct input_device_id *input_match_device(struct input_handler *handler,
929922
struct input_dev *dev)
930923
{
931924
const struct input_device_id *id;
932-
int i;
933925

934926
for (id = handler->id_table; id->flags || id->driver_info; id++) {
935927

@@ -949,15 +941,32 @@ static const struct input_device_id *input_match_device(struct input_handler *ha
949941
if (id->version != dev->id.version)
950942
continue;
951943

952-
MATCH_BIT(evbit, EV_MAX);
953-
MATCH_BIT(keybit, KEY_MAX);
954-
MATCH_BIT(relbit, REL_MAX);
955-
MATCH_BIT(absbit, ABS_MAX);
956-
MATCH_BIT(mscbit, MSC_MAX);
957-
MATCH_BIT(ledbit, LED_MAX);
958-
MATCH_BIT(sndbit, SND_MAX);
959-
MATCH_BIT(ffbit, FF_MAX);
960-
MATCH_BIT(swbit, SW_MAX);
944+
if (!bitmap_subset(id->evbit, dev->evbit, EV_MAX))
945+
continue;
946+
947+
if (!bitmap_subset(id->keybit, dev->keybit, KEY_MAX))
948+
continue;
949+
950+
if (!bitmap_subset(id->relbit, dev->relbit, REL_MAX))
951+
continue;
952+
953+
if (!bitmap_subset(id->absbit, dev->absbit, ABS_MAX))
954+
continue;
955+
956+
if (!bitmap_subset(id->mscbit, dev->mscbit, MSC_MAX))
957+
continue;
958+
959+
if (!bitmap_subset(id->ledbit, dev->ledbit, LED_MAX))
960+
continue;
961+
962+
if (!bitmap_subset(id->sndbit, dev->sndbit, SND_MAX))
963+
continue;
964+
965+
if (!bitmap_subset(id->ffbit, dev->ffbit, FF_MAX))
966+
continue;
967+
968+
if (!bitmap_subset(id->swbit, dev->swbit, SW_MAX))
969+
continue;
961970

962971
if (!handler->match || handler->match(handler, dev))
963972
return id;

drivers/input/joydev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ static long joydev_ioctl(struct file *file,
711711

712712
case JS_SET_ALL:
713713
retval = copy_from_user(&joydev->glue, argp,
714-
sizeof(joydev->glue)) ? -EFAULT: 0;
714+
sizeof(joydev->glue)) ? -EFAULT : 0;
715715
break;
716716

717717
case JS_GET_ALL:

0 commit comments

Comments
 (0)