mirror of https://gitee.com/openkylin/linux.git
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
This commit is contained in:
commit
3b4334e200
|
@ -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,
|
||||
struct ml_effect_state *state,
|
||||
int gain)
|
||||
unsigned int gain)
|
||||
{
|
||||
struct ff_effect *new = state->effect;
|
||||
unsigned int strong, weak, i;
|
||||
|
|
|
@ -843,7 +843,13 @@ static const struct input_device_id joydev_blacklist[] = {
|
|||
INPUT_DEVICE_ID_MATCH_KEYBIT,
|
||||
.evbit = { BIT_MASK(EV_KEY) },
|
||||
.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 */
|
||||
};
|
||||
|
||||
|
|
|
@ -894,6 +894,13 @@ static unsigned int atkbd_amilo_pa1510_forced_release_keys[] = {
|
|||
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
|
||||
* according to the selected scancode set
|
||||
|
@ -1560,6 +1567,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
|
|||
.callback = atkbd_setup_forced_release,
|
||||
.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)
|
|||
static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
|
||||
{
|
||||
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)) {
|
||||
struct input_dev *input = ts->input;
|
||||
|
@ -222,7 +223,7 @@ static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
|
|||
tsc2007_send_event(ts);
|
||||
}
|
||||
|
||||
spin_unlock_irq(&ts->lock);
|
||||
spin_unlock_irqrestore(&ts->lock, flags);
|
||||
|
||||
return HRTIMER_NORESTART;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue