Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input fixes from Dmitry Torokhov: - a fix to generate proper timestamps on key autorepeat events that were broken recently - a fix for Synaptics driver to only activate reduced reporting mode when explicitly requested - a new keycode for "selective screenshot" function - other assorted fixes * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: fix stale timestamp on key autorepeat events Input: move the new KEY_SELECTIVE_SCREENSHOT keycode Input: avoid BIT() macro usage in the serio.h UAPI header Input: synaptics-rmi4 - set reduced reporting mode only when requested Input: synaptics - enable RMI on HP Envy 13-ad105ng Input: allocate keycode for "Selective Screenshot" key Input: tm2-touchkey - add support for Coreriver TC360 variant dt-bindings: input: add Coreriver TC360 binding dt-bindings: vendor-prefixes: Add Coreriver vendor prefix Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()
This commit is contained in:
commit
f3e69428b5
|
@ -5,6 +5,7 @@ Required properties:
|
|||
* "cypress,tm2-touchkey" - for the touchkey found on the tm2 board
|
||||
* "cypress,midas-touchkey" - for the touchkey found on midas boards
|
||||
* "cypress,aries-touchkey" - for the touchkey found on aries boards
|
||||
* "coreriver,tc360-touchkey" - for the Coreriver TouchCore 360 touchkey
|
||||
- reg: I2C address of the chip.
|
||||
- interrupts: interrupt to which the chip is connected (see interrupt
|
||||
binding[0]).
|
||||
|
|
|
@ -205,6 +205,8 @@ patternProperties:
|
|||
description: Colorful GRP, Shenzhen Xueyushi Technology Ltd.
|
||||
"^compulab,.*":
|
||||
description: CompuLab Ltd.
|
||||
"^coreriver,.*":
|
||||
description: CORERIVER Semiconductor Co.,Ltd.
|
||||
"^corpro,.*":
|
||||
description: Chengdu Corpro Technology Co., Ltd.
|
||||
"^cortina,.*":
|
||||
|
|
|
@ -190,6 +190,7 @@ static void input_repeat_key(struct timer_list *t)
|
|||
input_value_sync
|
||||
};
|
||||
|
||||
input_set_timestamp(dev, ktime_get());
|
||||
input_pass_values(dev, vals, ARRAY_SIZE(vals));
|
||||
|
||||
if (dev->rep[REP_PERIOD])
|
||||
|
|
|
@ -75,6 +75,14 @@ static struct touchkey_variant aries_touchkey_variant = {
|
|||
.cmd_led_off = ARIES_TOUCHKEY_CMD_LED_OFF,
|
||||
};
|
||||
|
||||
static const struct touchkey_variant tc360_touchkey_variant = {
|
||||
.keycode_reg = 0x00,
|
||||
.base_reg = 0x00,
|
||||
.fixed_regulator = true,
|
||||
.cmd_led_on = TM2_TOUCHKEY_CMD_LED_ON,
|
||||
.cmd_led_off = TM2_TOUCHKEY_CMD_LED_OFF,
|
||||
};
|
||||
|
||||
static int tm2_touchkey_led_brightness_set(struct led_classdev *led_dev,
|
||||
enum led_brightness brightness)
|
||||
{
|
||||
|
@ -327,6 +335,9 @@ static const struct of_device_id tm2_touchkey_of_match[] = {
|
|||
}, {
|
||||
.compatible = "cypress,aries-touchkey",
|
||||
.data = &aries_touchkey_variant,
|
||||
}, {
|
||||
.compatible = "coreriver,tc360-touchkey",
|
||||
.data = &tc360_touchkey_variant,
|
||||
},
|
||||
{ },
|
||||
};
|
||||
|
|
|
@ -186,6 +186,7 @@ static const char * const smbus_pnp_ids[] = {
|
|||
"SYN3052", /* HP EliteBook 840 G4 */
|
||||
"SYN3221", /* HP 15-ay000 */
|
||||
"SYN323d", /* HP Spectre X360 13-w013dx */
|
||||
"SYN3257", /* HP Envy 13-ad105ng */
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
|
@ -1203,8 +1203,8 @@ static int rmi_f11_initialize(struct rmi_function *fn)
|
|||
* If distance threshold values are set, switch to reduced reporting
|
||||
* mode so they actually get used by the controller.
|
||||
*/
|
||||
if (ctrl->ctrl0_11[RMI_F11_DELTA_X_THRESHOLD] ||
|
||||
ctrl->ctrl0_11[RMI_F11_DELTA_Y_THRESHOLD]) {
|
||||
if (sensor->axis_align.delta_x_threshold ||
|
||||
sensor->axis_align.delta_y_threshold) {
|
||||
ctrl->ctrl0_11[0] &= ~RMI_F11_REPORT_MODE_MASK;
|
||||
ctrl->ctrl0_11[0] |= RMI_F11_REPORT_MODE_REDUCED;
|
||||
}
|
||||
|
|
|
@ -432,7 +432,7 @@ static int raydium_i2c_write_object(struct i2c_client *client,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static bool raydium_i2c_boot_trigger(struct i2c_client *client)
|
||||
static int raydium_i2c_boot_trigger(struct i2c_client *client)
|
||||
{
|
||||
static const u8 cmd[7][6] = {
|
||||
{ 0x08, 0x0C, 0x09, 0x00, 0x50, 0xD7 },
|
||||
|
@ -457,10 +457,10 @@ static bool raydium_i2c_boot_trigger(struct i2c_client *client)
|
|||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool raydium_i2c_fw_trigger(struct i2c_client *client)
|
||||
static int raydium_i2c_fw_trigger(struct i2c_client *client)
|
||||
{
|
||||
static const u8 cmd[5][11] = {
|
||||
{ 0, 0x09, 0x71, 0x0C, 0x09, 0x00, 0x50, 0xD7, 0, 0, 0 },
|
||||
|
@ -483,7 +483,7 @@ static bool raydium_i2c_fw_trigger(struct i2c_client *client)
|
|||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int raydium_i2c_check_path(struct i2c_client *client)
|
||||
|
|
|
@ -652,6 +652,9 @@
|
|||
/* Electronic privacy screen control */
|
||||
#define KEY_PRIVACY_SCREEN_TOGGLE 0x279
|
||||
|
||||
/* Select an area of screen to be copied */
|
||||
#define KEY_SELECTIVE_SCREENSHOT 0x27a
|
||||
|
||||
/*
|
||||
* Some keyboards have keys which do not have a defined meaning, these keys
|
||||
* are intended to be programmed / bound to macros by the user. For most
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#ifndef _UAPI_SERIO_H
|
||||
#define _UAPI_SERIO_H
|
||||
|
||||
|
||||
#include <linux/const.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define SPIOCSTYPE _IOW('q', 0x01, unsigned long)
|
||||
|
@ -18,10 +18,10 @@
|
|||
/*
|
||||
* bit masks for use in "interrupt" flags (3rd argument)
|
||||
*/
|
||||
#define SERIO_TIMEOUT BIT(0)
|
||||
#define SERIO_PARITY BIT(1)
|
||||
#define SERIO_FRAME BIT(2)
|
||||
#define SERIO_OOB_DATA BIT(3)
|
||||
#define SERIO_TIMEOUT _BITUL(0)
|
||||
#define SERIO_PARITY _BITUL(1)
|
||||
#define SERIO_FRAME _BITUL(2)
|
||||
#define SERIO_OOB_DATA _BITUL(3)
|
||||
|
||||
/*
|
||||
* Serio types
|
||||
|
|
Loading…
Reference in New Issue