Update patches via qzed/linux-surface-kernel
- Fix missing Kconfig dependency of IPTS on DRM_I915 - Add IPTS firmware declarations - Update button patch based on upstreaming changes
This commit is contained in:
parent
0984748ad5
commit
dcf51e95e7
|
@ -1,4 +1,4 @@
|
||||||
From 3dba190fc78be008b532c0ccc26508d29df452a7 Mon Sep 17 00:00:00 2001
|
From bcb840821cd18b10375f24efb5b44f7f5adcc535 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Wed, 2 Oct 2019 22:28:37 +0200
|
Date: Wed, 2 Oct 2019 22:28:37 +0200
|
||||||
Subject: [PATCH 01/12] surface-acpi
|
Subject: [PATCH 01/12] surface-acpi
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From fdd0d1e94fddf87f87225d5a75cfe52bb822091d Mon Sep 17 00:00:00 2001
|
From fa7e9dbe07d4e3a7e5bc90483fb3855bf37a55b8 Mon Sep 17 00:00:00 2001
|
||||||
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
|
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
|
||||||
Date: Fri, 20 Sep 2019 01:03:29 +0900
|
Date: Fri, 20 Sep 2019 01:03:29 +0900
|
||||||
Subject: [PATCH 02/12] suspend
|
Subject: [PATCH 02/12] suspend
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
From dbc12367327b76ce1c8018a5f5acf46c6516028c Mon Sep 17 00:00:00 2001
|
From 5d229605142d04aed881b5df78faf510a3782e4d Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:42:15 +0200
|
Date: Fri, 26 Jul 2019 03:42:15 +0200
|
||||||
Subject: [PATCH 03/12] buttons
|
Subject: [PATCH 03/12] buttons
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/input/misc/Kconfig | 6 +-
|
drivers/input/misc/Kconfig | 6 +-
|
||||||
drivers/input/misc/soc_button_array.c | 105 +++++++++++++++++++---
|
drivers/input/misc/soc_button_array.c | 112 +++++++++++++++++++---
|
||||||
drivers/platform/x86/surfacepro3_button.c | 47 ++++++++++
|
drivers/platform/x86/surfacepro3_button.c | 47 +++++++++
|
||||||
3 files changed, 143 insertions(+), 15 deletions(-)
|
3 files changed, 150 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
||||||
index ca59a2be9bc5..ea69610370e8 100644
|
index ca59a2be9bc5..ea69610370e8 100644
|
||||||
|
@ -28,7 +28,7 @@ index ca59a2be9bc5..ea69610370e8 100644
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called soc_button_array.
|
module will be called soc_button_array.
|
||||||
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
||||||
index 55cd6e0b409c..8f21c062c85d 100644
|
index 55cd6e0b409c..5983733d78dd 100644
|
||||||
--- a/drivers/input/misc/soc_button_array.c
|
--- a/drivers/input/misc/soc_button_array.c
|
||||||
+++ b/drivers/input/misc/soc_button_array.c
|
+++ b/drivers/input/misc/soc_button_array.c
|
||||||
@@ -29,6 +29,11 @@ struct soc_button_info {
|
@@ -29,6 +29,11 @@ struct soc_button_info {
|
||||||
|
@ -43,22 +43,29 @@ index 55cd6e0b409c..8f21c062c85d 100644
|
||||||
/*
|
/*
|
||||||
* Some of the buttons like volume up/down are auto repeat, while others
|
* Some of the buttons like volume up/down are auto repeat, while others
|
||||||
* are not. To support both, we register two platform devices, and put
|
* are not. To support both, we register two platform devices, and put
|
||||||
@@ -91,8 +96,13 @@ soc_button_device_create(struct platform_device *pdev,
|
@@ -91,8 +96,20 @@ soc_button_device_create(struct platform_device *pdev,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
gpio = soc_button_lookup_gpio(&pdev->dev, info->acpi_index);
|
gpio = soc_button_lookup_gpio(&pdev->dev, info->acpi_index);
|
||||||
- if (!gpio_is_valid(gpio))
|
- if (!gpio_is_valid(gpio))
|
||||||
+ if (gpio < 0 && gpio != -ENOENT) {
|
+ if (!gpio_is_valid(gpio)) {
|
||||||
+ error = gpio;
|
+ /*
|
||||||
+ goto err_free_mem;
|
+ * Skip GPIO if not present. Note we deliberately
|
||||||
+ } else if (!gpio_is_valid(gpio)) {
|
+ * ignore -EPROBE_DEFER errors here. On some devices
|
||||||
+ /* Skip GPIO if not present */
|
+ * Intel is using so called virtual GPIOs which are not
|
||||||
|
+ * GPIOs at all but some way for AML code to check some
|
||||||
|
+ * random status bits without need a custom opregion.
|
||||||
|
+ * In some cases the resources table we parse points to
|
||||||
|
+ * such a virtual GPIO, since these are not real GPIOs
|
||||||
|
+ * we do not have a driver for these so they will never
|
||||||
|
+ * show up, therefor we ignore -EPROBE_DEFER.
|
||||||
|
+ */
|
||||||
continue;
|
continue;
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
gpio_keys[n_buttons].type = info->event_type;
|
gpio_keys[n_buttons].type = info->event_type;
|
||||||
gpio_keys[n_buttons].code = info->event_code;
|
gpio_keys[n_buttons].code = info->event_code;
|
||||||
@@ -309,23 +319,26 @@ static int soc_button_remove(struct platform_device *pdev)
|
@@ -309,23 +326,26 @@ static int soc_button_remove(struct platform_device *pdev)
|
||||||
static int soc_button_probe(struct platform_device *pdev)
|
static int soc_button_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
|
@ -93,7 +100,7 @@ index 55cd6e0b409c..8f21c062c85d 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
error = gpiod_count(dev, NULL);
|
error = gpiod_count(dev, NULL);
|
||||||
@@ -357,7 +370,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
@@ -357,7 +377,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
||||||
if (!priv->children[0] && !priv->children[1])
|
if (!priv->children[0] && !priv->children[1])
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
@ -102,7 +109,7 @@ index 55cd6e0b409c..8f21c062c85d 100644
|
||||||
devm_kfree(dev, button_info);
|
devm_kfree(dev, button_info);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -368,7 +381,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
@@ -368,7 +388,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
||||||
* is defined in section 2.8.7.2 of "Windows ACPI Design Guide for SoC
|
* is defined in section 2.8.7.2 of "Windows ACPI Design Guide for SoC
|
||||||
* Platforms"
|
* Platforms"
|
||||||
*/
|
*/
|
||||||
|
@ -111,7 +118,7 @@ index 55cd6e0b409c..8f21c062c85d 100644
|
||||||
{ "power", 0, EV_KEY, KEY_POWER, false, true },
|
{ "power", 0, EV_KEY, KEY_POWER, false, true },
|
||||||
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
|
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
|
||||||
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
|
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
|
||||||
@@ -377,9 +390,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
|
@@ -377,9 +397,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 32aae1e64da7ea1e6c4895467c661cc3751b376f Mon Sep 17 00:00:00 2001
|
From 053effa42ff66c5287a54ee5890ffb36731a99c4 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:42:25 +0200
|
Date: Fri, 26 Jul 2019 03:42:25 +0200
|
||||||
Subject: [PATCH 04/12] cameras
|
Subject: [PATCH 04/12] cameras
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 1c679b8c0ae742c6c08dc035b83040d40abd9203 Mon Sep 17 00:00:00 2001
|
From ba20bcf9e7fa8faba1a373d89ecc18b3f9211d5a Mon Sep 17 00:00:00 2001
|
||||||
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
|
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
|
||||||
Date: Tue, 10 Sep 2019 21:52:46 +0900
|
Date: Tue, 10 Sep 2019 21:52:46 +0900
|
||||||
Subject: [PATCH 05/12] ipts
|
Subject: [PATCH 05/12] ipts
|
||||||
|
@ -28,7 +28,7 @@ Subject: [PATCH 05/12] ipts
|
||||||
drivers/misc/ipts/Makefile | 17 +
|
drivers/misc/ipts/Makefile | 17 +
|
||||||
drivers/misc/ipts/companion/Kconfig | 9 +
|
drivers/misc/ipts/companion/Kconfig | 9 +
|
||||||
drivers/misc/ipts/companion/Makefile | 1 +
|
drivers/misc/ipts/companion/Makefile | 1 +
|
||||||
drivers/misc/ipts/companion/ipts-surface.c | 82 ++
|
drivers/misc/ipts/companion/ipts-surface.c | 100 ++
|
||||||
drivers/misc/ipts/ipts-binary-spec.h | 118 +++
|
drivers/misc/ipts/ipts-binary-spec.h | 118 +++
|
||||||
drivers/misc/ipts/ipts-dbgfs.c | 364 +++++++
|
drivers/misc/ipts/ipts-dbgfs.c | 364 +++++++
|
||||||
drivers/misc/ipts/ipts-fw.c | 113 ++
|
drivers/misc/ipts/ipts-fw.c | 113 ++
|
||||||
|
@ -54,7 +54,7 @@ Subject: [PATCH 05/12] ipts
|
||||||
drivers/misc/mei/pci-me.c | 1 +
|
drivers/misc/mei/pci-me.c | 1 +
|
||||||
include/linux/intel_ipts_fw.h | 14 +
|
include/linux/intel_ipts_fw.h | 14 +
|
||||||
include/linux/intel_ipts_if.h | 76 ++
|
include/linux/intel_ipts_if.h | 76 ++
|
||||||
50 files changed, 6154 insertions(+), 26 deletions(-)
|
50 files changed, 6172 insertions(+), 26 deletions(-)
|
||||||
create mode 100644 drivers/gpu/drm/i915/intel_ipts.c
|
create mode 100644 drivers/gpu/drm/i915/intel_ipts.c
|
||||||
create mode 100644 drivers/gpu/drm/i915/intel_ipts.h
|
create mode 100644 drivers/gpu/drm/i915/intel_ipts.h
|
||||||
create mode 100644 drivers/misc/ipts/Kconfig
|
create mode 100644 drivers/misc/ipts/Kconfig
|
||||||
|
@ -1401,14 +1401,14 @@ index af22bbc3d00c..eb1eb0d58c32 100644
|
||||||
obj-$(CONFIG_SRAM) += sram.o
|
obj-$(CONFIG_SRAM) += sram.o
|
||||||
diff --git a/drivers/misc/ipts/Kconfig b/drivers/misc/ipts/Kconfig
|
diff --git a/drivers/misc/ipts/Kconfig b/drivers/misc/ipts/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..a24c4daaed42
|
index 000000000000..992a51061b38
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/ipts/Kconfig
|
+++ b/drivers/misc/ipts/Kconfig
|
||||||
@@ -0,0 +1,11 @@
|
@@ -0,0 +1,11 @@
|
||||||
+config INTEL_IPTS
|
+config INTEL_IPTS
|
||||||
+ tristate "Intel Precise Touch & Stylus"
|
+ tristate "Intel Precise Touch & Stylus"
|
||||||
+ select INTEL_MEI
|
+ select INTEL_MEI
|
||||||
+ depends on X86 && PCI && HID
|
+ depends on X86 && PCI && HID && DRM_I915
|
||||||
+ help
|
+ help
|
||||||
+ Intel Precise Touch & Stylus support
|
+ Intel Precise Touch & Stylus support
|
||||||
+ Supported SoCs:
|
+ Supported SoCs:
|
||||||
|
@ -1463,10 +1463,10 @@ index 000000000000..fb4d58935f01
|
||||||
+obj-$(CONFIG_INTEL_IPTS_SURFACE)+= ipts-surface.o
|
+obj-$(CONFIG_INTEL_IPTS_SURFACE)+= ipts-surface.o
|
||||||
diff --git a/drivers/misc/ipts/companion/ipts-surface.c b/drivers/misc/ipts/companion/ipts-surface.c
|
diff --git a/drivers/misc/ipts/companion/ipts-surface.c b/drivers/misc/ipts/companion/ipts-surface.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..4d6116dfa728
|
index 000000000000..6f5aabb14e5a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/ipts/companion/ipts-surface.c
|
+++ b/drivers/misc/ipts/companion/ipts-surface.c
|
||||||
@@ -0,0 +1,82 @@
|
@@ -0,0 +1,100 @@
|
||||||
+#include <linux/acpi.h>
|
+#include <linux/acpi.h>
|
||||||
+#include <linux/firmware.h>
|
+#include <linux/firmware.h>
|
||||||
+#include <linux/intel_ipts_fw.h>
|
+#include <linux/intel_ipts_fw.h>
|
||||||
|
@ -1476,6 +1476,24 @@ index 000000000000..4d6116dfa728
|
||||||
+
|
+
|
||||||
+#define IPTS_SURFACE_FW_PATH_FMT "intel/ipts/%s/%s"
|
+#define IPTS_SURFACE_FW_PATH_FMT "intel/ipts/%s/%s"
|
||||||
+
|
+
|
||||||
|
+#define __IPTS_SURFACE_FIRMWARE(X, Y) \
|
||||||
|
+ MODULE_FIRMWARE("intel/ipts/" X "/" Y)
|
||||||
|
+
|
||||||
|
+#define IPTS_SURFACE_FIRMWARE(X) \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "config.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "intel_desc.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "intel_fw_config.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "vendor_desc.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "vendor_kernel.bin")
|
||||||
|
+
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0076");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0078");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0079");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0101");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0102");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0103");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0137");
|
||||||
|
+
|
||||||
+int ipts_surface_request_firmware(const struct firmware **fw, const char *name,
|
+int ipts_surface_request_firmware(const struct firmware **fw, const char *name,
|
||||||
+ struct device *device, void *data)
|
+ struct device *device, void *data)
|
||||||
+{
|
+{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From d46001bbd61c1662cf9c82837ebfea3239ebf0bd Mon Sep 17 00:00:00 2001
|
From b0bbf860d2a601d8c565858b5f3524c94627ab25 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:42:50 +0200
|
Date: Fri, 26 Jul 2019 03:42:50 +0200
|
||||||
Subject: [PATCH 06/12] hid
|
Subject: [PATCH 06/12] hid
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From d3edfe02eabb2eb171a4ae790a5e888e81c14101 Mon Sep 17 00:00:00 2001
|
From 88a3bb4523f4681fd995f6c179e298317d57666f Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:43:03 +0200
|
Date: Fri, 26 Jul 2019 03:43:03 +0200
|
||||||
Subject: [PATCH 07/12] sdcard-reader
|
Subject: [PATCH 07/12] sdcard-reader
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 82f3fd486b32769081e2d6812791c0f8921623f8 Mon Sep 17 00:00:00 2001
|
From 91d5d2387c622beda4a808d030d26088f2561715 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:43:14 +0200
|
Date: Fri, 26 Jul 2019 03:43:14 +0200
|
||||||
Subject: [PATCH 08/12] wifi
|
Subject: [PATCH 08/12] wifi
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From ca36331bd3ce2f4f835a3949d5dd318017cdd4c6 Mon Sep 17 00:00:00 2001
|
From 735dba4a5b07638b17ba1ac139e7028bac29cf1d Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:43:27 +0200
|
Date: Fri, 26 Jul 2019 03:43:27 +0200
|
||||||
Subject: [PATCH 09/12] surface3-power
|
Subject: [PATCH 09/12] surface3-power
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 080e6670d3626985fcf2989b4e0ab472be942954 Mon Sep 17 00:00:00 2001
|
From 9545f8525aa758207c974215ee6b635516aeac82 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:43:45 +0200
|
Date: Fri, 26 Jul 2019 03:43:45 +0200
|
||||||
Subject: [PATCH 10/12] mwlwifi
|
Subject: [PATCH 10/12] mwlwifi
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 810ebe900e48d6a50c715b9b0b6d3fc842976ae4 Mon Sep 17 00:00:00 2001
|
From 59199ea3163562e29bc8a5ad2a1c1bf11cc634f9 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:43:57 +0200
|
Date: Fri, 26 Jul 2019 03:43:57 +0200
|
||||||
Subject: [PATCH 11/12] surface-lte
|
Subject: [PATCH 11/12] surface-lte
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 0627b97f70cb301ac315e38fffc6e1237c3ebedd Mon Sep 17 00:00:00 2001
|
From 11d49c9f0d336f6575f38228044a209652d1ede1 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 03:44:10 +0200
|
Date: Fri, 26 Jul 2019 03:44:10 +0200
|
||||||
Subject: [PATCH 12/12] surfacebook2-dgpu
|
Subject: [PATCH 12/12] surfacebook2-dgpu
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From f2650d86b6172e3dbc6f9510ef50bd7ef32b509b Mon Sep 17 00:00:00 2001
|
From fe620408edbe977514da914279f549e7d8fb036a Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Wed, 2 Oct 2019 22:36:03 +0200
|
Date: Wed, 2 Oct 2019 22:36:03 +0200
|
||||||
Subject: [PATCH 01/12] surface-acpi
|
Subject: [PATCH 01/12] surface-acpi
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 96d9183e53e80209086d7f5c5225a1108a451748 Mon Sep 17 00:00:00 2001
|
From cb14df71f8a2da98fd242a35143613c55525ca44 Mon Sep 17 00:00:00 2001
|
||||||
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
|
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
|
||||||
Date: Wed, 31 Jul 2019 08:41:30 +0900
|
Date: Wed, 31 Jul 2019 08:41:30 +0900
|
||||||
Subject: [PATCH 02/12] suspend
|
Subject: [PATCH 02/12] suspend
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
From e0465b614d5191e2fc3ecae7bfa6f1e44ed94a84 Mon Sep 17 00:00:00 2001
|
From 2a57dacdffa4b231321c0dfd4490a0c7f5b70153 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:45:10 +0200
|
Date: Fri, 26 Jul 2019 04:45:10 +0200
|
||||||
Subject: [PATCH 03/12] buttons
|
Subject: [PATCH 03/12] buttons
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/input/misc/Kconfig | 6 +-
|
drivers/input/misc/Kconfig | 6 +-
|
||||||
drivers/input/misc/soc_button_array.c | 105 +++++++++++++++++++---
|
drivers/input/misc/soc_button_array.c | 112 +++++++++++++++++++---
|
||||||
drivers/platform/x86/surfacepro3_button.c | 47 ++++++++++
|
drivers/platform/x86/surfacepro3_button.c | 47 +++++++++
|
||||||
3 files changed, 143 insertions(+), 15 deletions(-)
|
3 files changed, 150 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
||||||
index d07c1eb15aa6..7d9ae394e597 100644
|
index d07c1eb15aa6..7d9ae394e597 100644
|
||||||
|
@ -28,7 +28,7 @@ index d07c1eb15aa6..7d9ae394e597 100644
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called soc_button_array.
|
module will be called soc_button_array.
|
||||||
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
||||||
index 5e59f8e57f8e..6f0133fe1546 100644
|
index 5e59f8e57f8e..ef89698c7d43 100644
|
||||||
--- a/drivers/input/misc/soc_button_array.c
|
--- a/drivers/input/misc/soc_button_array.c
|
||||||
+++ b/drivers/input/misc/soc_button_array.c
|
+++ b/drivers/input/misc/soc_button_array.c
|
||||||
@@ -25,6 +25,11 @@ struct soc_button_info {
|
@@ -25,6 +25,11 @@ struct soc_button_info {
|
||||||
|
@ -43,22 +43,29 @@ index 5e59f8e57f8e..6f0133fe1546 100644
|
||||||
/*
|
/*
|
||||||
* Some of the buttons like volume up/down are auto repeat, while others
|
* Some of the buttons like volume up/down are auto repeat, while others
|
||||||
* are not. To support both, we register two platform devices, and put
|
* are not. To support both, we register two platform devices, and put
|
||||||
@@ -87,8 +92,13 @@ soc_button_device_create(struct platform_device *pdev,
|
@@ -87,8 +92,20 @@ soc_button_device_create(struct platform_device *pdev,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
gpio = soc_button_lookup_gpio(&pdev->dev, info->acpi_index);
|
gpio = soc_button_lookup_gpio(&pdev->dev, info->acpi_index);
|
||||||
- if (!gpio_is_valid(gpio))
|
- if (!gpio_is_valid(gpio))
|
||||||
+ if (gpio < 0 && gpio != -ENOENT) {
|
+ if (!gpio_is_valid(gpio)) {
|
||||||
+ error = gpio;
|
+ /*
|
||||||
+ goto err_free_mem;
|
+ * Skip GPIO if not present. Note we deliberately
|
||||||
+ } else if (!gpio_is_valid(gpio)) {
|
+ * ignore -EPROBE_DEFER errors here. On some devices
|
||||||
+ /* Skip GPIO if not present */
|
+ * Intel is using so called virtual GPIOs which are not
|
||||||
|
+ * GPIOs at all but some way for AML code to check some
|
||||||
|
+ * random status bits without need a custom opregion.
|
||||||
|
+ * In some cases the resources table we parse points to
|
||||||
|
+ * such a virtual GPIO, since these are not real GPIOs
|
||||||
|
+ * we do not have a driver for these so they will never
|
||||||
|
+ * show up, therefor we ignore -EPROBE_DEFER.
|
||||||
|
+ */
|
||||||
continue;
|
continue;
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
gpio_keys[n_buttons].type = info->event_type;
|
gpio_keys[n_buttons].type = info->event_type;
|
||||||
gpio_keys[n_buttons].code = info->event_code;
|
gpio_keys[n_buttons].code = info->event_code;
|
||||||
@@ -309,23 +319,26 @@ static int soc_button_remove(struct platform_device *pdev)
|
@@ -309,23 +326,26 @@ static int soc_button_remove(struct platform_device *pdev)
|
||||||
static int soc_button_probe(struct platform_device *pdev)
|
static int soc_button_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
|
@ -93,7 +100,7 @@ index 5e59f8e57f8e..6f0133fe1546 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
error = gpiod_count(dev, NULL);
|
error = gpiod_count(dev, NULL);
|
||||||
@@ -357,7 +370,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
@@ -357,7 +377,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
||||||
if (!priv->children[0] && !priv->children[1])
|
if (!priv->children[0] && !priv->children[1])
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
@ -102,7 +109,7 @@ index 5e59f8e57f8e..6f0133fe1546 100644
|
||||||
devm_kfree(dev, button_info);
|
devm_kfree(dev, button_info);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -368,7 +381,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
@@ -368,7 +388,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
||||||
* is defined in section 2.8.7.2 of "Windows ACPI Design Guide for SoC
|
* is defined in section 2.8.7.2 of "Windows ACPI Design Guide for SoC
|
||||||
* Platforms"
|
* Platforms"
|
||||||
*/
|
*/
|
||||||
|
@ -111,7 +118,7 @@ index 5e59f8e57f8e..6f0133fe1546 100644
|
||||||
{ "power", 0, EV_KEY, KEY_POWER, false, true },
|
{ "power", 0, EV_KEY, KEY_POWER, false, true },
|
||||||
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
|
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
|
||||||
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
|
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
|
||||||
@@ -377,9 +390,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
|
@@ -377,9 +397,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From a2df42f63c69a0b100d4dd59a6f06eefc45b1a2c Mon Sep 17 00:00:00 2001
|
From c4462fc162588ba31e4afc9c7865a2ee2d62afd5 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:45:19 +0200
|
Date: Fri, 26 Jul 2019 04:45:19 +0200
|
||||||
Subject: [PATCH 04/12] cameras
|
Subject: [PATCH 04/12] cameras
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From d39dd89cae4f537eec84d5bd7c7b52837766fe3f Mon Sep 17 00:00:00 2001
|
From 80e9c51a3d3b646698a40d761fd30a8cf6b45244 Mon Sep 17 00:00:00 2001
|
||||||
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
|
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
|
||||||
Date: Tue, 10 Sep 2019 21:54:42 +0900
|
Date: Tue, 10 Sep 2019 21:54:42 +0900
|
||||||
Subject: [PATCH 05/12] ipts
|
Subject: [PATCH 05/12] ipts
|
||||||
|
@ -28,7 +28,7 @@ Subject: [PATCH 05/12] ipts
|
||||||
drivers/misc/ipts/Makefile | 17 +
|
drivers/misc/ipts/Makefile | 17 +
|
||||||
drivers/misc/ipts/companion/Kconfig | 9 +
|
drivers/misc/ipts/companion/Kconfig | 9 +
|
||||||
drivers/misc/ipts/companion/Makefile | 1 +
|
drivers/misc/ipts/companion/Makefile | 1 +
|
||||||
drivers/misc/ipts/companion/ipts-surface.c | 82 ++
|
drivers/misc/ipts/companion/ipts-surface.c | 100 ++
|
||||||
drivers/misc/ipts/ipts-binary-spec.h | 118 +++
|
drivers/misc/ipts/ipts-binary-spec.h | 118 +++
|
||||||
drivers/misc/ipts/ipts-dbgfs.c | 364 +++++++
|
drivers/misc/ipts/ipts-dbgfs.c | 364 +++++++
|
||||||
drivers/misc/ipts/ipts-fw.c | 113 ++
|
drivers/misc/ipts/ipts-fw.c | 113 ++
|
||||||
|
@ -54,7 +54,7 @@ Subject: [PATCH 05/12] ipts
|
||||||
drivers/misc/mei/pci-me.c | 1 +
|
drivers/misc/mei/pci-me.c | 1 +
|
||||||
include/linux/intel_ipts_fw.h | 14 +
|
include/linux/intel_ipts_fw.h | 14 +
|
||||||
include/linux/intel_ipts_if.h | 76 ++
|
include/linux/intel_ipts_if.h | 76 ++
|
||||||
50 files changed, 6154 insertions(+), 26 deletions(-)
|
50 files changed, 6172 insertions(+), 26 deletions(-)
|
||||||
create mode 100644 drivers/gpu/drm/i915/intel_ipts.c
|
create mode 100644 drivers/gpu/drm/i915/intel_ipts.c
|
||||||
create mode 100644 drivers/gpu/drm/i915/intel_ipts.h
|
create mode 100644 drivers/gpu/drm/i915/intel_ipts.h
|
||||||
create mode 100644 drivers/misc/ipts/Kconfig
|
create mode 100644 drivers/misc/ipts/Kconfig
|
||||||
|
@ -1403,14 +1403,14 @@ index b9affcdaa3d6..e681e345a9ed 100644
|
||||||
obj-$(CONFIG_SRAM) += sram.o
|
obj-$(CONFIG_SRAM) += sram.o
|
||||||
diff --git a/drivers/misc/ipts/Kconfig b/drivers/misc/ipts/Kconfig
|
diff --git a/drivers/misc/ipts/Kconfig b/drivers/misc/ipts/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..a24c4daaed42
|
index 000000000000..992a51061b38
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/ipts/Kconfig
|
+++ b/drivers/misc/ipts/Kconfig
|
||||||
@@ -0,0 +1,11 @@
|
@@ -0,0 +1,11 @@
|
||||||
+config INTEL_IPTS
|
+config INTEL_IPTS
|
||||||
+ tristate "Intel Precise Touch & Stylus"
|
+ tristate "Intel Precise Touch & Stylus"
|
||||||
+ select INTEL_MEI
|
+ select INTEL_MEI
|
||||||
+ depends on X86 && PCI && HID
|
+ depends on X86 && PCI && HID && DRM_I915
|
||||||
+ help
|
+ help
|
||||||
+ Intel Precise Touch & Stylus support
|
+ Intel Precise Touch & Stylus support
|
||||||
+ Supported SoCs:
|
+ Supported SoCs:
|
||||||
|
@ -1465,10 +1465,10 @@ index 000000000000..fb4d58935f01
|
||||||
+obj-$(CONFIG_INTEL_IPTS_SURFACE)+= ipts-surface.o
|
+obj-$(CONFIG_INTEL_IPTS_SURFACE)+= ipts-surface.o
|
||||||
diff --git a/drivers/misc/ipts/companion/ipts-surface.c b/drivers/misc/ipts/companion/ipts-surface.c
|
diff --git a/drivers/misc/ipts/companion/ipts-surface.c b/drivers/misc/ipts/companion/ipts-surface.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..4d6116dfa728
|
index 000000000000..6f5aabb14e5a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/ipts/companion/ipts-surface.c
|
+++ b/drivers/misc/ipts/companion/ipts-surface.c
|
||||||
@@ -0,0 +1,82 @@
|
@@ -0,0 +1,100 @@
|
||||||
+#include <linux/acpi.h>
|
+#include <linux/acpi.h>
|
||||||
+#include <linux/firmware.h>
|
+#include <linux/firmware.h>
|
||||||
+#include <linux/intel_ipts_fw.h>
|
+#include <linux/intel_ipts_fw.h>
|
||||||
|
@ -1478,6 +1478,24 @@ index 000000000000..4d6116dfa728
|
||||||
+
|
+
|
||||||
+#define IPTS_SURFACE_FW_PATH_FMT "intel/ipts/%s/%s"
|
+#define IPTS_SURFACE_FW_PATH_FMT "intel/ipts/%s/%s"
|
||||||
+
|
+
|
||||||
|
+#define __IPTS_SURFACE_FIRMWARE(X, Y) \
|
||||||
|
+ MODULE_FIRMWARE("intel/ipts/" X "/" Y)
|
||||||
|
+
|
||||||
|
+#define IPTS_SURFACE_FIRMWARE(X) \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "config.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "intel_desc.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "intel_fw_config.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "vendor_desc.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "vendor_kernel.bin")
|
||||||
|
+
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0076");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0078");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0079");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0101");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0102");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0103");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0137");
|
||||||
|
+
|
||||||
+int ipts_surface_request_firmware(const struct firmware **fw, const char *name,
|
+int ipts_surface_request_firmware(const struct firmware **fw, const char *name,
|
||||||
+ struct device *device, void *data)
|
+ struct device *device, void *data)
|
||||||
+{
|
+{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From d6f5b803983d215120e53aa3c4ba79b04eba8a1c Mon Sep 17 00:00:00 2001
|
From 7f34de9f7976e18b2b12c45a4be88fe4be309ac3 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:45:42 +0200
|
Date: Fri, 26 Jul 2019 04:45:42 +0200
|
||||||
Subject: [PATCH 06/12] hid
|
Subject: [PATCH 06/12] hid
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From d2dfd17628decf485774792e209e52ce5f909d95 Mon Sep 17 00:00:00 2001
|
From 20f5d4e58e6e6f59dd62410bae2fbe8267f6b3fb Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:45:55 +0200
|
Date: Fri, 26 Jul 2019 04:45:55 +0200
|
||||||
Subject: [PATCH 07/12] sdcard-reader
|
Subject: [PATCH 07/12] sdcard-reader
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 5955f13ceae15d8be7f867967009eefab01111fd Mon Sep 17 00:00:00 2001
|
From 3dba15603a8fd4eb99f5abf3e569bae6affa4d8a Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:46:16 +0200
|
Date: Fri, 26 Jul 2019 04:46:16 +0200
|
||||||
Subject: [PATCH 08/12] wifi
|
Subject: [PATCH 08/12] wifi
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 4fe3df8ceba771043ed1da5247be317c1212c71d Mon Sep 17 00:00:00 2001
|
From 584dca5082c73e445989cc9dd7db57ba4e8f3f70 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:46:48 +0200
|
Date: Fri, 26 Jul 2019 04:46:48 +0200
|
||||||
Subject: [PATCH 09/12] surface3-power
|
Subject: [PATCH 09/12] surface3-power
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 2da6425e02eb20ca98ae94e82a569f66b4b719a3 Mon Sep 17 00:00:00 2001
|
From 7d59140a399019781fb485e29111a8ea02b2d29f Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:47:02 +0200
|
Date: Fri, 26 Jul 2019 04:47:02 +0200
|
||||||
Subject: [PATCH 10/12] mwlwifi
|
Subject: [PATCH 10/12] mwlwifi
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 826929495dfbce2c34164619a4f4c165da1a6ca4 Mon Sep 17 00:00:00 2001
|
From 92babb348163d945fb4291fe53fa131efab7bf1b Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:47:13 +0200
|
Date: Fri, 26 Jul 2019 04:47:13 +0200
|
||||||
Subject: [PATCH 11/12] surface-lte
|
Subject: [PATCH 11/12] surface-lte
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From b26c755e29da94bbcfc7c6c968c3518f144266c0 Mon Sep 17 00:00:00 2001
|
From 6d1be33af986a10d63cf4c4dbd6a2cd7532d8bde Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Fri, 26 Jul 2019 04:47:27 +0200
|
Date: Fri, 26 Jul 2019 04:47:27 +0200
|
||||||
Subject: [PATCH 12/12] surfacebook2-dgpu
|
Subject: [PATCH 12/12] surfacebook2-dgpu
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
From 8e6aaa0ba3cdbcc3df145e6b986b9d59e3c16b54 Mon Sep 17 00:00:00 2001
|
From c7543d2458c5282bda2802701324cc77478146d8 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Wed, 2 Oct 2019 22:40:13 +0200
|
Date: Mon, 26 Aug 2019 01:11:08 +0200
|
||||||
Subject: [PATCH 1/9] surface-acpi
|
Subject: [PATCH 1/9] surface-acpi
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -180,7 +180,7 @@ index 415104033060..662e595ae13f 100644
|
||||||
obj-$(CONFIG_FUJITSU_TABLET) += fujitsu-tablet.o
|
obj-$(CONFIG_FUJITSU_TABLET) += fujitsu-tablet.o
|
||||||
diff --git a/drivers/platform/x86/surface_acpi.c b/drivers/platform/x86/surface_acpi.c
|
diff --git a/drivers/platform/x86/surface_acpi.c b/drivers/platform/x86/surface_acpi.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..5dbf48a3d9b3
|
index 000000000000..633fd8929037
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/platform/x86/surface_acpi.c
|
+++ b/drivers/platform/x86/surface_acpi.c
|
||||||
@@ -0,0 +1,4010 @@
|
@@ -0,0 +1,4010 @@
|
||||||
|
@ -1802,7 +1802,7 @@ index 000000000000..5dbf48a3d9b3
|
||||||
+{
|
+{
|
||||||
+ struct surfacegen5_ec *ec;
|
+ struct surfacegen5_ec *ec;
|
||||||
+ unsigned long flags;
|
+ unsigned long flags;
|
||||||
+ int status;
|
+ //int status;
|
||||||
+
|
+
|
||||||
+ ec = surfacegen5_ec_acquire_init();
|
+ ec = surfacegen5_ec_acquire_init();
|
||||||
+ if (!ec) {
|
+ if (!ec) {
|
||||||
|
@ -1812,10 +1812,10 @@ index 000000000000..5dbf48a3d9b3
|
||||||
+ surfacegen5_ssh_sysfs_unregister(&serdev->dev);
|
+ surfacegen5_ssh_sysfs_unregister(&serdev->dev);
|
||||||
+
|
+
|
||||||
+ // suspend EC and disable events
|
+ // suspend EC and disable events
|
||||||
+ status = surfacegen5_ssh_ec_suspend(ec);
|
+ //status = surfacegen5_ssh_ec_suspend(ec);
|
||||||
+ if (status) {
|
+ //if (status) {
|
||||||
+ dev_err(&serdev->dev, "failed to suspend EC: %d\n", status);
|
+ // dev_err(&serdev->dev, "failed to suspend EC: %d\n", status);
|
||||||
+ }
|
+ //}
|
||||||
+
|
+
|
||||||
+ // make sure all events (received up to now) have been properly handled
|
+ // make sure all events (received up to now) have been properly handled
|
||||||
+ flush_workqueue(ec->events.queue_ack);
|
+ flush_workqueue(ec->events.queue_ack);
|
||||||
|
@ -3667,12 +3667,12 @@ index 000000000000..5dbf48a3d9b3
|
||||||
+ .gpe_number = 0x17,
|
+ .gpe_number = 0x17,
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+static const struct si_lid_device lid_device_l4F = {
|
+static const struct si_lid_device lid_device_l57 = {
|
||||||
+ .acpi_path = "\\_SB.LID0",
|
+ .acpi_path = "\\_SB.LID0",
|
||||||
+ .gpe_number = 0x4F,
|
+ .gpe_number = 0x57,
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+static const struct si_lid_device lid_device_l57 = {
|
+static const struct si_lid_device lid_device_l4F = {
|
||||||
+ .acpi_path = "\\_SB.LID0",
|
+ .acpi_path = "\\_SB.LID0",
|
||||||
+ .gpe_number = 0x57,
|
+ .gpe_number = 0x57,
|
||||||
+};
|
+};
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
From ee93ea3b18abfd08bca1345d06cbb28e3ef2e402 Mon Sep 17 00:00:00 2001
|
From 83d479932acd83ecf45941386615d8518d79f568 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 27 Jul 2019 17:51:37 +0200
|
Date: Sat, 27 Jul 2019 17:51:37 +0200
|
||||||
Subject: [PATCH 2/9] buttons
|
Subject: [PATCH 2/9] buttons
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/input/misc/Kconfig | 6 +-
|
drivers/input/misc/Kconfig | 6 +-
|
||||||
drivers/input/misc/soc_button_array.c | 105 +++++++++++++++++++---
|
drivers/input/misc/soc_button_array.c | 112 +++++++++++++++++++---
|
||||||
drivers/platform/x86/surfacepro3_button.c | 47 ++++++++++
|
drivers/platform/x86/surfacepro3_button.c | 47 +++++++++
|
||||||
3 files changed, 143 insertions(+), 15 deletions(-)
|
3 files changed, 150 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
||||||
index d07c1eb15aa6..7d9ae394e597 100644
|
index d07c1eb15aa6..7d9ae394e597 100644
|
||||||
|
@ -28,7 +28,7 @@ index d07c1eb15aa6..7d9ae394e597 100644
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called soc_button_array.
|
module will be called soc_button_array.
|
||||||
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
||||||
index 5e59f8e57f8e..6f0133fe1546 100644
|
index 5e59f8e57f8e..ef89698c7d43 100644
|
||||||
--- a/drivers/input/misc/soc_button_array.c
|
--- a/drivers/input/misc/soc_button_array.c
|
||||||
+++ b/drivers/input/misc/soc_button_array.c
|
+++ b/drivers/input/misc/soc_button_array.c
|
||||||
@@ -25,6 +25,11 @@ struct soc_button_info {
|
@@ -25,6 +25,11 @@ struct soc_button_info {
|
||||||
|
@ -43,22 +43,29 @@ index 5e59f8e57f8e..6f0133fe1546 100644
|
||||||
/*
|
/*
|
||||||
* Some of the buttons like volume up/down are auto repeat, while others
|
* Some of the buttons like volume up/down are auto repeat, while others
|
||||||
* are not. To support both, we register two platform devices, and put
|
* are not. To support both, we register two platform devices, and put
|
||||||
@@ -87,8 +92,13 @@ soc_button_device_create(struct platform_device *pdev,
|
@@ -87,8 +92,20 @@ soc_button_device_create(struct platform_device *pdev,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
gpio = soc_button_lookup_gpio(&pdev->dev, info->acpi_index);
|
gpio = soc_button_lookup_gpio(&pdev->dev, info->acpi_index);
|
||||||
- if (!gpio_is_valid(gpio))
|
- if (!gpio_is_valid(gpio))
|
||||||
+ if (gpio < 0 && gpio != -ENOENT) {
|
+ if (!gpio_is_valid(gpio)) {
|
||||||
+ error = gpio;
|
+ /*
|
||||||
+ goto err_free_mem;
|
+ * Skip GPIO if not present. Note we deliberately
|
||||||
+ } else if (!gpio_is_valid(gpio)) {
|
+ * ignore -EPROBE_DEFER errors here. On some devices
|
||||||
+ /* Skip GPIO if not present */
|
+ * Intel is using so called virtual GPIOs which are not
|
||||||
|
+ * GPIOs at all but some way for AML code to check some
|
||||||
|
+ * random status bits without need a custom opregion.
|
||||||
|
+ * In some cases the resources table we parse points to
|
||||||
|
+ * such a virtual GPIO, since these are not real GPIOs
|
||||||
|
+ * we do not have a driver for these so they will never
|
||||||
|
+ * show up, therefor we ignore -EPROBE_DEFER.
|
||||||
|
+ */
|
||||||
continue;
|
continue;
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
gpio_keys[n_buttons].type = info->event_type;
|
gpio_keys[n_buttons].type = info->event_type;
|
||||||
gpio_keys[n_buttons].code = info->event_code;
|
gpio_keys[n_buttons].code = info->event_code;
|
||||||
@@ -309,23 +319,26 @@ static int soc_button_remove(struct platform_device *pdev)
|
@@ -309,23 +326,26 @@ static int soc_button_remove(struct platform_device *pdev)
|
||||||
static int soc_button_probe(struct platform_device *pdev)
|
static int soc_button_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
|
@ -93,7 +100,7 @@ index 5e59f8e57f8e..6f0133fe1546 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
error = gpiod_count(dev, NULL);
|
error = gpiod_count(dev, NULL);
|
||||||
@@ -357,7 +370,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
@@ -357,7 +377,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
||||||
if (!priv->children[0] && !priv->children[1])
|
if (!priv->children[0] && !priv->children[1])
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
@ -102,7 +109,7 @@ index 5e59f8e57f8e..6f0133fe1546 100644
|
||||||
devm_kfree(dev, button_info);
|
devm_kfree(dev, button_info);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -368,7 +381,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
@@ -368,7 +388,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
||||||
* is defined in section 2.8.7.2 of "Windows ACPI Design Guide for SoC
|
* is defined in section 2.8.7.2 of "Windows ACPI Design Guide for SoC
|
||||||
* Platforms"
|
* Platforms"
|
||||||
*/
|
*/
|
||||||
|
@ -111,7 +118,7 @@ index 5e59f8e57f8e..6f0133fe1546 100644
|
||||||
{ "power", 0, EV_KEY, KEY_POWER, false, true },
|
{ "power", 0, EV_KEY, KEY_POWER, false, true },
|
||||||
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
|
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
|
||||||
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
|
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
|
||||||
@@ -377,9 +390,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
|
@@ -377,9 +397,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 9bcf352058db70b14d90816398867dca3bf516e3 Mon Sep 17 00:00:00 2001
|
From 1f8ca45b0f8650219a98d05f14ccf98c33967ba7 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Tue, 2 Jul 2019 22:17:46 +0200
|
Date: Tue, 2 Jul 2019 22:17:46 +0200
|
||||||
Subject: [PATCH 3/9] surfacebook2 dgpu
|
Subject: [PATCH 3/9] surfacebook2-dgpu
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/platform/x86/Kconfig | 9 +
|
drivers/platform/x86/Kconfig | 9 +
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
From f6f6be7bd81ba183a7394be360bca24a3dfb0496 Mon Sep 17 00:00:00 2001
|
From ea18400e859c6d7656b81e5d33314046743d34a1 Mon Sep 17 00:00:00 2001
|
||||||
From: qzed <qzed@users.noreply.github.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Tue, 17 Sep 2019 17:16:23 +0200
|
Date: Tue, 17 Sep 2019 17:16:23 +0200
|
||||||
Subject: [PATCH 4/9] hid
|
Subject: [PATCH 4/9] hid
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 02cfa881044c1ad2779c493b24b128411904ede1 Mon Sep 17 00:00:00 2001
|
From a39f413e5460c0d1fb901872518a33038b9d463c Mon Sep 17 00:00:00 2001
|
||||||
From: qzed <qzed@users.noreply.github.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Tue, 17 Sep 2019 17:17:56 +0200
|
Date: Tue, 17 Sep 2019 17:17:56 +0200
|
||||||
Subject: [PATCH 5/9] surface3 power
|
Subject: [PATCH 5/9] surface3-power
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/platform/x86/Kconfig | 7 +
|
drivers/platform/x86/Kconfig | 7 +
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 15c9a6f59543bb4d55cbae7e0734122e81a4a115 Mon Sep 17 00:00:00 2001
|
From 83e53749458cab7575105ddbae13f750a4cc09e4 Mon Sep 17 00:00:00 2001
|
||||||
From: qzed <qzed@users.noreply.github.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Tue, 17 Sep 2019 17:21:43 +0200
|
Date: Tue, 17 Sep 2019 17:21:43 +0200
|
||||||
Subject: [PATCH 6/9] surface lte
|
Subject: [PATCH 6/9] surface-lte
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/usb/serial/qcserial.c | 1 +
|
drivers/usb/serial/qcserial.c | 1 +
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
From d74cf106de188669286d18943bdfb86538aae0eb Mon Sep 17 00:00:00 2001
|
From 829c222814c0617dad16d036876f94c725d2d638 Mon Sep 17 00:00:00 2001
|
||||||
From: qzed <qzed@users.noreply.github.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Wed, 18 Sep 2019 03:18:25 +0200
|
Date: Wed, 18 Sep 2019 03:18:25 +0200
|
||||||
Subject: [PATCH 7/9] wifi
|
Subject: [PATCH 7/9] wifi
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From a1e520b7f0e94ca4a0365c6fcf9cfb31b57149ac Mon Sep 17 00:00:00 2001
|
From 05296f2e99a9f6c9ef6fa47e7c879c73b07c7322 Mon Sep 17 00:00:00 2001
|
||||||
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Mon, 16 Sep 2019 04:10:51 +0200
|
Date: Mon, 16 Sep 2019 04:10:51 +0200
|
||||||
Subject: [PATCH 8/9] use legacy i915 driver
|
Subject: [PATCH 8/9] legacy-i915
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/gpu/drm/Kconfig | 2 +-
|
drivers/gpu/drm/Kconfig | 2 +-
|
||||||
|
@ -133,7 +133,7 @@ Subject: [PATCH 8/9] use legacy i915 driver
|
||||||
drivers/gpu/drm/i915_legacy/i915_oa_sklgt4.c | 90 +
|
drivers/gpu/drm/i915_legacy/i915_oa_sklgt4.c | 90 +
|
||||||
drivers/gpu/drm/i915_legacy/i915_oa_sklgt4.h | 15 +
|
drivers/gpu/drm/i915_legacy/i915_oa_sklgt4.h | 15 +
|
||||||
drivers/gpu/drm/i915_legacy/i915_params.c | 237 +
|
drivers/gpu/drm/i915_legacy/i915_params.c | 237 +
|
||||||
drivers/gpu/drm/i915_legacy/i915_params.h | 93 +
|
drivers/gpu/drm/i915_legacy/i915_params.h | 94 +
|
||||||
drivers/gpu/drm/i915_legacy/i915_pci.c | 957 +
|
drivers/gpu/drm/i915_legacy/i915_pci.c | 957 +
|
||||||
drivers/gpu/drm/i915_legacy/i915_perf.c | 3519 ++++
|
drivers/gpu/drm/i915_legacy/i915_perf.c | 3519 ++++
|
||||||
drivers/gpu/drm/i915_legacy/i915_pmu.c | 1096 +
|
drivers/gpu/drm/i915_legacy/i915_pmu.c | 1096 +
|
||||||
|
@ -362,7 +362,7 @@ Subject: [PATCH 8/9] use legacy i915 driver
|
||||||
.../drm/i915_legacy/selftests/scatterlist.c | 379 +
|
.../drm/i915_legacy/selftests/scatterlist.c | 379 +
|
||||||
drivers/gpu/drm/i915_legacy/vlv_dsi.c | 1830 ++
|
drivers/gpu/drm/i915_legacy/vlv_dsi.c | 1830 ++
|
||||||
drivers/gpu/drm/i915_legacy/vlv_dsi_pll.c | 567 +
|
drivers/gpu/drm/i915_legacy/vlv_dsi_pll.c | 567 +
|
||||||
358 files changed, 244184 insertions(+), 2 deletions(-)
|
358 files changed, 244185 insertions(+), 2 deletions(-)
|
||||||
create mode 100644 drivers/gpu/drm/i915_legacy/.gitignore
|
create mode 100644 drivers/gpu/drm/i915_legacy/.gitignore
|
||||||
create mode 100644 drivers/gpu/drm/i915_legacy/Kconfig
|
create mode 100644 drivers/gpu/drm/i915_legacy/Kconfig
|
||||||
create mode 100644 drivers/gpu/drm/i915_legacy/Kconfig.debug
|
create mode 100644 drivers/gpu/drm/i915_legacy/Kconfig.debug
|
||||||
|
@ -4934,7 +4934,7 @@ index 000000000000..19cf1bbe059d
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/gvt/cmd_parser.c b/drivers/gpu/drm/i915_legacy/gvt/cmd_parser.c
|
diff --git a/drivers/gpu/drm/i915_legacy/gvt/cmd_parser.c b/drivers/gpu/drm/i915_legacy/gvt/cmd_parser.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..54abe249861d
|
index 000000000000..de5347725564
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/gpu/drm/i915_legacy/gvt/cmd_parser.c
|
+++ b/drivers/gpu/drm/i915_legacy/gvt/cmd_parser.c
|
||||||
@@ -0,0 +1,2998 @@
|
@@ -0,0 +1,2998 @@
|
||||||
|
@ -5186,16 +5186,16 @@ index 000000000000..54abe249861d
|
||||||
+#define OP_3DSTATE_BINDING_TABLE_EDIT_DS OP_3D_MEDIA(0x3, 0x0, 0x46) /* HSW+ */
|
+#define OP_3DSTATE_BINDING_TABLE_EDIT_DS OP_3D_MEDIA(0x3, 0x0, 0x46) /* HSW+ */
|
||||||
+#define OP_3DSTATE_BINDING_TABLE_EDIT_PS OP_3D_MEDIA(0x3, 0x0, 0x47) /* HSW+ */
|
+#define OP_3DSTATE_BINDING_TABLE_EDIT_PS OP_3D_MEDIA(0x3, 0x0, 0x47) /* HSW+ */
|
||||||
+
|
+
|
||||||
+#define OP_3DSTATE_VF_INSTANCING OP_3D_MEDIA(0x3, 0x0, 0x49) /* BDW+ */
|
+#define OP_3DSTATE_VF_INSTANCING OP_3D_MEDIA(0x3, 0x0, 0x49) /* BDW+ */
|
||||||
+#define OP_3DSTATE_VF_SGVS OP_3D_MEDIA(0x3, 0x0, 0x4A) /* BDW+ */
|
+#define OP_3DSTATE_VF_SGVS OP_3D_MEDIA(0x3, 0x0, 0x4A) /* BDW+ */
|
||||||
+#define OP_3DSTATE_VF_TOPOLOGY OP_3D_MEDIA(0x3, 0x0, 0x4B) /* BDW+ */
|
+#define OP_3DSTATE_VF_TOPOLOGY OP_3D_MEDIA(0x3, 0x0, 0x4B) /* BDW+ */
|
||||||
+#define OP_3DSTATE_WM_CHROMAKEY OP_3D_MEDIA(0x3, 0x0, 0x4C) /* BDW+ */
|
+#define OP_3DSTATE_WM_CHROMAKEY OP_3D_MEDIA(0x3, 0x0, 0x4C) /* BDW+ */
|
||||||
+#define OP_3DSTATE_PS_BLEND OP_3D_MEDIA(0x3, 0x0, 0x4D) /* BDW+ */
|
+#define OP_3DSTATE_PS_BLEND OP_3D_MEDIA(0x3, 0x0, 0x4D) /* BDW+ */
|
||||||
+#define OP_3DSTATE_WM_DEPTH_STENCIL OP_3D_MEDIA(0x3, 0x0, 0x4E) /* BDW+ */
|
+#define OP_3DSTATE_WM_DEPTH_STENCIL OP_3D_MEDIA(0x3, 0x0, 0x4E) /* BDW+ */
|
||||||
+#define OP_3DSTATE_PS_EXTRA OP_3D_MEDIA(0x3, 0x0, 0x4F) /* BDW+ */
|
+#define OP_3DSTATE_PS_EXTRA OP_3D_MEDIA(0x3, 0x0, 0x4F) /* BDW+ */
|
||||||
+#define OP_3DSTATE_RASTER OP_3D_MEDIA(0x3, 0x0, 0x50) /* BDW+ */
|
+#define OP_3DSTATE_RASTER OP_3D_MEDIA(0x3, 0x0, 0x50) /* BDW+ */
|
||||||
+#define OP_3DSTATE_SBE_SWIZ OP_3D_MEDIA(0x3, 0x0, 0x51) /* BDW+ */
|
+#define OP_3DSTATE_SBE_SWIZ OP_3D_MEDIA(0x3, 0x0, 0x51) /* BDW+ */
|
||||||
+#define OP_3DSTATE_WM_HZ_OP OP_3D_MEDIA(0x3, 0x0, 0x52) /* BDW+ */
|
+#define OP_3DSTATE_WM_HZ_OP OP_3D_MEDIA(0x3, 0x0, 0x52) /* BDW+ */
|
||||||
+#define OP_3DSTATE_COMPONENT_PACKING OP_3D_MEDIA(0x3, 0x0, 0x55) /* SKL+ */
|
+#define OP_3DSTATE_COMPONENT_PACKING OP_3D_MEDIA(0x3, 0x0, 0x55) /* SKL+ */
|
||||||
+
|
+
|
||||||
+#define OP_3DSTATE_DRAWING_RECTANGLE OP_3D_MEDIA(0x3, 0x1, 0x00)
|
+#define OP_3DSTATE_DRAWING_RECTANGLE OP_3D_MEDIA(0x3, 0x1, 0x00)
|
||||||
|
@ -39236,7 +39236,7 @@ index 000000000000..d485d49c473b
|
||||||
+#endif
|
+#endif
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/i915_drv.h b/drivers/gpu/drm/i915_legacy/i915_drv.h
|
diff --git a/drivers/gpu/drm/i915_legacy/i915_drv.h b/drivers/gpu/drm/i915_legacy/i915_drv.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..bf555493e85d
|
index 000000000000..066fd2a12851
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/gpu/drm/i915_legacy/i915_drv.h
|
+++ b/drivers/gpu/drm/i915_legacy/i915_drv.h
|
||||||
@@ -0,0 +1,3693 @@
|
@@ -0,0 +1,3693 @@
|
||||||
|
@ -41810,7 +41810,7 @@ index 000000000000..bf555493e85d
|
||||||
+#define SUPPORTS_TV(dev_priv) (INTEL_INFO(dev_priv)->display.supports_tv)
|
+#define SUPPORTS_TV(dev_priv) (INTEL_INFO(dev_priv)->display.supports_tv)
|
||||||
+#define I915_HAS_HOTPLUG(dev_priv) (INTEL_INFO(dev_priv)->display.has_hotplug)
|
+#define I915_HAS_HOTPLUG(dev_priv) (INTEL_INFO(dev_priv)->display.has_hotplug)
|
||||||
+
|
+
|
||||||
+#define HAS_FW_BLC(dev_priv) (INTEL_GEN(dev_priv) > 2)
|
+#define HAS_FW_BLC(dev_priv) (INTEL_GEN(dev_priv) > 2)
|
||||||
+#define HAS_FBC(dev_priv) (INTEL_INFO(dev_priv)->display.has_fbc)
|
+#define HAS_FBC(dev_priv) (INTEL_INFO(dev_priv)->display.has_fbc)
|
||||||
+#define HAS_CUR_FBC(dev_priv) (!HAS_GMCH(dev_priv) && INTEL_GEN(dev_priv) >= 7)
|
+#define HAS_CUR_FBC(dev_priv) (!HAS_GMCH(dev_priv) && INTEL_GEN(dev_priv) >= 7)
|
||||||
+
|
+
|
||||||
|
@ -73683,10 +73683,10 @@ index 000000000000..b5be0abbba35
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/i915_params.h b/drivers/gpu/drm/i915_legacy/i915_params.h
|
diff --git a/drivers/gpu/drm/i915_legacy/i915_params.h b/drivers/gpu/drm/i915_legacy/i915_params.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..8e0d003ff419
|
index 000000000000..3f14e9881a0d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/gpu/drm/i915_legacy/i915_params.h
|
+++ b/drivers/gpu/drm/i915_legacy/i915_params.h
|
||||||
@@ -0,0 +1,93 @@
|
@@ -0,0 +1,94 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright © 2015 Intel Corporation
|
+ * Copyright © 2015 Intel Corporation
|
||||||
+ *
|
+ *
|
||||||
|
@ -73780,6 +73780,7 @@ index 000000000000..8e0d003ff419
|
||||||
+void i915_params_free(struct i915_params *params);
|
+void i915_params_free(struct i915_params *params);
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
+
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/i915_pci.c b/drivers/gpu/drm/i915_legacy/i915_pci.c
|
diff --git a/drivers/gpu/drm/i915_legacy/i915_pci.c b/drivers/gpu/drm/i915_legacy/i915_pci.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..f893c2cbce15
|
index 000000000000..f893c2cbce15
|
||||||
|
@ -79847,7 +79848,7 @@ index 000000000000..31dcef181f63
|
||||||
+#endif
|
+#endif
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/i915_reg.h b/drivers/gpu/drm/i915_legacy/i915_reg.h
|
diff --git a/drivers/gpu/drm/i915_legacy/i915_reg.h b/drivers/gpu/drm/i915_legacy/i915_reg.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..eeebefcc34a8
|
index 000000000000..cf748b80e640
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/gpu/drm/i915_legacy/i915_reg.h
|
+++ b/drivers/gpu/drm/i915_legacy/i915_reg.h
|
||||||
@@ -0,0 +1,11424 @@
|
@@ -0,0 +1,11424 @@
|
||||||
|
@ -87570,7 +87571,7 @@ index 000000000000..eeebefcc34a8
|
||||||
+#define _PIPEC_CHICKEN 0x72038
|
+#define _PIPEC_CHICKEN 0x72038
|
||||||
+#define PIPE_CHICKEN(pipe) _MMIO_PIPE(pipe, _PIPEA_CHICKEN,\
|
+#define PIPE_CHICKEN(pipe) _MMIO_PIPE(pipe, _PIPEA_CHICKEN,\
|
||||||
+ _PIPEB_CHICKEN)
|
+ _PIPEB_CHICKEN)
|
||||||
+#define PIXEL_ROUNDING_TRUNC_FB_PASSTHRU (1 << 15)
|
+#define PIXEL_ROUNDING_TRUNC_FB_PASSTHRU (1 << 15)
|
||||||
+#define PER_PIXEL_ALPHA_BYPASS_EN (1 << 7)
|
+#define PER_PIXEL_ALPHA_BYPASS_EN (1 << 7)
|
||||||
+
|
+
|
||||||
+/* PCH */
|
+/* PCH */
|
||||||
|
@ -138004,7 +138005,7 @@ index 000000000000..2220588e86ac
|
||||||
+#endif
|
+#endif
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/intel_dp.c b/drivers/gpu/drm/i915_legacy/intel_dp.c
|
diff --git a/drivers/gpu/drm/i915_legacy/intel_dp.c b/drivers/gpu/drm/i915_legacy/intel_dp.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..b3b2805014ce
|
index 000000000000..560274d1c50b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/gpu/drm/i915_legacy/intel_dp.c
|
+++ b/drivers/gpu/drm/i915_legacy/intel_dp.c
|
||||||
@@ -0,0 +1,7405 @@
|
@@ -0,0 +1,7405 @@
|
||||||
|
@ -140234,10 +140235,10 @@ index 000000000000..b3b2805014ce
|
||||||
+ /*
|
+ /*
|
||||||
+ * There are four kinds of DP registers:
|
+ * There are four kinds of DP registers:
|
||||||
+ *
|
+ *
|
||||||
+ * IBX PCH
|
+ * IBX PCH
|
||||||
+ * SNB CPU
|
+ * SNB CPU
|
||||||
+ * IVB CPU
|
+ * IVB CPU
|
||||||
+ * CPT PCH
|
+ * CPT PCH
|
||||||
+ *
|
+ *
|
||||||
+ * IBX PCH and CPU are the same for almost everything,
|
+ * IBX PCH and CPU are the same for almost everything,
|
||||||
+ * except that the CPU DP PLL is configured in this
|
+ * except that the CPU DP PLL is configured in this
|
||||||
|
@ -140302,7 +140303,7 @@ index 000000000000..b3b2805014ce
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#define IDLE_ON_MASK (PP_ON | PP_SEQUENCE_MASK | 0 | PP_SEQUENCE_STATE_MASK)
|
+#define IDLE_ON_MASK (PP_ON | PP_SEQUENCE_MASK | 0 | PP_SEQUENCE_STATE_MASK)
|
||||||
+#define IDLE_ON_VALUE (PP_ON | PP_SEQUENCE_NONE | 0 | PP_SEQUENCE_STATE_ON_IDLE)
|
+#define IDLE_ON_VALUE (PP_ON | PP_SEQUENCE_NONE | 0 | PP_SEQUENCE_STATE_ON_IDLE)
|
||||||
+
|
+
|
||||||
+#define IDLE_OFF_MASK (PP_ON | PP_SEQUENCE_MASK | 0 | 0)
|
+#define IDLE_OFF_MASK (PP_ON | PP_SEQUENCE_MASK | 0 | 0)
|
||||||
+#define IDLE_OFF_VALUE (0 | PP_SEQUENCE_NONE | 0 | 0)
|
+#define IDLE_OFF_VALUE (0 | PP_SEQUENCE_NONE | 0 | 0)
|
||||||
|
@ -218151,7 +218152,7 @@ index 000000000000..0e3bd580e267
|
||||||
+#endif
|
+#endif
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/intel_uncore.c b/drivers/gpu/drm/i915_legacy/intel_uncore.c
|
diff --git a/drivers/gpu/drm/i915_legacy/intel_uncore.c b/drivers/gpu/drm/i915_legacy/intel_uncore.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..6c9a1e506122
|
index 000000000000..d1d51e1121e2
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/gpu/drm/i915_legacy/intel_uncore.c
|
+++ b/drivers/gpu/drm/i915_legacy/intel_uncore.c
|
||||||
@@ -0,0 +1,1958 @@
|
@@ -0,0 +1,1958 @@
|
||||||
|
@ -220077,7 +220078,7 @@ index 000000000000..6c9a1e506122
|
||||||
+
|
+
|
||||||
+/**
|
+/**
|
||||||
+ * intel_uncore_forcewake_for_reg - which forcewake domains are needed to access
|
+ * intel_uncore_forcewake_for_reg - which forcewake domains are needed to access
|
||||||
+ * a register
|
+ * a register
|
||||||
+ * @uncore: pointer to struct intel_uncore
|
+ * @uncore: pointer to struct intel_uncore
|
||||||
+ * @reg: register in question
|
+ * @reg: register in question
|
||||||
+ * @op: operation bitmask of FW_REG_READ and/or FW_REG_WRITE
|
+ * @op: operation bitmask of FW_REG_READ and/or FW_REG_WRITE
|
|
@ -1,4 +1,4 @@
|
||||||
From 35bb10933585c0a23cec451cd87b466e53121e77 Mon Sep 17 00:00:00 2001
|
From 3def8f788efa2bfd7f541d9282b2353bdbbecf48 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Wed, 18 Sep 2019 13:04:18 +0200
|
Date: Wed, 18 Sep 2019 13:04:18 +0200
|
||||||
Subject: [PATCH 9/9] ipts
|
Subject: [PATCH 9/9] ipts
|
||||||
|
@ -26,7 +26,7 @@ Subject: [PATCH 9/9] ipts
|
||||||
drivers/misc/ipts/Makefile | 17 +
|
drivers/misc/ipts/Makefile | 17 +
|
||||||
drivers/misc/ipts/companion/Kconfig | 9 +
|
drivers/misc/ipts/companion/Kconfig | 9 +
|
||||||
drivers/misc/ipts/companion/Makefile | 1 +
|
drivers/misc/ipts/companion/Makefile | 1 +
|
||||||
drivers/misc/ipts/companion/ipts-surface.c | 82 ++
|
drivers/misc/ipts/companion/ipts-surface.c | 100 ++
|
||||||
drivers/misc/ipts/ipts-binary-spec.h | 118 ++
|
drivers/misc/ipts/ipts-binary-spec.h | 118 ++
|
||||||
drivers/misc/ipts/ipts-dbgfs.c | 291 +++++
|
drivers/misc/ipts/ipts-dbgfs.c | 291 +++++
|
||||||
drivers/misc/ipts/ipts-fw.c | 113 ++
|
drivers/misc/ipts/ipts-fw.c | 113 ++
|
||||||
|
@ -52,7 +52,7 @@ Subject: [PATCH 9/9] ipts
|
||||||
drivers/misc/mei/pci-me.c | 1 +
|
drivers/misc/mei/pci-me.c | 1 +
|
||||||
include/linux/intel_ipts_fw.h | 14 +
|
include/linux/intel_ipts_fw.h | 14 +
|
||||||
include/linux/intel_ipts_if.h | 76 ++
|
include/linux/intel_ipts_if.h | 76 ++
|
||||||
48 files changed, 6008 insertions(+), 21 deletions(-)
|
48 files changed, 6026 insertions(+), 21 deletions(-)
|
||||||
create mode 100644 drivers/gpu/drm/i915_legacy/intel_ipts.c
|
create mode 100644 drivers/gpu/drm/i915_legacy/intel_ipts.c
|
||||||
create mode 100644 drivers/gpu/drm/i915_legacy/intel_ipts.h
|
create mode 100644 drivers/gpu/drm/i915_legacy/intel_ipts.h
|
||||||
create mode 100644 drivers/misc/ipts/Kconfig
|
create mode 100644 drivers/misc/ipts/Kconfig
|
||||||
|
@ -219,7 +219,7 @@ index d485d49c473b..adb7af18dc2b 100644
|
||||||
|
|
||||||
/*
|
/*
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/i915_drv.h b/drivers/gpu/drm/i915_legacy/i915_drv.h
|
diff --git a/drivers/gpu/drm/i915_legacy/i915_drv.h b/drivers/gpu/drm/i915_legacy/i915_drv.h
|
||||||
index bf555493e85d..d48133d459d2 100644
|
index 066fd2a12851..2a872d8725b5 100644
|
||||||
--- a/drivers/gpu/drm/i915_legacy/i915_drv.h
|
--- a/drivers/gpu/drm/i915_legacy/i915_drv.h
|
||||||
+++ b/drivers/gpu/drm/i915_legacy/i915_drv.h
|
+++ b/drivers/gpu/drm/i915_legacy/i915_drv.h
|
||||||
@@ -3184,6 +3184,9 @@ void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
@@ -3184,6 +3184,9 @@ void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
||||||
|
@ -304,7 +304,7 @@ index b5be0abbba35..831f2bcae687 100644
|
||||||
i915_param_named(guc_log_level, int, 0400,
|
i915_param_named(guc_log_level, int, 0400,
|
||||||
"GuC firmware logging level. Requires GuC to be loaded. "
|
"GuC firmware logging level. Requires GuC to be loaded. "
|
||||||
diff --git a/drivers/gpu/drm/i915_legacy/i915_params.h b/drivers/gpu/drm/i915_legacy/i915_params.h
|
diff --git a/drivers/gpu/drm/i915_legacy/i915_params.h b/drivers/gpu/drm/i915_legacy/i915_params.h
|
||||||
index 8e0d003ff419..2f96df4c9d1c 100644
|
index 3f14e9881a0d..e314a2414041 100644
|
||||||
--- a/drivers/gpu/drm/i915_legacy/i915_params.h
|
--- a/drivers/gpu/drm/i915_legacy/i915_params.h
|
||||||
+++ b/drivers/gpu/drm/i915_legacy/i915_params.h
|
+++ b/drivers/gpu/drm/i915_legacy/i915_params.h
|
||||||
@@ -54,7 +54,7 @@ struct drm_printer;
|
@@ -54,7 +54,7 @@ struct drm_printer;
|
||||||
|
@ -1310,14 +1310,14 @@ index abd8ae249746..40c8683b4ce6 100644
|
||||||
obj-$(CONFIG_SRAM) += sram.o
|
obj-$(CONFIG_SRAM) += sram.o
|
||||||
diff --git a/drivers/misc/ipts/Kconfig b/drivers/misc/ipts/Kconfig
|
diff --git a/drivers/misc/ipts/Kconfig b/drivers/misc/ipts/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..a24c4daaed42
|
index 000000000000..992a51061b38
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/ipts/Kconfig
|
+++ b/drivers/misc/ipts/Kconfig
|
||||||
@@ -0,0 +1,11 @@
|
@@ -0,0 +1,11 @@
|
||||||
+config INTEL_IPTS
|
+config INTEL_IPTS
|
||||||
+ tristate "Intel Precise Touch & Stylus"
|
+ tristate "Intel Precise Touch & Stylus"
|
||||||
+ select INTEL_MEI
|
+ select INTEL_MEI
|
||||||
+ depends on X86 && PCI && HID
|
+ depends on X86 && PCI && HID && DRM_I915
|
||||||
+ help
|
+ help
|
||||||
+ Intel Precise Touch & Stylus support
|
+ Intel Precise Touch & Stylus support
|
||||||
+ Supported SoCs:
|
+ Supported SoCs:
|
||||||
|
@ -1372,10 +1372,10 @@ index 000000000000..fb4d58935f01
|
||||||
+obj-$(CONFIG_INTEL_IPTS_SURFACE)+= ipts-surface.o
|
+obj-$(CONFIG_INTEL_IPTS_SURFACE)+= ipts-surface.o
|
||||||
diff --git a/drivers/misc/ipts/companion/ipts-surface.c b/drivers/misc/ipts/companion/ipts-surface.c
|
diff --git a/drivers/misc/ipts/companion/ipts-surface.c b/drivers/misc/ipts/companion/ipts-surface.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..4d6116dfa728
|
index 000000000000..6f5aabb14e5a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/ipts/companion/ipts-surface.c
|
+++ b/drivers/misc/ipts/companion/ipts-surface.c
|
||||||
@@ -0,0 +1,82 @@
|
@@ -0,0 +1,100 @@
|
||||||
+#include <linux/acpi.h>
|
+#include <linux/acpi.h>
|
||||||
+#include <linux/firmware.h>
|
+#include <linux/firmware.h>
|
||||||
+#include <linux/intel_ipts_fw.h>
|
+#include <linux/intel_ipts_fw.h>
|
||||||
|
@ -1385,6 +1385,24 @@ index 000000000000..4d6116dfa728
|
||||||
+
|
+
|
||||||
+#define IPTS_SURFACE_FW_PATH_FMT "intel/ipts/%s/%s"
|
+#define IPTS_SURFACE_FW_PATH_FMT "intel/ipts/%s/%s"
|
||||||
+
|
+
|
||||||
|
+#define __IPTS_SURFACE_FIRMWARE(X, Y) \
|
||||||
|
+ MODULE_FIRMWARE("intel/ipts/" X "/" Y)
|
||||||
|
+
|
||||||
|
+#define IPTS_SURFACE_FIRMWARE(X) \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "config.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "intel_desc.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "intel_fw_config.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "vendor_desc.bin"); \
|
||||||
|
+ __IPTS_SURFACE_FIRMWARE(X, "vendor_kernel.bin")
|
||||||
|
+
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0076");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0078");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0079");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0101");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0102");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0103");
|
||||||
|
+IPTS_SURFACE_FIRMWARE("MSHW0137");
|
||||||
|
+
|
||||||
+int ipts_surface_request_firmware(const struct firmware **fw, const char *name,
|
+int ipts_surface_request_firmware(const struct firmware **fw, const char *name,
|
||||||
+ struct device *device, void *data)
|
+ struct device *device, void *data)
|
||||||
+{
|
+{
|
||||||
|
|
Loading…
Reference in a new issue