Commit 3b4334e2 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: tsc2007 - fix locking in hrtimer handler
  Input: atkbd - add force release keys quirk for Amilo Xi 3650
  Input: ff-memless - fix signed to unsigned bit overflow
  Input: joydev - blacklist digitizers
parents 34fd5dad 705a76d2
...@@ -226,7 +226,7 @@ static int get_compatible_type(struct ff_device *ff, int effect_type) ...@@ -226,7 +226,7 @@ static int get_compatible_type(struct ff_device *ff, int effect_type)
*/ */
static void ml_combine_effects(struct ff_effect *effect, static void ml_combine_effects(struct ff_effect *effect,
struct ml_effect_state *state, struct ml_effect_state *state,
int gain) unsigned int gain)
{ {
struct ff_effect *new = state->effect; struct ff_effect *new = state->effect;
unsigned int strong, weak, i; unsigned int strong, weak, i;
......
...@@ -843,7 +843,13 @@ static const struct input_device_id joydev_blacklist[] = { ...@@ -843,7 +843,13 @@ static const struct input_device_id joydev_blacklist[] = {
INPUT_DEVICE_ID_MATCH_KEYBIT, INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) }, .evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) }, .keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) },
}, /* Avoid itouchpads, touchscreens and tablets */ }, /* Avoid itouchpads and touchscreens */
{
.flags = INPUT_DEVICE_ID_MATCH_EVBIT |
INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(BTN_DIGI)] = BIT_MASK(BTN_DIGI) },
}, /* Avoid tablets, digitisers and similar devices */
{ } /* Terminating entry */ { } /* Terminating entry */
}; };
......
...@@ -894,6 +894,13 @@ static unsigned int atkbd_amilo_pa1510_forced_release_keys[] = { ...@@ -894,6 +894,13 @@ static unsigned int atkbd_amilo_pa1510_forced_release_keys[] = {
0xb0, 0xae, -1U 0xb0, 0xae, -1U
}; };
/*
* Amilo Xi 3650 key release for light touch bar not working
*/
static unsigned int atkbd_amilo_xi3650_forced_release_keys[] = {
0x67, 0xed, 0x90, 0xa2, 0x99, 0xa4, 0xae, 0xb0, -1U
};
/* /*
* atkbd_set_keycode_table() initializes keyboard's keycode table * atkbd_set_keycode_table() initializes keyboard's keycode table
* according to the selected scancode set * according to the selected scancode set
...@@ -1560,6 +1567,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = { ...@@ -1560,6 +1567,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
.callback = atkbd_setup_forced_release, .callback = atkbd_setup_forced_release,
.driver_data = atkbd_amilo_pa1510_forced_release_keys, .driver_data = atkbd_amilo_pa1510_forced_release_keys,
}, },
{
.ident = "Fujitsu Amilo Xi 3650",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 3650"),
},
.callback = atkbd_setup_forced_release,
.driver_data = atkbd_amilo_xi3650_forced_release_keys,
},
{ } { }
}; };
......
...@@ -200,8 +200,9 @@ static int tsc2007_read_values(struct tsc2007 *tsc) ...@@ -200,8 +200,9 @@ static int tsc2007_read_values(struct tsc2007 *tsc)
static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle) static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
{ {
struct tsc2007 *ts = container_of(handle, struct tsc2007, timer); struct tsc2007 *ts = container_of(handle, struct tsc2007, timer);
unsigned long flags;
spin_lock_irq(&ts->lock); spin_lock_irqsave(&ts->lock, flags);
if (unlikely(!ts->get_pendown_state() && ts->pendown)) { if (unlikely(!ts->get_pendown_state() && ts->pendown)) {
struct input_dev *input = ts->input; struct input_dev *input = ts->input;
...@@ -222,7 +223,7 @@ static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle) ...@@ -222,7 +223,7 @@ static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
tsc2007_send_event(ts); tsc2007_send_event(ts);
} }
spin_unlock_irq(&ts->lock); spin_unlock_irqrestore(&ts->lock, flags);
return HRTIMER_NORESTART; return HRTIMER_NORESTART;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment