platform-drivers-x86 for 4.7-2
Minor kconfig dependency cleanup, trivial mic mute hotkey for ideapad, and a needed improvement in adaptive keyboard detection for thinkpad. platform/x86: - Drop duplicate dependencies on X86 thinkpad_acpi: - Add support for HKEY version 0x200 ideapad_laptop: - Add an event for mic mute hotkey -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJXYhSbAAoJEKbMaAwKp364PPUIAJlE0nJqKdR8YbzVDvBrfhKb onyvO3zRq+6TNKtAWQpJ70dBzto8IYbocu8zqEjRgH1o22xbKgs1p/qgKjZ5MTWr z4qao91+yRPb8KIeQUL49R7DvngJeGqBTGkUK5j7jC2zF1/bQCfsN+UKdstWCLOR rWt82M/Mz2Qm1PoawUkEa7ER8uuVvkh6rswLinOBPQKBDlqX3HnWACN+oRUZgKr5 34Wk31eZ9EMKufN9G4EP1IsS5pL8mbgIY6Tm6E4AuGRfgVooHST8wlPunSw8Ello ud/0GsoP2UiGuUXb3CO8VYCA0zqw+kd1bP6Ff5LBzuCC05GqmvoByKF31cNzPo4= =zqxG -----END PGP SIGNATURE----- Merge tag 'platform-drivers-x86-v4.7-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform driver fixes from Darren Hart: "Minor kconfig dependency cleanup, trivial mic mute hotkey for ideapad, and a needed improvement in adaptive keyboard detection for thinkpad: platform/x86: - Drop duplicate dependencies on X86 thinkpad_acpi: - Add support for HKEY version 0x200 ideapad_laptop: - Add an event for mic mute hotkey" * tag 'platform-drivers-x86-v4.7-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: platform/x86: Drop duplicate dependencies on X86 thinkpad_acpi: Add support for HKEY version 0x200 ideapad_laptop: Add an event for mic mute hotkey
This commit is contained in:
Коммит
e05d2ba145
|
@ -103,7 +103,6 @@ config DELL_SMBIOS
|
|||
|
||||
config DELL_LAPTOP
|
||||
tristate "Dell Laptop Extras"
|
||||
depends on X86
|
||||
depends on DELL_SMBIOS
|
||||
depends on DMI
|
||||
depends on BACKLIGHT_CLASS_DEVICE
|
||||
|
@ -505,7 +504,7 @@ config THINKPAD_ACPI_HOTKEY_POLL
|
|||
|
||||
config SENSORS_HDAPS
|
||||
tristate "Thinkpad Hard Drive Active Protection System (hdaps)"
|
||||
depends on INPUT && X86
|
||||
depends on INPUT
|
||||
select INPUT_POLLDEV
|
||||
default n
|
||||
help
|
||||
|
@ -749,7 +748,7 @@ config TOSHIBA_WMI
|
|||
|
||||
config ACPI_CMPC
|
||||
tristate "CMPC Laptop Extras"
|
||||
depends on X86 && ACPI
|
||||
depends on ACPI
|
||||
depends on RFKILL || RFKILL=n
|
||||
select INPUT
|
||||
select BACKLIGHT_CLASS_DEVICE
|
||||
|
@ -848,7 +847,7 @@ config INTEL_IMR
|
|||
|
||||
config INTEL_PMC_CORE
|
||||
bool "Intel PMC Core driver"
|
||||
depends on X86 && PCI
|
||||
depends on PCI
|
||||
---help---
|
||||
The Intel Platform Controller Hub for Intel Core SoCs provides access
|
||||
to Power Management Controller registers via a PCI interface. This
|
||||
|
@ -860,7 +859,7 @@ config INTEL_PMC_CORE
|
|||
|
||||
config IBM_RTL
|
||||
tristate "Device driver to enable PRTL support"
|
||||
depends on X86 && PCI
|
||||
depends on PCI
|
||||
---help---
|
||||
Enable support for IBM Premium Real Time Mode (PRTM).
|
||||
This module will allow you the enter and exit PRTM in the BIOS via
|
||||
|
@ -894,7 +893,6 @@ config XO15_EBOOK
|
|||
|
||||
config SAMSUNG_LAPTOP
|
||||
tristate "Samsung Laptop driver"
|
||||
depends on X86
|
||||
depends on RFKILL || RFKILL = n
|
||||
depends on ACPI_VIDEO || ACPI_VIDEO = n
|
||||
depends on BACKLIGHT_CLASS_DEVICE
|
||||
|
|
|
@ -567,6 +567,7 @@ static void ideapad_sysfs_exit(struct ideapad_private *priv)
|
|||
static const struct key_entry ideapad_keymap[] = {
|
||||
{ KE_KEY, 6, { KEY_SWITCHVIDEOMODE } },
|
||||
{ KE_KEY, 7, { KEY_CAMERA } },
|
||||
{ KE_KEY, 8, { KEY_MICMUTE } },
|
||||
{ KE_KEY, 11, { KEY_F16 } },
|
||||
{ KE_KEY, 13, { KEY_WLAN } },
|
||||
{ KE_KEY, 16, { KEY_PROG1 } },
|
||||
|
@ -809,6 +810,7 @@ static void ideapad_acpi_notify(acpi_handle handle, u32 event, void *data)
|
|||
break;
|
||||
case 13:
|
||||
case 11:
|
||||
case 8:
|
||||
case 7:
|
||||
case 6:
|
||||
ideapad_input_report(priv, vpc_bit);
|
||||
|
|
|
@ -2043,6 +2043,7 @@ static int hotkey_autosleep_ack;
|
|||
|
||||
static u32 hotkey_orig_mask; /* events the BIOS had enabled */
|
||||
static u32 hotkey_all_mask; /* all events supported in fw */
|
||||
static u32 hotkey_adaptive_all_mask; /* all adaptive events supported in fw */
|
||||
static u32 hotkey_reserved_mask; /* events better left disabled */
|
||||
static u32 hotkey_driver_mask; /* events needed by the driver */
|
||||
static u32 hotkey_user_mask; /* events visible to userspace */
|
||||
|
@ -2742,6 +2743,17 @@ static ssize_t hotkey_all_mask_show(struct device *dev,
|
|||
|
||||
static DEVICE_ATTR_RO(hotkey_all_mask);
|
||||
|
||||
/* sysfs hotkey all_mask ----------------------------------------------- */
|
||||
static ssize_t hotkey_adaptive_all_mask_show(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
return snprintf(buf, PAGE_SIZE, "0x%08x\n",
|
||||
hotkey_adaptive_all_mask | hotkey_source_mask);
|
||||
}
|
||||
|
||||
static DEVICE_ATTR_RO(hotkey_adaptive_all_mask);
|
||||
|
||||
/* sysfs hotkey recommended_mask --------------------------------------- */
|
||||
static ssize_t hotkey_recommended_mask_show(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
|
@ -2985,6 +2997,7 @@ static struct attribute *hotkey_attributes[] __initdata = {
|
|||
&dev_attr_wakeup_hotunplug_complete.attr,
|
||||
&dev_attr_hotkey_mask.attr,
|
||||
&dev_attr_hotkey_all_mask.attr,
|
||||
&dev_attr_hotkey_adaptive_all_mask.attr,
|
||||
&dev_attr_hotkey_recommended_mask.attr,
|
||||
#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL
|
||||
&dev_attr_hotkey_source_mask.attr,
|
||||
|
@ -3321,20 +3334,6 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
|
|||
if (!tp_features.hotkey)
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* Check if we have an adaptive keyboard, like on the
|
||||
* Lenovo Carbon X1 2014 (2nd Gen).
|
||||
*/
|
||||
if (acpi_evalf(hkey_handle, &hkeyv, "MHKV", "qd")) {
|
||||
if ((hkeyv >> 8) == 2) {
|
||||
tp_features.has_adaptive_kbd = true;
|
||||
res = sysfs_create_group(&tpacpi_pdev->dev.kobj,
|
||||
&adaptive_kbd_attr_group);
|
||||
if (res)
|
||||
goto err_exit;
|
||||
}
|
||||
}
|
||||
|
||||
quirks = tpacpi_check_quirks(tpacpi_hotkey_qtable,
|
||||
ARRAY_SIZE(tpacpi_hotkey_qtable));
|
||||
|
||||
|
@ -3357,30 +3356,70 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
|
|||
A30, R30, R31, T20-22, X20-21, X22-24. Detected by checking
|
||||
for HKEY interface version 0x100 */
|
||||
if (acpi_evalf(hkey_handle, &hkeyv, "MHKV", "qd")) {
|
||||
if ((hkeyv >> 8) != 1) {
|
||||
pr_err("unknown version of the HKEY interface: 0x%x\n",
|
||||
hkeyv);
|
||||
pr_err("please report this to %s\n", TPACPI_MAIL);
|
||||
} else {
|
||||
vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
|
||||
"firmware HKEY interface version: 0x%x\n",
|
||||
hkeyv);
|
||||
|
||||
switch (hkeyv >> 8) {
|
||||
case 1:
|
||||
/*
|
||||
* MHKV 0x100 in A31, R40, R40e,
|
||||
* T4x, X31, and later
|
||||
*/
|
||||
vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
|
||||
"firmware HKEY interface version: 0x%x\n",
|
||||
hkeyv);
|
||||
|
||||
/* Paranoia check AND init hotkey_all_mask */
|
||||
if (!acpi_evalf(hkey_handle, &hotkey_all_mask,
|
||||
"MHKA", "qd")) {
|
||||
pr_err("missing MHKA handler, "
|
||||
"please report this to %s\n",
|
||||
pr_err("missing MHKA handler, please report this to %s\n",
|
||||
TPACPI_MAIL);
|
||||
/* Fallback: pre-init for FN+F3,F4,F12 */
|
||||
hotkey_all_mask = 0x080cU;
|
||||
} else {
|
||||
tp_features.hotkey_mask = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
/*
|
||||
* MHKV 0x200 in X1, T460s, X260, T560, X1 Tablet (2016)
|
||||
*/
|
||||
|
||||
/* Paranoia check AND init hotkey_all_mask */
|
||||
if (!acpi_evalf(hkey_handle, &hotkey_all_mask,
|
||||
"MHKA", "dd", 1)) {
|
||||
pr_err("missing MHKA handler, please report this to %s\n",
|
||||
TPACPI_MAIL);
|
||||
/* Fallback: pre-init for FN+F3,F4,F12 */
|
||||
hotkey_all_mask = 0x080cU;
|
||||
} else {
|
||||
tp_features.hotkey_mask = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if we have an adaptive keyboard, like on the
|
||||
* Lenovo Carbon X1 2014 (2nd Gen).
|
||||
*/
|
||||
if (acpi_evalf(hkey_handle, &hotkey_adaptive_all_mask,
|
||||
"MHKA", "dd", 2)) {
|
||||
if (hotkey_adaptive_all_mask != 0) {
|
||||
tp_features.has_adaptive_kbd = true;
|
||||
res = sysfs_create_group(
|
||||
&tpacpi_pdev->dev.kobj,
|
||||
&adaptive_kbd_attr_group);
|
||||
if (res)
|
||||
goto err_exit;
|
||||
}
|
||||
} else {
|
||||
tp_features.has_adaptive_kbd = false;
|
||||
hotkey_adaptive_all_mask = 0x0U;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
pr_err("unknown version of the HKEY interface: 0x%x\n",
|
||||
hkeyv);
|
||||
pr_err("please report this to %s\n", TPACPI_MAIL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче