Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b4334e2 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
+7 −1
Original line number Diff line number Diff line
@@ -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 */
};

+16 −0
Original line number Diff line number Diff line
@@ -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,
	},
	{ }
};

+3 −2
Original line number Diff line number Diff line
@@ -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;
}