surface pro 4: Add support for Surface Pro 4 Buttons
PATCH 1/1 surface pro 4: Add support for Surface Pro 4 Buttons
Surface Pro 4 button is managed by a device with _HID "MSHW0040" different from Surface Pro 3.
This commit adds MSHW0040 to id list to Support Surface Pro 4, and rename the driver to surfacepro_button accordingly.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
--- MAINTAINERS | 4 +- drivers/platform/x86/Kconfig | 6 +- drivers/platform/x86/Makefile | 2 +- drivers/platform/x86/surfacepro3_button.c | 216 ----------------------------- drivers/platform/x86/surfacepro_button.c | 218 ++++++++++++++++++++++++++++++ 5 files changed, 224 insertions(+), 222 deletions(-) delete mode 100644 drivers/platform/x86/surfacepro3_button.c create mode 100644 drivers/platform/x86/surfacepro_button.c
MAINTAINERS +2 -2
@@ -7019,11 +7019,11 @@ T: git git://git.monstr.eu/linux-2.6-microblaze.git S: Supported F: arch/microblaze/ -MICROSOFT SURFACE PRO 3 BUTTON DRIVER +MICROSOFT SURFACE PRO SERIES BUTTON DRIVER M: Chen Yu <[email protected]> L: [email protected] S: Supported -F: drivers/platform/x86/surfacepro3_button.c +F: drivers/platform/x86/surfacepro_button.c MICROTEK X6 SCANNER M: Oliver Neukum <[email protected]>
drivers/platform/x86/Kconfig +3 -3
@@ -939,9 +939,9 @@ config INTEL_PMC_IPC The PMC is an ARC processor which defines IPC commands for communication with other entities in the CPU. -config SURFACE_PRO3_BUTTON - tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3 tablet" +config SURFACE_PRO_BUTTON + tristate "Power/home/volume buttons driver for Microsoft Surface Pro Series tablet" depends on ACPI && INPUT ---help--- - This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3 tablet. + This driver handles the power/home/volume buttons on the Microsoft Surface Pro Series tablet. endif # X86_PLATFORM_DEVICES
drivers/platform/x86/Makefile +1 -1
@@ -61,4 +61,4 @@ obj-$(CONFIG_INTEL_SMARTCONNECT) += intel-smartconnect.o obj-$(CONFIG_PVPANIC) += pvpanic.o obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o obj-$(CONFIG_INTEL_PMC_IPC) += intel_pmc_ipc.o -obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o +obj-$(CONFIG_SURFACE_PRO_BUTTON) += surfacepro_button.o
drivers/platform/x86/surfacepro3_button.c deleted +0 -216
216 lines not on this page · raw message
drivers/platform/x86/surfacepro_button.c new file +218 -0
218 lines not on this page · raw message
Signature · 1 line
2.6.4
Quoted 6 lines · Weng Xuetian
Surface Pro 4 button is managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to Support Surface Pro 4, and rename the driver to
surfacepro_buttonaccordingly.
No review until you resend with a properly formatted patch, i.e. with -M -C.
Quoted 511 lines
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>--- MAINTAINERS | 4 +- drivers/platform/x86/Kconfig | 6 +- drivers/platform/x86/Makefile | 2 +- drivers/platform/x86/surfacepro3_button.c | 216 ----------------------------- drivers/platform/x86/surfacepro_button.c | 218 ++++++++++++++++++++++++++++++ 5 files changed, 224 insertions(+), 222 deletions(-) delete mode 100644 drivers/platform/x86/surfacepro3_button.c create mode 100644 drivers/platform/x86/surfacepro_button.cMAINTAINERS +2
-2@@ -7019,11 +7019,11 @@ T: git git://git.monstr.eu/linux-2.6-microblaze.git S: Supported F: arch/microblaze/ -MICROSOFT SURFACE PRO 3 BUTTON DRIVER +MICROSOFT SURFACE PRO SERIES BUTTON DRIVER M: Chen Yu <[email protected]> L: [email protected] S: Supported -F: drivers/platform/x86/surfacepro3_button.c +F: drivers/platform/x86/surfacepro_button.c MICROTEK X6 SCANNER M: Oliver Neukum <[email protected]>drivers/platform/x86/Kconfig +3
-3@@ -939,9 +939,9 @@ config INTEL_PMC_IPC The PMC is an ARC processor which defines IPC commands for communication with other entities in the CPU. -config SURFACE_PRO3_BUTTON - tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3 tablet" +config SURFACE_PRO_BUTTON + tristate "Power/home/volume buttons driver for Microsoft Surface Pro Series tablet" depends on ACPI && INPUT ---help--- - This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3 tablet. + This driver handles the power/home/volume buttons on the Microsoft Surface Pro Series tablet. endif # X86_PLATFORM_DEVICESdrivers/platform/x86/Makefile +1
-1@@ -61,4 +61,4 @@ obj-$(CONFIG_INTEL_SMARTCONNECT) += intel-smartconnect.o obj-$(CONFIG_PVPANIC) += pvpanic.o obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o obj-$(CONFIG_INTEL_PMC_IPC) += intel_pmc_ipc.o -obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o +obj-$(CONFIG_SURFACE_PRO_BUTTON) += surfacepro_button.odrivers/platform/x86/surfacepro3_button.c deleted +0
-216@@ -1,216 +0,0 @@ -/* -* power/home/volume button support for -* Microsoft Surface Pro 3 tablet. -* -* Copyright (c) 2015 Intel Corporation. -* All rights reserved. -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; version 2 -* of the License. -*/ - -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/init.h> -#include <linux/types.h> -#include <linux/input.h> -#include <linux/acpi.h> -#include <acpi/button.h> - -#define SURFACE_BUTTON_HID "MSHW0028" -#define SURFACE_BUTTON_OBJ_NAME "VGBI" -#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3 Buttons" - -#define SURFACE_BUTTON_NOTIFY_PRESS_POWER 0xc6 -#define SURFACE_BUTTON_NOTIFY_RELEASE_POWER 0xc7 - -#define SURFACE_BUTTON_NOTIFY_PRESS_HOME 0xc4 -#define SURFACE_BUTTON_NOTIFY_RELEASE_HOME 0xc5 - -#define SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_UP 0xc0 -#define SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_UP 0xc1 - -#define SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN 0xc2 -#define SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN 0xc3 - -ACPI_MODULE_NAME ("surface pro 3 button" ); - -MODULE_AUTHOR ("Chen Yu" ); -MODULE_DESCRIPTION ("Surface Pro3 Button Driver" ); -MODULE_LICENSE ("GPL v2" ); - -/* -* Power button, Home button, Volume buttons support is supposed to -* be covered by drivers/input/misc/soc_button_array.c, which is implemented -* according to "Windows ACPI Design Guide for SoC Platforms". -* However surface pro3 seems not to obey the specs, instead it uses -* device VGBI(MSHW0028) for dispatching the events. -* We choose acpi_driver rather than platform_driver/i2c_driver because -* although VGBI has an i2c resource connected to i2c controller, it -* is not embedded in any i2c controller's scope, thus neither platform_device -* will be created, nor i2c_client will be enumerated, we have to use -* acpi_driver. -*/ -static const struct acpi_device_id surface_button_device_ids[] = { - {SURFACE_BUTTON_HID ,0 }, - {"" ,0 }, -}; -MODULE_DEVICE_TABLE (acpi, surface_button_device_ids); - -struct surface_button { -unsigned int type; -struct input_dev *input; -char phys[32 ];/* for input device */ -unsigned long pushed; -bool suspended; -}; - -static void surface_button_notify (struct acpi_device *device,u32 event) -{ -struct surface_button *button =acpi_driver_data (device); -struct input_dev *input; -int key_code =KEY_RESERVED ; -bool pressed = false; - -switch (event) { -/* Power button press,release handle */ -case SURFACE_BUTTON_NOTIFY_PRESS_POWER : - pressed = true; -/*fall through*/ -case SURFACE_BUTTON_NOTIFY_RELEASE_POWER : - key_code =KEY_POWER ; -break ; -/* Home button press,release handle */ -case SURFACE_BUTTON_NOTIFY_PRESS_HOME : - pressed = true; -/*fall through*/ -case SURFACE_BUTTON_NOTIFY_RELEASE_HOME : - key_code =KEY_LEFTMETA ; -break ; -/* Volume up button press,release handle */ -case SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_UP : - pressed = true; -/*fall through*/ -case SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_UP : - key_code =KEY_VOLUMEUP ; -break ; -/* Volume down button press,release handle */ -case SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN : - pressed = true; -/*fall through*/ -case SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN : - key_code =KEY_VOLUMEDOWN ; -break ; -default : -dev_info_ratelimited (&device->dev, -"Unsupported event [0x%x]\n" , event); -break ; - } - input = button->input; -if (KEY_RESERVED == key_code) -return ; -if (pressed) -pm_wakeup_event (&device->dev,0 ); -if (button->suspended) -return ; -input_report_key (input, key_code, pressed?1 :0 ); -input_sync (input); -} - -#ifdef CONFIG_PM_SLEEP -static int surface_button_suspend (struct device *dev) -{ -struct acpi_device *device =to_acpi_device (dev); -struct surface_button *button =acpi_driver_data (device); - - button->suspended = true; -return 0 ; -} - -static int surface_button_resume (struct device *dev) -{ -struct acpi_device *device =to_acpi_device (dev); -struct surface_button *button =acpi_driver_data (device); - - button->suspended = false; -return 0 ; -} -#endif - -static int surface_button_add (struct acpi_device *device) -{ -struct surface_button *button; -struct input_dev *input; -const char *hid =acpi_device_hid (device); -char *name; -int error; - -if (strncmp (acpi_device_bid (device),SURFACE_BUTTON_OBJ_NAME , -strlen (SURFACE_BUTTON_OBJ_NAME ))) -return -ENODEV ; - - button =kzalloc (sizeof (struct surface_button ),GFP_KERNEL ); -if (!button) -return -ENOMEM ; - - device->driver_data = button; - button->input = input =input_allocate_device (); -if (!input) { - error = -ENOMEM ; - goto err_free_button; - } - - name =acpi_device_name (device); -strcpy (name,SURFACE_BUTTON_DEVICE_NAME ); -snprintf (button->phys,sizeof (button->phys),"%s/buttons" , hid); - - input->name = name; - input->phys = button->phys; - input->id.bustype =BUS_HOST ; - input->dev.parent = &device->dev; -input_set_capability (input,EV_KEY ,KEY_POWER ); -input_set_capability (input,EV_KEY ,KEY_LEFTMETA ); -input_set_capability (input,EV_KEY ,KEY_VOLUMEUP ); -input_set_capability (input,EV_KEY ,KEY_VOLUMEDOWN ); - - error =input_register_device (input); -if (error) - goto err_free_input; -dev_info (&device->dev, -"%s [%s]\n" , name,acpi_device_bid (device)); -return 0 ; - - err_free_input: -input_free_device (input); - err_free_button: -kfree (button); -return error; -} - -static int surface_button_remove (struct acpi_device *device) -{ -struct surface_button *button =acpi_driver_data (device); - -input_unregister_device (button->input); -kfree (button); -return 0 ; -} - -static SIMPLE_DEV_PM_OPS(surface_button_pm, - surface_button_suspend, surface_button_resume); - -static struct acpi_driver surface_button_driver = { - .name ="surface_pro3_button" , - .class ="SurfacePro3" , - .ids = surface_button_device_ids, - .ops = { - .add = surface_button_add, - .remove = surface_button_remove, - .notify = surface_button_notify, - }, - .drv.pm = &surface_button_pm, -}; - -module_acpi_driver (surface_button_driver);drivers/platform/x86/surfacepro_button.c new file +218
-1@@ -0,0 +1,218 @@ +/* +* power/home/volume button support for +* Microsoft Surface Pro Series tablet. +* +* Copyright (c) 2015 Intel Corporation. +* All rights reserved. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; version 2 +* of the License. +*/ + +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/init.h> +#include <linux/types.h> +#include <linux/input.h> +#include <linux/acpi.h> +#include <acpi/button.h> + +#define SURFACE_PRO3_BUTTON_HID "MSHW0028" +#define SURFACE_PRO4_BUTTON_HID "MSHW0040" +#define SURFACE_BUTTON_OBJ_NAME "VGBI" +#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro Series Buttons" + +#define SURFACE_BUTTON_NOTIFY_PRESS_POWER 0xc6 +#define SURFACE_BUTTON_NOTIFY_RELEASE_POWER 0xc7 + +#define SURFACE_BUTTON_NOTIFY_PRESS_HOME 0xc4 +#define SURFACE_BUTTON_NOTIFY_RELEASE_HOME 0xc5 + +#define SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_UP 0xc0 +#define SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_UP 0xc1 + +#define SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN 0xc2 +#define SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN 0xc3 + +ACPI_MODULE_NAME ("surface pro series button" ); + +MODULE_AUTHOR ("Chen Yu" ); +MODULE_DESCRIPTION ("Surface Pro Series Button Driver" ); +MODULE_LICENSE ("GPL v2" ); + +/* +* Power button, Home button, Volume buttons support is supposed to +* be covered by drivers/input/misc/soc_button_array.c, which is implemented +* according to "Windows ACPI Design Guide for SoC Platforms". +* However surface pro3 seems not to obey the specs, instead it uses +* device VGBI(MSHW0028) for dispatching the events. +* We choose acpi_driver rather than platform_driver/i2c_driver because +* although VGBI has an i2c resource connected to i2c controller, it +* is not embedded in any i2c controller's scope, thus neither platform_device +* will be created, nor i2c_client will be enumerated, we have to use +* acpi_driver. +*/ +static const struct acpi_device_id surface_button_device_ids[] = { + {SURFACE_PRO3_BUTTON_HID ,0 }, + {SURFACE_PRO4_BUTTON_HID ,0 }, + {"" ,0 }, +}; +MODULE_DEVICE_TABLE (acpi, surface_button_device_ids); + +struct surface_button { +unsigned int type; +struct input_dev *input; +char phys[32 ];/* for input device */ +unsigned long pushed; +bool suspended; +}; + +static void surface_button_notify (struct acpi_device *device,u32 event) +{ +struct surface_button *button =acpi_driver_data (device); +struct input_dev *input; +int key_code =KEY_RESERVED ; +bool pressed = false; + +switch (event) { +/* Power button press,release handle */ +case SURFACE_BUTTON_NOTIFY_PRESS_POWER : + pressed = true; +/*fall through*/ +case SURFACE_BUTTON_NOTIFY_RELEASE_POWER : + key_code =KEY_POWER ; +break ; +/* Home button press,release handle */ +case SURFACE_BUTTON_NOTIFY_PRESS_HOME : + pressed = true; +/*fall through*/ +case SURFACE_BUTTON_NOTIFY_RELEASE_HOME : + key_code =KEY_LEFTMETA ; +break ; +/* Volume up button press,release handle */ +case SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_UP : + pressed = true; +/*fall through*/ +case SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_UP : + key_code =KEY_VOLUMEUP ; +break ; +/* Volume down button press,release handle */ +case SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN : + pressed = true; +/*fall through*/ +case SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN : + key_code =KEY_VOLUMEDOWN ; +break ; +default : +dev_info_ratelimited (&device->dev, +"Unsupported event [0x%x]\n" , event); +break ; + } + input = button->input; +if (KEY_RESERVED == key_code) +return ; +if (pressed) +pm_wakeup_event (&device->dev,0 ); +if (button->suspended) +return ; +input_report_key (input, key_code, pressed?1 :0 ); +input_sync (input); +} + +#ifdef CONFIG_PM_SLEEP +static int surface_button_suspend (struct device *dev) +{ +struct acpi_device *device =to_acpi_device (dev); +struct surface_button *button =acpi_driver_data (device); + + button->suspended = true; +return 0 ; +} + +static int surface_button_resume (struct device *dev) +{ +struct acpi_device *device =to_acpi_device (dev); +struct surface_button *button =acpi_driver_data (device); + + button->suspended = false; +return 0 ; +} +#endif + +static int surface_button_add (struct acpi_device *device) +{ +struct surface_button *button; +struct input_dev *input; +const char *hid =acpi_device_hid (device); +char *name; +int error; + +if (strncmp (acpi_device_bid (device),SURFACE_BUTTON_OBJ_NAME , +strlen (SURFACE_BUTTON_OBJ_NAME ))) +return -ENODEV ; + + button =kzalloc (sizeof (struct surface_button ),GFP_KERNEL ); +if (!button) +return -ENOMEM ; + + device->driver_data = button; + button->input = input =input_allocate_device (); +if (!input) { + error = -ENOMEM ; + goto err_free_button; + } + + name =acpi_device_name (device); +strcpy (name,SURFACE_BUTTON_DEVICE_NAME ); +snprintf (button->phys,sizeof (button->phys),"%s/buttons" , hid); + + input->name = name; + input->phys = button->phys; + input->id.bustype =BUS_HOST ; + input->dev.parent = &device->dev; +input_set_capability (input,EV_KEY ,KEY_POWER ); +input_set_capability (input,EV_KEY ,KEY_LEFTMETA ); +input_set_capability (input,EV_KEY ,KEY_VOLUMEUP ); +input_set_capability (input,EV_KEY ,KEY_VOLUMEDOWN ); + + error =input_register_device (input); +if (error) + goto err_free_input; +dev_info (&device->dev, +"%s [%s]\n" , name,acpi_device_bid (device)); +return 0 ; + + err_free_input: +input_free_device (input); + err_free_button: +kfree (button); +return error; +} + +static int surface_button_remove (struct acpi_device *device) +{ +struct surface_button *button =acpi_driver_data (device); + +input_unregister_device (button->input); +kfree (button); +return 0 ; +} + +static SIMPLE_DEV_PM_OPS(surface_button_pm, + surface_button_suspend, surface_button_resume); + +static struct acpi_driver surface_button_driver = { + .name ="surface_pro_button" , + .class ="SurfacePro" , + .ids = surface_button_device_ids, + .ops = { + .add = surface_button_add, + .remove = surface_button_remove, + .notify = surface_button_notify, + }, + .drv.pm = &surface_button_pm, +}; + +module_acpi_driver (surface_button_driver); --2.6.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Signature · 2 lines
With Best Regards, Andy Shevchenko
PATCH v2 1/1 surface pro 4: Add support for Surface Pro 4 Buttons
In reply to Weng XuetianSurface Pro 4 button is managed by a device with _HID "MSHW0040" different from Surface Pro 3.
This commit adds MSHW0040 to id list to Support Surface Pro 4, and rename the driver to surfacepro_button accordingly.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
---
v2:
- Reformat patch with -M -C
---
MAINTAINERS | 4 ++--
drivers/platform/x86/Kconfig | 6 +++---
drivers/platform/x86/Makefile | 2 +-
.../x86/{surfacepro3_button.c => surfacepro_button.c} | 18 ++++++++++--------
4 files changed, 16 insertions(+), 14 deletions(-)
rename drivers/platform/x86/{surfacepro3_button.c => surfacepro_button.c} (93%)MAINTAINERS +2 -2
@@ -7019,11 +7019,11 @@ T: git git://git.monstr.eu/linux-2.6-microblaze.git S: Supported F: arch/microblaze/ -MICROSOFT SURFACE PRO 3 BUTTON DRIVER +MICROSOFT SURFACE PRO SERIES BUTTON DRIVER M: Chen Yu <[email protected]> L: [email protected] S: Supported -F: drivers/platform/x86/surfacepro3_button.c +F: drivers/platform/x86/surfacepro_button.c MICROTEK X6 SCANNER M: Oliver Neukum <[email protected]>
drivers/platform/x86/Kconfig +3 -3
@@ -939,9 +939,9 @@ config INTEL_PMC_IPC The PMC is an ARC processor which defines IPC commands for communication with other entities in the CPU. -config SURFACE_PRO3_BUTTON - tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3 tablet" +config SURFACE_PRO_BUTTON + tristate "Power/home/volume buttons driver for Microsoft Surface Pro Series tablet" depends on ACPI && INPUT ---help--- - This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3 tablet. + This driver handles the power/home/volume buttons on the Microsoft Surface Pro Series tablet. endif # X86_PLATFORM_DEVICES
drivers/platform/x86/Makefile +1 -1
@@ -61,4 +61,4 @@ obj-$(CONFIG_INTEL_SMARTCONNECT) += intel-smartconnect.o obj-$(CONFIG_PVPANIC) += pvpanic.o obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o obj-$(CONFIG_INTEL_PMC_IPC) += intel_pmc_ipc.o -obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o +obj-$(CONFIG_SURFACE_PRO_BUTTON) += surfacepro_button.o
drivers/platform/x86/surfacepro_button.c renamed from drivers/platform/x86/surfacepro3_button.c +10 -8
@@ -1,6 +1,6 @@/* * power/home/volume button support for -* Microsoft Surface Pro 3 tablet. +* Microsoft Surface Pro Series tablet. * * Copyright (c) 2015 Intel Corporation. * All rights reserved.
@@ -19,9 +19,10 @@#include <linux/acpi.h> #include <acpi/button.h> -#define SURFACE_BUTTON_HID "MSHW0028" +#define SURFACE_PRO3_BUTTON_HID "MSHW0028" +#define SURFACE_PRO4_BUTTON_HID "MSHW0040"#define SURFACE_BUTTON_OBJ_NAME "VGBI" -#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3 Buttons" +#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro Series Buttons"#define SURFACE_BUTTON_NOTIFY_PRESS_POWER 0xc6#define SURFACE_BUTTON_NOTIFY_RELEASE_POWER 0xc7
@@ -35,10 +36,10 @@#define SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN 0xc2#define SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN 0xc3 -ACPI_MODULE_NAME ("surface pro 3 button" ); +ACPI_MODULE_NAME ("surface pro series button" );MODULE_AUTHOR ("Chen Yu" ); -MODULE_DESCRIPTION ("Surface Pro3 Button Driver" ); +MODULE_DESCRIPTION ("Surface Pro Series Button Driver" );MODULE_LICENSE ("GPL v2" );/*
@@ -54,7 +55,8 @@ MODULE_LICENSE("GPL v2");* acpi_driver. */ static const struct acpi_device_id surface_button_device_ids[] = { - {SURFACE_BUTTON_HID ,0 }, + {SURFACE_PRO3_BUTTON_HID ,0 }, + {SURFACE_PRO4_BUTTON_HID ,0 }, {"" ,0 }, };MODULE_DEVICE_TABLE (acpi, surface_button_device_ids);
@@ -202,8 +204,8 @@ static SIMPLE_DEV_PM_OPS(surface_button_pm, surface_button_suspend, surface_button_resume);static struct acpi_driver surface_button_driver = { - .name ="surface_pro3_button" , - .class ="SurfacePro3" , + .name ="surface_pro_button" , + .class ="SurfacePro" , .ids = surface_button_device_ids, .ops = { .add = surface_button_add,
Signature · 1 line
2.6.4
Hi,
Quoted 11 lines
-----Original Message-----
From: Weng Xuetian [mailto:[email protected]]
Sent: Monday, December 28, 2015 1:30 AM
To: Chen, Yu C
Cc: Darren Hart; [email protected]; platform-driver- [email protected]; Weng Xuetian
Subject: [PATCH v2] surface pro 4: Add support for Surface Pro 4 ButtonsSurface Pro 4 button is managed by a device with
_HID"MSHW0040" different from Surface Pro 3.
s/button is/buttons are
Quoted 3 lines
This commit adds MSHW0040 to id list to Support Surface Pro 4, and rename the driver to
surfacepro_buttonaccordingly.
s/Support/support the
s/rename/renames
Quoted 5 lines
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>---
v2:
- Reformat patch with -M -C
others look good to me,
thanks,
yu
PATCH v3 1/1 surface pro 4: Add support for Surface Pro 4 Buttons
In reply to Weng XuetianSurface Pro 4 buttons are managed by a device with _HID "MSHW0040" different from Surface Pro 3.
This commit adds MSHW0040 to id list to support the Surface Pro 4, and renames the driver to surfacepro_button accordingly.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
---
v3:
- Fix commit message grammar mistakes.
v2:
- Reformat patch with -M -C
---
MAINTAINERS | 4 ++--
drivers/platform/x86/Kconfig | 6 +++---
drivers/platform/x86/Makefile | 2 +-
.../x86/{surfacepro3_button.c => surfacepro_button.c} | 18 ++++++++++--------
4 files changed, 16 insertions(+), 14 deletions(-)
rename drivers/platform/x86/{surfacepro3_button.c => surfacepro_button.c} (93%)MAINTAINERS +2 -2
@@ -7019,11 +7019,11 @@ T: git git://git.monstr.eu/linux-2.6-microblaze.git S: Supported F: arch/microblaze/ -MICROSOFT SURFACE PRO 3 BUTTON DRIVER +MICROSOFT SURFACE PRO SERIES BUTTON DRIVER M: Chen Yu <[email protected]> L: [email protected] S: Supported -F: drivers/platform/x86/surfacepro3_button.c +F: drivers/platform/x86/surfacepro_button.c MICROTEK X6 SCANNER M: Oliver Neukum <[email protected]>
drivers/platform/x86/Kconfig +3 -3
@@ -939,9 +939,9 @@ config INTEL_PMC_IPC The PMC is an ARC processor which defines IPC commands for communication with other entities in the CPU. -config SURFACE_PRO3_BUTTON - tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3 tablet" +config SURFACE_PRO_BUTTON + tristate "Power/home/volume buttons driver for Microsoft Surface Pro Series tablet" depends on ACPI && INPUT ---help--- - This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3 tablet. + This driver handles the power/home/volume buttons on the Microsoft Surface Pro Series tablet. endif # X86_PLATFORM_DEVICES
drivers/platform/x86/Makefile +1 -1
@@ -61,4 +61,4 @@ obj-$(CONFIG_INTEL_SMARTCONNECT) += intel-smartconnect.o obj-$(CONFIG_PVPANIC) += pvpanic.o obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o obj-$(CONFIG_INTEL_PMC_IPC) += intel_pmc_ipc.o -obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o +obj-$(CONFIG_SURFACE_PRO_BUTTON) += surfacepro_button.o
drivers/platform/x86/surfacepro_button.c renamed from drivers/platform/x86/surfacepro3_button.c +10 -8
@@ -1,6 +1,6 @@/* * power/home/volume button support for -* Microsoft Surface Pro 3 tablet. +* Microsoft Surface Pro Series tablet. * * Copyright (c) 2015 Intel Corporation. * All rights reserved.
@@ -19,9 +19,10 @@#include <linux/acpi.h> #include <acpi/button.h> -#define SURFACE_BUTTON_HID "MSHW0028" +#define SURFACE_PRO3_BUTTON_HID "MSHW0028" +#define SURFACE_PRO4_BUTTON_HID "MSHW0040"#define SURFACE_BUTTON_OBJ_NAME "VGBI" -#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3 Buttons" +#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro Series Buttons"#define SURFACE_BUTTON_NOTIFY_PRESS_POWER 0xc6#define SURFACE_BUTTON_NOTIFY_RELEASE_POWER 0xc7
@@ -35,10 +36,10 @@#define SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN 0xc2#define SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN 0xc3 -ACPI_MODULE_NAME ("surface pro 3 button" ); +ACPI_MODULE_NAME ("surface pro series button" );MODULE_AUTHOR ("Chen Yu" ); -MODULE_DESCRIPTION ("Surface Pro3 Button Driver" ); +MODULE_DESCRIPTION ("Surface Pro Series Button Driver" );MODULE_LICENSE ("GPL v2" );/*
@@ -54,7 +55,8 @@ MODULE_LICENSE("GPL v2");* acpi_driver. */ static const struct acpi_device_id surface_button_device_ids[] = { - {SURFACE_BUTTON_HID ,0 }, + {SURFACE_PRO3_BUTTON_HID ,0 }, + {SURFACE_PRO4_BUTTON_HID ,0 }, {"" ,0 }, };MODULE_DEVICE_TABLE (acpi, surface_button_device_ids);
@@ -202,8 +204,8 @@ static SIMPLE_DEV_PM_OPS(surface_button_pm, surface_button_suspend, surface_button_resume);static struct acpi_driver surface_button_driver = { - .name ="surface_pro3_button" , - .class ="SurfacePro3" , + .name ="surface_pro_button" , + .class ="SurfacePro" , .ids = surface_button_device_ids, .ops = { .add = surface_button_add,
Signature · 1 line
2.6.4
Quoted 8 lines · Weng Xuetian
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to support the Surface Pro 4, and renames the driver to
surfacepro_buttonaccordingly.Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>
Darren, this one looks fine for me, still couple of question up to you.
First is do we really want to rename driver? (Renaming variables and stuff like I said if fine to me)
Quoted 110 lines
---
v3:
- Fix commit message grammar mistakes.
v2:
- Reformat patch with -M -C--- MAINTAINERS | 4 ++-- drivers/platform/x86/Kconfig | 6 +++--- drivers/platform/x86/Makefile | 2 +- .../x86/{surfacepro3_button.c => surfacepro_button.c} | 18 ++++++++++-------- 4 files changed, 16 insertions(+), 14 deletions(-) rename drivers/platform/x86/{surfacepro3_button.c => surfacepro_button.c} (93%)MAINTAINERS +2
-2@@ -7019,11 +7019,11 @@ T: git git://git.monstr.eu/linux-2.6-microblaze.git S: Supported F: arch/microblaze/ -MICROSOFT SURFACE PRO 3 BUTTON DRIVER +MICROSOFT SURFACE PRO SERIES BUTTON DRIVER M: Chen Yu <[email protected]> L: [email protected] S: Supported -F: drivers/platform/x86/surfacepro3_button.c +F: drivers/platform/x86/surfacepro_button.c MICROTEK X6 SCANNER M: Oliver Neukum <[email protected]>drivers/platform/x86/Kconfig +3
-3@@ -939,9 +939,9 @@ config INTEL_PMC_IPC The PMC is an ARC processor which defines IPC commands for communication with other entities in the CPU. -config SURFACE_PRO3_BUTTON - tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3 tablet" +config SURFACE_PRO_BUTTON + tristate "Power/home/volume buttons driver for Microsoft Surface Pro Series tablet" depends on ACPI && INPUT ---help--- - This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3 tablet. + This driver handles the power/home/volume buttons on the Microsoft Surface Pro Series tablet. endif # X86_PLATFORM_DEVICESdrivers/platform/x86/Makefile +1
-1@@ -61,4 +61,4 @@ obj-$(CONFIG_INTEL_SMARTCONNECT) += intel-smartconnect.o obj-$(CONFIG_PVPANIC) += pvpanic.o obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o obj-$(CONFIG_INTEL_PMC_IPC) += intel_pmc_ipc.o -obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o +obj-$(CONFIG_SURFACE_PRO_BUTTON) += surfacepro_button.odrivers/platform/x86/surfacepro_button.c renamed from drivers/platform/x86/surfacepro3_button.c +8
-6@@ -1,6 +1,6 @@/* * power/home/volume button support for -* Microsoft Surface Pro 3 tablet. +* Microsoft Surface Pro Series tablet. * * Copyright (c) 2015 Intel Corporation. * All rights reserved. @@ -19,9 +19,10 @@#include <linux/acpi.h> #include <acpi/button.h> -#define SURFACE_BUTTON_HID "MSHW0028" +#define SURFACE_PRO3_BUTTON_HID "MSHW0028" +#define SURFACE_PRO4_BUTTON_HID "MSHW0040"#define SURFACE_BUTTON_OBJ_NAME "VGBI" -#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3 Buttons" +#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro Series Buttons"#define SURFACE_BUTTON_NOTIFY_PRESS_POWER 0xc6#define SURFACE_BUTTON_NOTIFY_RELEASE_POWER 0xc7@@ -35,10 +36,10 @@#define SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN 0xc2#define SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN 0xc3 -ACPI_MODULE_NAME ("surface pro 3 button" ); +ACPI_MODULE_NAME ("surface pro series button" );MODULE_AUTHOR ("Chen Yu" ); -MODULE_DESCRIPTION ("Surface Pro3 Button Driver" ); +MODULE_DESCRIPTION ("Surface Pro Series Button Driver" );MODULE_LICENSE ("GPL v2" );/* @@ -54,7 +55,8 @@ MODULE_LICENSE("GPL v2");* acpi_driver. */ static const struct acpi_device_id surface_button_device_ids[] = { - {SURFACE_BUTTON_HID ,0 }, + {SURFACE_PRO3_BUTTON_HID ,0 }, + {SURFACE_PRO4_BUTTON_HID ,0 }, {"" ,0 }, };MODULE_DEVICE_TABLE (acpi, surface_button_device_ids);
drivers/platform/x86/surfacepro_button.c static SIMPLE_DEV_PM_OPS(surface_button_pm, · line 208
Quoted 7 lines
drivers/platform/x86/surfacepro_button.c renamed from drivers/platform/x86/surfacepro3_button.c +2
-2@@ -202,8 +204,8 @@ static SIMPLE_DEV_PM_OPS(surface_button_pm, surface_button_suspend, surface_button_resume);static struct acpi_driver surface_button_driver = { - .name ="surface_pro3_button" , - .class ="SurfacePro3" , + .name ="surface_pro_button" , + .class ="SurfacePro" ,
So, beside the driver renaming I don't know the side effect of renaming .class field here.
Quoted 3 lines
drivers/platform/x86/surfacepro_button.c renamed from drivers/platform/x86/surfacepro3_button.c +0
-0.ids = surface_button_device_ids, .ops = { .add = surface_button_add,
Signature · 2 lines
With Best Regards, Andy Shevchenko
Quoted 7 lines · Andy Shevchenko
Quoted 6 lines · Weng Xuetian
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to support the Surface Pro 4, and renames the driver to
surfacepro_buttonaccordingly.
Quoted 7 lines
Quoted 2 lines
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>Darren, this one looks fine for me, still couple of question up to you.
First is do we really want to rename driver? (Renaming variables and stuff like I said if fine to me)
Sorry, replied before seeing this.
I agree that renaming the file is probably not necessary (this works on v3+ as I understand it, so the name isn't really a problem, and dropping the 3 suggests it works on v1 and v2).
I'd prefer to keep the name changing to a minimum, and add some information to the Kconfig help and driver comments making it clear that this supports 3+.
--
Darren
Quoted 130 lines
Quoted 111 lines
---
v3:
- Fix commit message grammar mistakes.
v2:
- Reformat patch with -M -C--- MAINTAINERS | 4 ++-- drivers/platform/x86/Kconfig | 6 +++--- drivers/platform/x86/Makefile | 2 +- .../x86/{surfacepro3_button.c => surfacepro_button.c} | 18 ++++++++++-------- 4 files changed, 16 insertions(+), 14 deletions(-) rename drivers/platform/x86/{surfacepro3_button.c => surfacepro_button.c} (93%)MAINTAINERS +2
-2@@ -7019,11 +7019,11 @@ T: git git://git.monstr.eu/linux-2.6-microblaze.git S: Supported F: arch/microblaze/ -MICROSOFT SURFACE PRO 3 BUTTON DRIVER +MICROSOFT SURFACE PRO SERIES BUTTON DRIVER M: Chen Yu <[email protected]> L: [email protected] S: Supported -F: drivers/platform/x86/surfacepro3_button.c +F: drivers/platform/x86/surfacepro_button.c MICROTEK X6 SCANNER M: Oliver Neukum <[email protected]>drivers/platform/x86/Kconfig +3
-3@@ -939,9 +939,9 @@ config INTEL_PMC_IPC The PMC is an ARC processor which defines IPC commands for communication with other entities in the CPU. -config SURFACE_PRO3_BUTTON - tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3 tablet" +config SURFACE_PRO_BUTTON + tristate "Power/home/volume buttons driver for Microsoft Surface Pro Series tablet" depends on ACPI && INPUT ---help--- - This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3 tablet. + This driver handles the power/home/volume buttons on the Microsoft Surface Pro Series tablet. endif # X86_PLATFORM_DEVICESdrivers/platform/x86/Makefile +1
-1@@ -61,4 +61,4 @@ obj-$(CONFIG_INTEL_SMARTCONNECT) += intel-smartconnect.o obj-$(CONFIG_PVPANIC) += pvpanic.o obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o obj-$(CONFIG_INTEL_PMC_IPC) += intel_pmc_ipc.o -obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o +obj-$(CONFIG_SURFACE_PRO_BUTTON) += surfacepro_button.odrivers/platform/x86/surfacepro_button.c renamed from drivers/platform/x86/surfacepro3_button.c +8
-6@@ -1,6 +1,6 @@/* * power/home/volume button support for -* Microsoft Surface Pro 3 tablet. +* Microsoft Surface Pro Series tablet. * * Copyright (c) 2015 Intel Corporation. * All rights reserved. @@ -19,9 +19,10 @@#include <linux/acpi.h> #include <acpi/button.h> -#define SURFACE_BUTTON_HID "MSHW0028" +#define SURFACE_PRO3_BUTTON_HID "MSHW0028" +#define SURFACE_PRO4_BUTTON_HID "MSHW0040"#define SURFACE_BUTTON_OBJ_NAME "VGBI" -#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3 Buttons" +#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro Series Buttons"#define SURFACE_BUTTON_NOTIFY_PRESS_POWER 0xc6#define SURFACE_BUTTON_NOTIFY_RELEASE_POWER 0xc7@@ -35,10 +36,10 @@#define SURFACE_BUTTON_NOTIFY_PRESS_VOLUME_DOWN 0xc2#define SURFACE_BUTTON_NOTIFY_RELEASE_VOLUME_DOWN 0xc3 -ACPI_MODULE_NAME ("surface pro 3 button" ); +ACPI_MODULE_NAME ("surface pro series button" );MODULE_AUTHOR ("Chen Yu" ); -MODULE_DESCRIPTION ("Surface Pro3 Button Driver" ); +MODULE_DESCRIPTION ("Surface Pro Series Button Driver" );MODULE_LICENSE ("GPL v2" );/* @@ -54,7 +55,8 @@ MODULE_LICENSE("GPL v2");* acpi_driver. */ static const struct acpi_device_id surface_button_device_ids[] = { - {SURFACE_BUTTON_HID ,0 }, + {SURFACE_PRO3_BUTTON_HID ,0 }, + {SURFACE_PRO4_BUTTON_HID ,0 }, {"" ,0 }, };MODULE_DEVICE_TABLE (acpi, surface_button_device_ids);drivers/platform/x86/surfacepro_button.c static SIMPLE_DEV_PM_OPS(surface_button_pm, · line 208
Quoted 7 lines
drivers/platform/x86/surfacepro_button.c renamed from drivers/platform/x86/surfacepro3_button.c +2
-2@@ -202,8 +204,8 @@ static SIMPLE_DEV_PM_OPS(surface_button_pm, surface_button_suspend, surface_button_resume);static struct acpi_driver surface_button_driver = { - .name ="surface_pro3_button" , - .class ="SurfacePro3" , + .name ="surface_pro_button" , + .class ="SurfacePro" ,So, beside the driver renaming I don't know the side effect of renaming .class field here.
Quoted 3 lines
drivers/platform/x86/surfacepro_button.c renamed from drivers/platform/x86/surfacepro3_button.c +0
-0.ids = surface_button_device_ids, .ops = { .add = surface_button_add,Signature · 2 lines
With Best Regards, Andy Shevchenko
Signature · 2 lines
Darren Hart Intel Open Source Technology Center
Hi Darren,
Quoted 27 lines
-----Original Message-----
From: Darren Hart [mailto:[email protected]]
Sent: Tuesday, January 05, 2016 4:36 AM
To: Andy Shevchenko
Cc: Weng Xuetian; Chen, Yu C; [email protected]; platform- [email protected]
Subject: Re: [PATCH v3] surface pro 4: Add support for Surface Pro 4 ButtonsQuoted 1 line · Andy Shevchenko
On Sun, Dec 27, 2015 at 9:21 PM, Weng Xuetian <[email protected]>
Quoted 6 lines · wrote:
Quoted 6 lines
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to support the Surface Pro 4, and renames the driver to
surfacepro_buttonaccordingly.Quoted 7 lines
Quoted 2 lines
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>Darren, this one looks fine for me, still couple of question up to you.
First is do we really want to rename driver? (Renaming variables and stuff like I said if fine to me)
Sorry, replied before seeing this.
Quoted 8 lines
I agree that renaming the file is probably not necessary (this works on v3+ as I understand it, so the name isn't really a problem, and dropping the 3 suggests it works on v1 and v2).
I'd prefer to keep the name changing to a minimum, and add some information to the
Kconfighelp and driver comments making it clear that this supports 3+.
[Yu] I agree, since I don't have a surface pro < 3 tested, there is no need to rename it.
thanks,
yu
Quoted 7 lines · Weng Xuetian
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to support the Surface Pro 4, and renames the driver to
surfacepro_buttonaccordingly.Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Is there a Surface Pro v1 and v2? If so, and they are not supported, then the 3 makes sense to keep. Or, at the very least, the Kconfig help and the comments in the driver should make it clear that it supports v3 and later.
Chen, any concerns?
Signature · 2 lines
Darren Hart Intel Open Source Technology Center
Quoted 8 lines · Weng Xuetian
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to support the Surface Pro 4, and renames the driver to
surfacepro_buttonaccordingly.Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>
Weng,
Given the feedback on renaming from Andy, Yu, and myself, I'm dropping this patch and waiting for a v4 without the rename.
Signature · 2 lines
Darren Hart Intel Open Source Technology Center
PATCH v4 1/1 surface pro 4: Add support for Surface Pro 4 Buttons
In reply to Weng XuetianSurface Pro 4 buttons are managed by a device with _HID "MSHW0040" different from Surface Pro 3.
This commit adds MSHW0040 to id list to support the Surface Pro 4.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
---
v4:
- Do not rename the driver.
v3:
- Fix commit message grammar mistakes.
v2:
- Reformat patch with -M -C
--- drivers/platform/x86/Kconfig | 4 ++-- drivers/platform/x86/surfacepro3_button.c | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-)
drivers/platform/x86/Kconfig +2 -2
@@ -940,8 +940,8 @@ config INTEL_PMC_IPC with other entities in the CPU. config SURFACE_PRO3_BUTTON - tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3 tablet" + tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3/4 tablet" depends on ACPI && INPUT ---help--- - This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3 tablet. + This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3/4 tablet. endif # X86_PLATFORM_DEVICES
drivers/platform/x86/surfacepro3_button.c +5 -3
@@ -1,6 +1,6 @@/* * power/home/volume button support for -* Microsoft Surface Pro 3 tablet. +* Microsoft Surface Pro 3/4 tablet. * * Copyright (c) 2015 Intel Corporation. * All rights reserved.
@@ -19,7 +19,8 @@#include <linux/acpi.h> #include <acpi/button.h> -#define SURFACE_BUTTON_HID "MSHW0028" +#define SURFACE_PRO3_BUTTON_HID "MSHW0028" +#define SURFACE_PRO4_BUTTON_HID "MSHW0040"#define SURFACE_BUTTON_OBJ_NAME "VGBI"#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3 Buttons"
@@ -54,7 +55,8 @@ MODULE_LICENSE("GPL v2");* acpi_driver. */ static const struct acpi_device_id surface_button_device_ids[] = { - {SURFACE_BUTTON_HID ,0 }, + {SURFACE_PRO3_BUTTON_HID ,0 }, + {SURFACE_PRO4_BUTTON_HID ,0 }, {"" ,0 }, };MODULE_DEVICE_TABLE (acpi, surface_button_device_ids);
Signature · 1 line
2.6.4
Quoted 7 lines · Weng Xuetian
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to support the Surface Pro 4.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>
This is so much better, thank you Weng.
Yu, are you happy with this version?
Signature · 2 lines
Darren Hart Intel Open Source Technology Center
Chen, Yu C
Acked-byHi Darren,
Quoted 12 lines
-----Original Message-----
From: Darren Hart [mailto:[email protected]]
Sent: Friday, January 15, 2016 7:01 AM
To: Weng Xuetian
Cc: Chen, Yu C; [email protected]; platform-driver- [email protected]
Subject: Re: [PATCH v4] surface pro 4: Add support for Surface Pro 4 ButtonsQuoted 3 lines · Weng Xuetian
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.
Quoted 9 lines
Quoted 4 lines
This commit adds MSHW0040 to id list to support the Surface Pro 4.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>This is so much better, thank you Weng.
Yu, are you happy with this version?
Looks good to me.
thanks,
Yu
Chen, Yu C
Acked-byHi Darren, Xuetian
Quoted 12 lines
-----Original Message-----
From: Darren Hart [mailto:[email protected]]
Sent: Friday, January 15, 2016 7:01 AM
To: Weng Xuetian
Cc: Chen, Yu C; [email protected]; platform-driver- [email protected]
Subject: Re: [PATCH v4] surface pro 4: Add support for Surface Pro 4 ButtonsQuoted 3 lines · Weng Xuetian
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.
Quoted 9 lines
Quoted 4 lines
This commit adds MSHW0040 to id list to support the Surface Pro 4.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>This is so much better, thank you Weng.
Yu, are you happy with this version?
One minor nit below, other than that,
-- #define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3 Buttons"
++ #define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3/4 Buttons"
And
PATCH v5 1/1 surface pro 4: Add support for Surface Pro 4 Buttons
In reply to Weng XuetianSurface Pro 4 buttons are managed by a device with _HID "MSHW0040" different from Surface Pro 3.
This commit adds MSHW0040 to id list to support the Surface Pro 4.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
---
v5:
- rename device name macro as required by Chen Yu
v4:
- Do not rename the driver.
v3:
- Fix commit message grammar mistakes.
v2:
- Reformat patch with -M -C
--- drivers/platform/x86/Kconfig | 4 ++-- drivers/platform/x86/surfacepro3_button.c | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-)
drivers/platform/x86/Kconfig +2 -2
@@ -940,8 +940,8 @@ config INTEL_PMC_IPC with other entities in the CPU. config SURFACE_PRO3_BUTTON - tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3 tablet" + tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3/4 tablet" depends on ACPI && INPUT ---help--- - This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3 tablet. + This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3/4 tablet. endif # X86_PLATFORM_DEVICES
drivers/platform/x86/surfacepro3_button.c +6 -4
@@ -1,6 +1,6 @@/* * power/home/volume button support for -* Microsoft Surface Pro 3 tablet. +* Microsoft Surface Pro 3/4 tablet. * * Copyright (c) 2015 Intel Corporation. * All rights reserved.
@@ -19,9 +19,10 @@#include <linux/acpi.h> #include <acpi/button.h> -#define SURFACE_BUTTON_HID "MSHW0028" +#define SURFACE_PRO3_BUTTON_HID "MSHW0028" +#define SURFACE_PRO4_BUTTON_HID "MSHW0040"#define SURFACE_BUTTON_OBJ_NAME "VGBI" -#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3 Buttons" +#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3/4 Buttons"#define SURFACE_BUTTON_NOTIFY_PRESS_POWER 0xc6#define SURFACE_BUTTON_NOTIFY_RELEASE_POWER 0xc7
@@ -54,7 +55,8 @@ MODULE_LICENSE("GPL v2");* acpi_driver. */ static const struct acpi_device_id surface_button_device_ids[] = { - {SURFACE_BUTTON_HID ,0 }, + {SURFACE_PRO3_BUTTON_HID ,0 }, + {SURFACE_PRO4_BUTTON_HID ,0 }, {"" ,0 }, };MODULE_DEVICE_TABLE (acpi, surface_button_device_ids);
Signature · 1 line
2.7.0
Quoted 8 lines
-----Original Message-----
From: Weng Xuetian [mailto:[email protected]]
Sent: Monday, January 18, 2016 7:11 AM
To: Chen, Yu C
Cc: Darren Hart; [email protected]; platform-driver- [email protected]; Weng Xuetian
Subject: [PATCH v5] surface pro 4: Add support for Surface Pro 4 Buttons
Quoted 7 lines
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to support the Surface Pro 4.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>
Darren Hart
AppliedQuoted 10 lines · Weng Xuetian
Surface Pro 4 buttons are managed by a device with
_HID"MSHW0040" different from Surface Pro 3.This commit adds MSHW0040 to id list to support the Surface Pro 4.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871
Signed-off-by Weng Xuetian <[email protected]>---
v5:
- rename device name macro as required by Chen Yu
Queued up, thanks!
Signature · 2 lines
Darren Hart Intel Open Source Technology Center