Update button patches (v3-upstreaming)

This commit is contained in:
qzed 2019-07-27 18:27:19 +02:00
parent 8e6c7b85ca
commit 51c7f7a234
20 changed files with 94 additions and 162 deletions

View file

@ -1,13 +1,13 @@
From caff9a677d61eee7429d9a30ed33224bd3b96a42 Mon Sep 17 00:00:00 2001
From 16423edf1a61130f052c5f6035e5b20870151810 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:42:15 +0200
Subject: [PATCH 03/12] buttons
---
drivers/input/misc/Kconfig | 6 +-
drivers/input/misc/soc_button_array.c | 141 ++++++++++++++++++++--
drivers/platform/x86/surfacepro3_button.c | 47 ++++++++
3 files changed, 178 insertions(+), 16 deletions(-)
drivers/input/misc/soc_button_array.c | 105 +++++++++++++++++++---
drivers/platform/x86/surfacepro3_button.c | 47 ++++++++++
3 files changed, 143 insertions(+), 15 deletions(-)
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index ca59a2be9bc5..ea69610370e8 100644
@ -28,28 +28,22 @@ index ca59a2be9bc5..ea69610370e8 100644
To compile this driver as a module, choose M here: the
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
index 55cd6e0b409c..8c94acbbf574 100644
index 55cd6e0b409c..8f21c062c85d 100644
--- a/drivers/input/misc/soc_button_array.c
+++ b/drivers/input/misc/soc_button_array.c
@@ -29,6 +29,17 @@ struct soc_button_info {
@@ -29,6 +29,11 @@ struct soc_button_info {
bool wakeup;
};
+/**
+ * struct soc_device_data - driver data for different device types
+ * @button_info: specifications of buttons, if NULL specification is assumed to
+ * be present in _DSD
+ * @check: device-specific check (NULL means all will be accepted)
+ */
+struct soc_device_data {
+ struct soc_button_info *button_info;
+ const struct soc_button_info *button_info;
+ int (*check)(struct device *dev);
+};
+
/*
* 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
@@ -91,8 +102,13 @@ soc_button_device_create(struct platform_device *pdev,
@@ -91,8 +96,13 @@ soc_button_device_create(struct platform_device *pdev,
continue;
gpio = soc_button_lookup_gpio(&pdev->dev, info->acpi_index);
@ -64,45 +58,42 @@ index 55cd6e0b409c..8c94acbbf574 100644
gpio_keys[n_buttons].type = info->event_type;
gpio_keys[n_buttons].code = info->event_code;
@@ -310,6 +326,7 @@ static int soc_button_probe(struct platform_device *pdev)
@@ -309,23 +319,26 @@ static int soc_button_remove(struct platform_device *pdev)
static int soc_button_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
const struct acpi_device_id *id;
+ struct soc_device_data *device_data;
struct soc_button_info *button_info;
- const struct acpi_device_id *id;
- struct soc_button_info *button_info;
+ const struct soc_device_data *device_data;
+ const struct soc_button_info *button_info;
struct soc_button_data *priv;
struct platform_device *pd;
@@ -320,18 +337,20 @@ static int soc_button_probe(struct platform_device *pdev)
if (!id)
return -ENODEV;
int i;
int error;
- if (!id->driver_data) {
+ device_data = (struct soc_device_data *)id->driver_data;
- id = acpi_match_device(dev->driver->acpi_match_table, dev);
- if (!id)
- return -ENODEV;
+ device_data = acpi_device_get_match_data(dev);
+ if (device_data && device_data->check) {
+ error = device_data->check(dev);
+ if (error)
+ return error;
+ }
+
- if (!id->driver_data) {
+ if (device_data && device_data->button_info) {
+ button_info = (struct soc_button_info *)
+ device_data->button_info;
+ button_info = device_data->button_info;
+ } else {
button_info = soc_button_get_button_info(dev);
if (IS_ERR(button_info))
return PTR_ERR(button_info);
- } else {
- button_info = (struct soc_button_info *)id->driver_data;
- }
-
- error = gpiod_count(dev, NULL);
- if (error < 0) {
- dev_dbg(dev, "no GPIO attached, ignoring...\n");
- return -ENODEV;
}
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
@@ -357,12 +376,32 @@ static int soc_button_probe(struct platform_device *pdev)
error = gpiod_count(dev, NULL);
@@ -357,7 +370,7 @@ static int soc_button_probe(struct platform_device *pdev)
if (!priv->children[0] && !priv->children[1])
return -ENODEV;
@ -111,41 +102,23 @@ index 55cd6e0b409c..8c94acbbf574 100644
devm_kfree(dev, button_info);
return 0;
}
+
+static int soc_device_check_generic(struct device *dev)
+{
+ int gpios;
+
+ gpios = gpiod_count(dev, NULL);
+ if (gpios < 0) {
+ dev_dbg(dev, "no GPIO attached, ignoring...\n");
+ return -ENODEV;
+ }
+
+ return 0;
+}
+
+static struct soc_device_data soc_device_ACPI0011 = {
+ .button_info = NULL,
+ .check = soc_device_check_generic,
+};
+
+
/*
* Definition of buttons on the tablet. The ACPI index of each button
@@ -368,7 +381,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
@@ -377,9 +416,85 @@ static struct soc_button_info soc_button_PNP0C40[] = {
* Platforms"
*/
-static struct soc_button_info soc_button_PNP0C40[] = {
+static const struct soc_button_info soc_button_PNP0C40[] = {
{ "power", 0, EV_KEY, KEY_POWER, false, true },
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
@@ -377,9 +390,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
{ }
};
+static struct soc_device_data soc_device_PNP0C40 = {
+static const struct soc_device_data soc_device_PNP0C40 = {
+ .button_info = soc_button_PNP0C40,
+ .check = soc_device_check_generic,
+};
+
+
+/*
+ * Special device check for Surface Book 2 and Surface Pro (2017).
+ * Both, the Surface Pro 4 (surfacepro3_button.c) and the above mentioned
@ -165,7 +138,6 @@ index 55cd6e0b409c..8c94acbbf574 100644
+ acpi_handle handle = ACPI_HANDLE(dev);
+ union acpi_object *result;
+ u64 oem_platform_rev = 0; // valid revisions are nonzero
+ int gpios;
+
+ // get OEM platform revision
+ result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
@ -188,10 +160,6 @@ index 55cd6e0b409c..8c94acbbf574 100644
+
+ dev_dbg(dev, "OEM Platform Revision %llu\n", oem_platform_rev);
+
+ gpios = gpiod_count(dev, NULL);
+ if (gpios < 0)
+ return -ENODEV;
+
+ return 0;
+}
+
@ -199,24 +167,22 @@ index 55cd6e0b409c..8c94acbbf574 100644
+ * Button infos for Microsoft Surface Book 2 and Surface Pro (2017).
+ * Obtained from DSDT/testing.
+ */
+static struct soc_button_info soc_button_MSHW0040[] = {
+static const struct soc_button_info soc_button_MSHW0040[] = {
+ { "power", 0, EV_KEY, KEY_POWER, false, true },
+ { "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
+ { "volume_down", 4, EV_KEY, KEY_VOLUMEDOWN, true, false },
+ { }
+};
+
+static struct soc_device_data soc_device_MSHW0040 = {
+static const struct soc_device_data soc_device_MSHW0040 = {
+ .button_info = soc_button_MSHW0040,
+ .check = soc_device_check_MSHW0040,
+};
+
+
static const struct acpi_device_id soc_button_acpi_match[] = {
- { "PNP0C40", (unsigned long)soc_button_PNP0C40 },
- { "ACPI0011", 0 },
+ { "PNP0C40", (unsigned long)&soc_device_PNP0C40 },
+ { "ACPI0011", (unsigned long)&soc_device_ACPI0011 },
{ "ACPI0011", 0 },
+
+ /* Microsoft Surface Devices (5th and 6th generation) */
+ { "MSHW0040", (unsigned long)&soc_device_MSHW0040 },

View file

@ -1,4 +1,4 @@
From a73226e177c1299d14654dbc9578d6cf292046a9 Mon Sep 17 00:00:00 2001
From 3f8115c937177e03121f1860dd279835f5328931 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:42:25 +0200
Subject: [PATCH 04/12] cameras

View file

@ -1,4 +1,4 @@
From 41b96d9a4fa6078bb9fd827ab7d1d28186680f01 Mon Sep 17 00:00:00 2001
From 60508845ee5f6a06bce7ba337511a35929bb5645 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:42:39 +0200
Subject: [PATCH 05/12] ipts

View file

@ -1,4 +1,4 @@
From a86af5d40714c4f6a8bfdef6b4c61e4b36d08375 Mon Sep 17 00:00:00 2001
From 9ab8a37f4a5ab1aef8ab7d2405c40793e394a701 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:42:50 +0200
Subject: [PATCH 06/12] hid

View file

@ -1,4 +1,4 @@
From fed76ce1e6ffd63209dac031e0192270dc0ea2f5 Mon Sep 17 00:00:00 2001
From 4b8d1631e6c23f1c4802e613572ed09e4d1075ae Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:43:03 +0200
Subject: [PATCH 07/12] sdcard-reader

View file

@ -1,4 +1,4 @@
From 022c4cc203690834eedbda3c32dfd1cf3f3f4bc0 Mon Sep 17 00:00:00 2001
From 99b6b2846efa7c0cbfda3f08c95be73766f1b586 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:43:14 +0200
Subject: [PATCH 08/12] wifi

View file

@ -1,4 +1,4 @@
From 151f176a715d057f3221a6f1721fc9837c2b52ec Mon Sep 17 00:00:00 2001
From 2c3a0e3a9ff360e42bd7a1b221906588adf93a54 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:43:27 +0200
Subject: [PATCH 09/12] surface3-power

View file

@ -1,4 +1,4 @@
From 71ea506e764b7d53b99bc9c436705f579cc1bdb8 Mon Sep 17 00:00:00 2001
From 0e2d13af220261d9825456f4db741fb6c9e93f15 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:43:45 +0200
Subject: [PATCH 10/12] mwlwifi

View file

@ -1,4 +1,4 @@
From 14a8e46a86c5fcc671601f655dfbed2471addb13 Mon Sep 17 00:00:00 2001
From d320c8ba0a4f2cd465f21eca08283faa816cafa9 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:43:57 +0200
Subject: [PATCH 11/12] surface-lte

View file

@ -1,4 +1,4 @@
From 49798b92a2f2e3a7906743f76e3550ad01e3b045 Mon Sep 17 00:00:00 2001
From da8c31d8130650ab76cd35ad74d63ff5ed337be0 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 03:44:10 +0200
Subject: [PATCH 12/12] surfacebook2-dgpu

View file

@ -1,13 +1,13 @@
From 2d257efae93f8da74a84b1329c18474ef49b5a89 Mon Sep 17 00:00:00 2001
From 5dae467afb5fda0c52463b4a915585302bdea08d Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:11:17 +0200
Subject: [PATCH 03/12] buttons
---
drivers/input/misc/Kconfig | 6 +-
drivers/input/misc/soc_button_array.c | 141 ++++++++++++++++++++--
drivers/platform/x86/surfacepro3_button.c | 47 ++++++++
3 files changed, 178 insertions(+), 16 deletions(-)
drivers/input/misc/soc_button_array.c | 105 +++++++++++++++++++---
drivers/platform/x86/surfacepro3_button.c | 47 ++++++++++
3 files changed, 143 insertions(+), 15 deletions(-)
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index e15ed1bb8558..d88951da5e81 100644
@ -28,28 +28,22 @@ index e15ed1bb8558..d88951da5e81 100644
To compile this driver as a module, choose M here: the
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
index bb458beecb43..bfce5061dede 100644
index bb458beecb43..85be24fbe30b 100644
--- a/drivers/input/misc/soc_button_array.c
+++ b/drivers/input/misc/soc_button_array.c
@@ -29,6 +29,17 @@ struct soc_button_info {
@@ -29,6 +29,11 @@ struct soc_button_info {
bool wakeup;
};
+/**
+ * struct soc_device_data - driver data for different device types
+ * @button_info: specifications of buttons, if NULL specification is assumed to
+ * be present in _DSD
+ * @check: device-specific check (NULL means all will be accepted)
+ */
+struct soc_device_data {
+ struct soc_button_info *button_info;
+ const struct soc_button_info *button_info;
+ int (*check)(struct device *dev);
+};
+
/*
* 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
@@ -91,8 +102,13 @@ soc_button_device_create(struct platform_device *pdev,
@@ -91,8 +96,13 @@ soc_button_device_create(struct platform_device *pdev,
continue;
gpio = soc_button_lookup_gpio(&pdev->dev, info->acpi_index);
@ -64,45 +58,42 @@ index bb458beecb43..bfce5061dede 100644
gpio_keys[n_buttons].type = info->event_type;
gpio_keys[n_buttons].code = info->event_code;
@@ -314,6 +330,7 @@ static int soc_button_probe(struct platform_device *pdev)
@@ -313,23 +323,26 @@ static int soc_button_remove(struct platform_device *pdev)
static int soc_button_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
const struct acpi_device_id *id;
+ struct soc_device_data *device_data;
struct soc_button_info *button_info;
- const struct acpi_device_id *id;
- struct soc_button_info *button_info;
+ const struct soc_device_data *device_data;
+ const struct soc_button_info *button_info;
struct soc_button_data *priv;
struct platform_device *pd;
@@ -324,18 +341,20 @@ static int soc_button_probe(struct platform_device *pdev)
if (!id)
return -ENODEV;
int i;
int error;
- if (!id->driver_data) {
+ device_data = (struct soc_device_data *)id->driver_data;
- id = acpi_match_device(dev->driver->acpi_match_table, dev);
- if (!id)
- return -ENODEV;
+ device_data = acpi_device_get_match_data(dev);
+ if (device_data && device_data->check) {
+ error = device_data->check(dev);
+ if (error)
+ return error;
+ }
+
- if (!id->driver_data) {
+ if (device_data && device_data->button_info) {
+ button_info = (struct soc_button_info *)
+ device_data->button_info;
+ button_info = device_data->button_info;
+ } else {
button_info = soc_button_get_button_info(dev);
if (IS_ERR(button_info))
return PTR_ERR(button_info);
- } else {
- button_info = (struct soc_button_info *)id->driver_data;
- }
-
- error = gpiod_count(dev, NULL);
- if (error < 0) {
- dev_dbg(dev, "no GPIO attached, ignoring...\n");
- return -ENODEV;
}
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
@@ -361,12 +380,32 @@ static int soc_button_probe(struct platform_device *pdev)
error = gpiod_count(dev, NULL);
@@ -361,7 +374,7 @@ static int soc_button_probe(struct platform_device *pdev)
if (!priv->children[0] && !priv->children[1])
return -ENODEV;
@ -111,41 +102,23 @@ index bb458beecb43..bfce5061dede 100644
devm_kfree(dev, button_info);
return 0;
}
+
+static int soc_device_check_generic(struct device *dev)
+{
+ int gpios;
+
+ gpios = gpiod_count(dev, NULL);
+ if (gpios < 0) {
+ dev_dbg(dev, "no GPIO attached, ignoring...\n");
+ return -ENODEV;
+ }
+
+ return 0;
+}
+
+static struct soc_device_data soc_device_ACPI0011 = {
+ .button_info = NULL,
+ .check = soc_device_check_generic,
+};
+
+
/*
* Definition of buttons on the tablet. The ACPI index of each button
@@ -372,7 +385,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
@@ -381,9 +420,85 @@ static struct soc_button_info soc_button_PNP0C40[] = {
* Platforms"
*/
-static struct soc_button_info soc_button_PNP0C40[] = {
+static const struct soc_button_info soc_button_PNP0C40[] = {
{ "power", 0, EV_KEY, KEY_POWER, false, true },
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
@@ -381,9 +394,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
{ }
};
+static struct soc_device_data soc_device_PNP0C40 = {
+static const struct soc_device_data soc_device_PNP0C40 = {
+ .button_info = soc_button_PNP0C40,
+ .check = soc_device_check_generic,
+};
+
+
+/*
+ * Special device check for Surface Book 2 and Surface Pro (2017).
+ * Both, the Surface Pro 4 (surfacepro3_button.c) and the above mentioned
@ -165,7 +138,6 @@ index bb458beecb43..bfce5061dede 100644
+ acpi_handle handle = ACPI_HANDLE(dev);
+ union acpi_object *result;
+ u64 oem_platform_rev = 0; // valid revisions are nonzero
+ int gpios;
+
+ // get OEM platform revision
+ result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
@ -188,10 +160,6 @@ index bb458beecb43..bfce5061dede 100644
+
+ dev_dbg(dev, "OEM Platform Revision %llu\n", oem_platform_rev);
+
+ gpios = gpiod_count(dev, NULL);
+ if (gpios < 0)
+ return -ENODEV;
+
+ return 0;
+}
+
@ -199,24 +167,22 @@ index bb458beecb43..bfce5061dede 100644
+ * Button infos for Microsoft Surface Book 2 and Surface Pro (2017).
+ * Obtained from DSDT/testing.
+ */
+static struct soc_button_info soc_button_MSHW0040[] = {
+static const struct soc_button_info soc_button_MSHW0040[] = {
+ { "power", 0, EV_KEY, KEY_POWER, false, true },
+ { "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
+ { "volume_down", 4, EV_KEY, KEY_VOLUMEDOWN, true, false },
+ { }
+};
+
+static struct soc_device_data soc_device_MSHW0040 = {
+static const struct soc_device_data soc_device_MSHW0040 = {
+ .button_info = soc_button_MSHW0040,
+ .check = soc_device_check_MSHW0040,
+};
+
+
static const struct acpi_device_id soc_button_acpi_match[] = {
- { "PNP0C40", (unsigned long)soc_button_PNP0C40 },
- { "ACPI0011", 0 },
+ { "PNP0C40", (unsigned long)&soc_device_PNP0C40 },
+ { "ACPI0011", (unsigned long)&soc_device_ACPI0011 },
{ "ACPI0011", 0 },
+
+ /* Microsoft Surface Devices (5th and 6th generation) */
+ { "MSHW0040", (unsigned long)&soc_device_MSHW0040 },

View file

@ -1,4 +1,4 @@
From b3ba77590bcaa2892a0694350b51e83a6b39f1a4 Mon Sep 17 00:00:00 2001
From 34ff8d7dd13d023bdfceeb519c4fdf454cfe4d64 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:11:26 +0200
Subject: [PATCH 04/12] cameras

View file

@ -1,4 +1,4 @@
From 9cc38f3d190794104ff5bfd56aeaf61316b81146 Mon Sep 17 00:00:00 2001
From e9dd509a0c74e2182a46beaeaa5be6d0532a00de Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:11:35 +0200
Subject: [PATCH 05/12] ipts

View file

@ -1,4 +1,4 @@
From 0ec364cfc8a59dff3c4417dfc6aab7a1440bddfb Mon Sep 17 00:00:00 2001
From f84b5e8deb61c010a6d9cfc1425ed9d80f12c207 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:11:44 +0200
Subject: [PATCH 06/12] hid

View file

@ -1,4 +1,4 @@
From f941f295c9f2ac9b1a491ae25c1423bbadfaca7b Mon Sep 17 00:00:00 2001
From 43ee881577207efc2e28f83a94b9658c1b19d890 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:11:54 +0200
Subject: [PATCH 07/12] sdcard-reader

View file

@ -1,4 +1,4 @@
From 8f081f0ce33e78b5009ee53a9f4ece8f33d6edda Mon Sep 17 00:00:00 2001
From 739ec85fcd09682a775d5099849fee0f6b507d49 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:12:05 +0200
Subject: [PATCH 08/12] wifi

View file

@ -1,4 +1,4 @@
From df966e10791947d6cbb18a3cc82ebcf7ff866fe9 Mon Sep 17 00:00:00 2001
From 02ed2332030abe58d010d28407176cb63d6ee3bc Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:12:17 +0200
Subject: [PATCH 09/12] surface3-power

View file

@ -1,4 +1,4 @@
From ab3c7d815ebd2b978242c4f66f3e560d3549fc33 Mon Sep 17 00:00:00 2001
From 99eb35992068f60c06184ba7099a1e0a81b141e6 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:12:32 +0200
Subject: [PATCH 10/12] mwlwifi

View file

@ -1,4 +1,4 @@
From 573cac720de62e5200387ceb3179cbf4d18e2b9b Mon Sep 17 00:00:00 2001
From d47e3771140795d921008131954893e677ebd0ad Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:12:45 +0200
Subject: [PATCH 11/12] surface-lte

View file

@ -1,4 +1,4 @@
From 832a72c7ea89dbe9593fc2f2f55e377b168f9d9f Mon Sep 17 00:00:00 2001
From 5b746cb149fa5ad1719acd075bdad89923f0b8e3 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Fri, 26 Jul 2019 04:12:57 +0200
Subject: [PATCH 12/12] surfacebook2-dgpu