mirror of https://gitee.com/openkylin/linux.git
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input subsystem fixes from Dmitry Torokhov. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: uinput - fix ioctl nr overflow for UI_GET_SYSNAME/VERSION Input: I8042 - add Acer Aspire 7738 to the nomux list Input: elantech - support new ICs types for version 4 Input: i8042 - reset keyboard to fix Elantech touchpad detection MAINTAINERS: remove Dmitry Torokhov's alternate address
This commit is contained in:
commit
66893885bb
|
@ -1277,6 +1277,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||||
i8042.notimeout [HW] Ignore timeout condition signalled by controller
|
i8042.notimeout [HW] Ignore timeout condition signalled by controller
|
||||||
i8042.reset [HW] Reset the controller during init and cleanup
|
i8042.reset [HW] Reset the controller during init and cleanup
|
||||||
i8042.unlock [HW] Unlock (ignore) the keylock
|
i8042.unlock [HW] Unlock (ignore) the keylock
|
||||||
|
i8042.kbdreset [HW] Reset device connected to KBD port
|
||||||
|
|
||||||
i810= [HW,DRM]
|
i810= [HW,DRM]
|
||||||
|
|
||||||
|
|
|
@ -4930,7 +4930,6 @@ F: include/uapi/linux/inotify.h
|
||||||
|
|
||||||
INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS
|
INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS
|
||||||
M: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
M: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||||
M: Dmitry Torokhov <dtor@mail.ru>
|
|
||||||
L: linux-input@vger.kernel.org
|
L: linux-input@vger.kernel.org
|
||||||
Q: http://patchwork.kernel.org/project/linux-input/list/
|
Q: http://patchwork.kernel.org/project/linux-input/list/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
|
||||||
|
|
|
@ -1520,6 +1520,8 @@ static int elantech_set_properties(struct elantech_data *etd)
|
||||||
case 7:
|
case 7:
|
||||||
case 8:
|
case 8:
|
||||||
case 9:
|
case 9:
|
||||||
|
case 10:
|
||||||
|
case 13:
|
||||||
etd->hw_version = 4;
|
etd->hw_version = 4;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -414,6 +414,13 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710"),
|
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
/* Acer Aspire 7738 */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7738"),
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
/* Gericom Bellagio */
|
/* Gericom Bellagio */
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -745,6 +752,35 @@ static const struct dmi_system_id __initconst i8042_dmi_dritek_table[] = {
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some laptops need keyboard reset before probing for the trackpad to get
|
||||||
|
* it detected, initialised & finally work.
|
||||||
|
*/
|
||||||
|
static const struct dmi_system_id __initconst i8042_dmi_kbdreset_table[] = {
|
||||||
|
{
|
||||||
|
/* Gigabyte P35 v2 - Elantech touchpad */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "P35V2"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* Aorus branded Gigabyte X3 Plus - Elantech touchpad */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "X3"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* Gigabyte P34 - Elantech touchpad */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "P34"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* CONFIG_X86 */
|
#endif /* CONFIG_X86 */
|
||||||
|
|
||||||
#ifdef CONFIG_PNP
|
#ifdef CONFIG_PNP
|
||||||
|
@ -1040,6 +1076,9 @@ static int __init i8042_platform_init(void)
|
||||||
if (dmi_check_system(i8042_dmi_dritek_table))
|
if (dmi_check_system(i8042_dmi_dritek_table))
|
||||||
i8042_dritek = true;
|
i8042_dritek = true;
|
||||||
|
|
||||||
|
if (dmi_check_system(i8042_dmi_kbdreset_table))
|
||||||
|
i8042_kbdreset = true;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A20 was already enabled during early kernel init. But some buggy
|
* A20 was already enabled during early kernel init. But some buggy
|
||||||
* BIOSes (in MSI Laptops) require A20 to be enabled using 8042 to
|
* BIOSes (in MSI Laptops) require A20 to be enabled using 8042 to
|
||||||
|
|
|
@ -67,6 +67,10 @@ static bool i8042_notimeout;
|
||||||
module_param_named(notimeout, i8042_notimeout, bool, 0);
|
module_param_named(notimeout, i8042_notimeout, bool, 0);
|
||||||
MODULE_PARM_DESC(notimeout, "Ignore timeouts signalled by i8042");
|
MODULE_PARM_DESC(notimeout, "Ignore timeouts signalled by i8042");
|
||||||
|
|
||||||
|
static bool i8042_kbdreset;
|
||||||
|
module_param_named(kbdreset, i8042_kbdreset, bool, 0);
|
||||||
|
MODULE_PARM_DESC(kbdreset, "Reset device connected to KBD port");
|
||||||
|
|
||||||
#ifdef CONFIG_X86
|
#ifdef CONFIG_X86
|
||||||
static bool i8042_dritek;
|
static bool i8042_dritek;
|
||||||
module_param_named(dritek, i8042_dritek, bool, 0);
|
module_param_named(dritek, i8042_dritek, bool, 0);
|
||||||
|
@ -789,6 +793,16 @@ static int __init i8042_check_aux(void)
|
||||||
if (i8042_toggle_aux(true))
|
if (i8042_toggle_aux(true))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reset keyboard (needed on some laptops to successfully detect
|
||||||
|
* touchpad, e.g., some Gigabyte laptop models with Elantech
|
||||||
|
* touchpads).
|
||||||
|
*/
|
||||||
|
if (i8042_kbdreset) {
|
||||||
|
pr_warn("Attempting to reset device connected to KBD port\n");
|
||||||
|
i8042_kbd_write(NULL, (unsigned char) 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test AUX IRQ delivery to make sure BIOS did not grab the IRQ and
|
* Test AUX IRQ delivery to make sure BIOS did not grab the IRQ and
|
||||||
* used it for a PCI card or somethig else.
|
* used it for a PCI card or somethig else.
|
||||||
|
|
|
@ -82,7 +82,7 @@ struct uinput_ff_erase {
|
||||||
* The complete sysfs path is then /sys/devices/virtual/input/--NAME--
|
* The complete sysfs path is then /sys/devices/virtual/input/--NAME--
|
||||||
* Usually, it is in the form "inputN"
|
* Usually, it is in the form "inputN"
|
||||||
*/
|
*/
|
||||||
#define UI_GET_SYSNAME(len) _IOC(_IOC_READ, UINPUT_IOCTL_BASE, 300, len)
|
#define UI_GET_SYSNAME(len) _IOC(_IOC_READ, UINPUT_IOCTL_BASE, 44, len)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UI_GET_VERSION - Return version of uinput protocol
|
* UI_GET_VERSION - Return version of uinput protocol
|
||||||
|
@ -91,7 +91,7 @@ struct uinput_ff_erase {
|
||||||
* the integer pointed to by the ioctl argument. The protocol version
|
* the integer pointed to by the ioctl argument. The protocol version
|
||||||
* is hard-coded in the kernel and is independent of the uinput device.
|
* is hard-coded in the kernel and is independent of the uinput device.
|
||||||
*/
|
*/
|
||||||
#define UI_GET_VERSION _IOR(UINPUT_IOCTL_BASE, 301, unsigned int)
|
#define UI_GET_VERSION _IOR(UINPUT_IOCTL_BASE, 45, unsigned int)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To write a force-feedback-capable driver, the upload_effect
|
* To write a force-feedback-capable driver, the upload_effect
|
||||||
|
|
Loading…
Reference in New Issue