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,tm2-touchkey" - for the touchkey found on the tm2 board
|
||||||
* "cypress,midas-touchkey" - for the touchkey found on midas boards
|
* "cypress,midas-touchkey" - for the touchkey found on midas boards
|
||||||
* "cypress,aries-touchkey" - for the touchkey found on aries 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.
|
- reg: I2C address of the chip.
|
||||||
- interrupts: interrupt to which the chip is connected (see interrupt
|
- interrupts: interrupt to which the chip is connected (see interrupt
|
||||||
binding[0]).
|
binding[0]).
|
||||||
|
|
|
@ -205,6 +205,8 @@ patternProperties:
|
||||||
description: Colorful GRP, Shenzhen Xueyushi Technology Ltd.
|
description: Colorful GRP, Shenzhen Xueyushi Technology Ltd.
|
||||||
"^compulab,.*":
|
"^compulab,.*":
|
||||||
description: CompuLab Ltd.
|
description: CompuLab Ltd.
|
||||||
|
"^coreriver,.*":
|
||||||
|
description: CORERIVER Semiconductor Co.,Ltd.
|
||||||
"^corpro,.*":
|
"^corpro,.*":
|
||||||
description: Chengdu Corpro Technology Co., Ltd.
|
description: Chengdu Corpro Technology Co., Ltd.
|
||||||
"^cortina,.*":
|
"^cortina,.*":
|
||||||
|
|
|
@ -190,6 +190,7 @@ static void input_repeat_key(struct timer_list *t)
|
||||||
input_value_sync
|
input_value_sync
|
||||||
};
|
};
|
||||||
|
|
||||||
|
input_set_timestamp(dev, ktime_get());
|
||||||
input_pass_values(dev, vals, ARRAY_SIZE(vals));
|
input_pass_values(dev, vals, ARRAY_SIZE(vals));
|
||||||
|
|
||||||
if (dev->rep[REP_PERIOD])
|
if (dev->rep[REP_PERIOD])
|
||||||
|
|
|
@ -75,6 +75,14 @@ static struct touchkey_variant aries_touchkey_variant = {
|
||||||
.cmd_led_off = ARIES_TOUCHKEY_CMD_LED_OFF,
|
.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,
|
static int tm2_touchkey_led_brightness_set(struct led_classdev *led_dev,
|
||||||
enum led_brightness brightness)
|
enum led_brightness brightness)
|
||||||
{
|
{
|
||||||
|
@ -327,6 +335,9 @@ static const struct of_device_id tm2_touchkey_of_match[] = {
|
||||||
}, {
|
}, {
|
||||||
.compatible = "cypress,aries-touchkey",
|
.compatible = "cypress,aries-touchkey",
|
||||||
.data = &aries_touchkey_variant,
|
.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 */
|
"SYN3052", /* HP EliteBook 840 G4 */
|
||||||
"SYN3221", /* HP 15-ay000 */
|
"SYN3221", /* HP 15-ay000 */
|
||||||
"SYN323d", /* HP Spectre X360 13-w013dx */
|
"SYN323d", /* HP Spectre X360 13-w013dx */
|
||||||
|
"SYN3257", /* HP Envy 13-ad105ng */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1203,8 +1203,8 @@ static int rmi_f11_initialize(struct rmi_function *fn)
|
||||||
* If distance threshold values are set, switch to reduced reporting
|
* If distance threshold values are set, switch to reduced reporting
|
||||||
* mode so they actually get used by the controller.
|
* mode so they actually get used by the controller.
|
||||||
*/
|
*/
|
||||||
if (ctrl->ctrl0_11[RMI_F11_DELTA_X_THRESHOLD] ||
|
if (sensor->axis_align.delta_x_threshold ||
|
||||||
ctrl->ctrl0_11[RMI_F11_DELTA_Y_THRESHOLD]) {
|
sensor->axis_align.delta_y_threshold) {
|
||||||
ctrl->ctrl0_11[0] &= ~RMI_F11_REPORT_MODE_MASK;
|
ctrl->ctrl0_11[0] &= ~RMI_F11_REPORT_MODE_MASK;
|
||||||
ctrl->ctrl0_11[0] |= RMI_F11_REPORT_MODE_REDUCED;
|
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;
|
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] = {
|
static const u8 cmd[7][6] = {
|
||||||
{ 0x08, 0x0C, 0x09, 0x00, 0x50, 0xD7 },
|
{ 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] = {
|
static const u8 cmd[5][11] = {
|
||||||
{ 0, 0x09, 0x71, 0x0C, 0x09, 0x00, 0x50, 0xD7, 0, 0, 0 },
|
{ 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)
|
static int raydium_i2c_check_path(struct i2c_client *client)
|
||||||
|
|
|
@ -652,6 +652,9 @@
|
||||||
/* Electronic privacy screen control */
|
/* Electronic privacy screen control */
|
||||||
#define KEY_PRIVACY_SCREEN_TOGGLE 0x279
|
#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
|
* 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
|
* are intended to be programmed / bound to macros by the user. For most
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#ifndef _UAPI_SERIO_H
|
#ifndef _UAPI_SERIO_H
|
||||||
#define _UAPI_SERIO_H
|
#define _UAPI_SERIO_H
|
||||||
|
|
||||||
|
#include <linux/const.h>
|
||||||
#include <linux/ioctl.h>
|
#include <linux/ioctl.h>
|
||||||
|
|
||||||
#define SPIOCSTYPE _IOW('q', 0x01, unsigned long)
|
#define SPIOCSTYPE _IOW('q', 0x01, unsigned long)
|
||||||
|
@ -18,10 +18,10 @@
|
||||||
/*
|
/*
|
||||||
* bit masks for use in "interrupt" flags (3rd argument)
|
* bit masks for use in "interrupt" flags (3rd argument)
|
||||||
*/
|
*/
|
||||||
#define SERIO_TIMEOUT BIT(0)
|
#define SERIO_TIMEOUT _BITUL(0)
|
||||||
#define SERIO_PARITY BIT(1)
|
#define SERIO_PARITY _BITUL(1)
|
||||||
#define SERIO_FRAME BIT(2)
|
#define SERIO_FRAME _BITUL(2)
|
||||||
#define SERIO_OOB_DATA BIT(3)
|
#define SERIO_OOB_DATA _BITUL(3)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Serio types
|
* Serio types
|
||||||
|
|
Loading…
Reference in New Issue