|
@@ -1,9 +1,3 @@
|
|
-From 9769a5f2c287ce094dcd498e222db8f0f90c341e Mon Sep 17 00:00:00 2001
|
|
|
|
-From: Jake Day <jake@ninebysix.com>
|
|
|
|
-Date: Thu, 1 Feb 2018 19:22:02 -0500
|
|
|
|
-Subject: Intel Precise Touch & Stylus(IPTS) support
|
|
|
|
-
|
|
|
|
-
|
|
|
|
diff --git a/Documentation/devicetree/bindings/input/hid-over-i2c.txt b/Documentation/devicetree/bindings/input/hid-over-i2c.txt
|
|
diff --git a/Documentation/devicetree/bindings/input/hid-over-i2c.txt b/Documentation/devicetree/bindings/input/hid-over-i2c.txt
|
|
index 28e8bd8..4d3da9d 100644
|
|
index 28e8bd8..4d3da9d 100644
|
|
--- a/Documentation/devicetree/bindings/input/hid-over-i2c.txt
|
|
--- a/Documentation/devicetree/bindings/input/hid-over-i2c.txt
|
|
@@ -32,7 +26,7 @@ index 2e034ef..635b8c6 100644
|
|
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
|
|
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
|
|
i915-$(CONFIG_DRM_I915_SELFTEST) += \
|
|
i915-$(CONFIG_DRM_I915_SELFTEST) += \
|
|
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
|
|
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
|
|
-index 5c5cb2c..8c70195 100644
|
|
|
|
|
|
+index 562220e..bd9cb5c 100644
|
|
--- a/drivers/gpu/drm/i915/i915_drv.c
|
|
--- a/drivers/gpu/drm/i915/i915_drv.c
|
|
+++ b/drivers/gpu/drm/i915/i915_drv.c
|
|
+++ b/drivers/gpu/drm/i915/i915_drv.c
|
|
@@ -51,6 +51,7 @@
|
|
@@ -51,6 +51,7 @@
|
|
@@ -64,10 +58,10 @@ index 5c5cb2c..8c70195 100644
|
|
|
|
|
|
if (i915_gem_suspend(dev_priv))
|
|
if (i915_gem_suspend(dev_priv))
|
|
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
|
|
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
|
|
-index 18d9da5..12d86d1 100644
|
|
|
|
|
|
+index 3f81841..8038f63 100644
|
|
--- a/drivers/gpu/drm/i915/i915_drv.h
|
|
--- a/drivers/gpu/drm/i915/i915_drv.h
|
|
+++ b/drivers/gpu/drm/i915/i915_drv.h
|
|
+++ b/drivers/gpu/drm/i915/i915_drv.h
|
|
-@@ -3658,6 +3658,9 @@ void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
|
|
|
|
|
+@@ -3659,6 +3659,9 @@ void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
|
void i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
|
void i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
|
struct sg_table *pages);
|
|
struct sg_table *pages);
|
|
|
|
|
|
@@ -114,7 +108,7 @@ index 8afd2ce..00871aa 100644
|
|
{
|
|
{
|
|
struct i915_gem_context *ctx;
|
|
struct i915_gem_context *ctx;
|
|
diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
|
|
diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
|
|
-index 48a1e93..ee9bc8a 100644
|
|
|
|
|
|
+index 48a1e93..75b5cc2 100644
|
|
--- a/drivers/gpu/drm/i915/i915_guc_submission.c
|
|
--- a/drivers/gpu/drm/i915/i915_guc_submission.c
|
|
+++ b/drivers/gpu/drm/i915/i915_guc_submission.c
|
|
+++ b/drivers/gpu/drm/i915/i915_guc_submission.c
|
|
@@ -87,6 +87,7 @@ static inline bool is_high_priority(struct i915_guc_client* client)
|
|
@@ -87,6 +87,7 @@ static inline bool is_high_priority(struct i915_guc_client* client)
|
|
@@ -252,9 +246,18 @@ index b63893e..5a0313b 100644
|
|
GT_RENDER_USER_INTERRUPT << GEN8_BCS_IRQ_SHIFT |
|
|
GT_RENDER_USER_INTERRUPT << GEN8_BCS_IRQ_SHIFT |
|
|
GT_CONTEXT_SWITCH_INTERRUPT << GEN8_BCS_IRQ_SHIFT,
|
|
GT_CONTEXT_SWITCH_INTERRUPT << GEN8_BCS_IRQ_SHIFT,
|
|
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
|
|
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
|
|
-index 8ab003d..db55910 100644
|
|
|
|
|
|
+index 8ab003d..3cb1ac4 100644
|
|
--- a/drivers/gpu/drm/i915/i915_params.c
|
|
--- a/drivers/gpu/drm/i915/i915_params.c
|
|
+++ b/drivers/gpu/drm/i915/i915_params.c
|
|
+++ b/drivers/gpu/drm/i915/i915_params.c
|
|
|
|
+@@ -35,7 +35,7 @@ struct i915_params i915 __read_mostly = {
|
|
|
|
+ .enable_rc6 = -1,
|
|
|
|
+ .enable_dc = -1,
|
|
|
|
+ .enable_fbc = -1,
|
|
|
|
+- .enable_execlists = -1,
|
|
|
|
++ .enable_execlists = 0,
|
|
|
|
+ .enable_hangcheck = true,
|
|
|
|
+ .enable_ppgtt = -1,
|
|
|
|
+ .enable_psr = -1,
|
|
@@ -56,8 +56,8 @@ struct i915_params i915 __read_mostly = {
|
|
@@ -56,8 +56,8 @@ struct i915_params i915 __read_mostly = {
|
|
.verbose_state_checks = 1,
|
|
.verbose_state_checks = 1,
|
|
.nuclear_pageflip = 0,
|
|
.nuclear_pageflip = 0,
|
|
@@ -266,6 +269,15 @@ index 8ab003d..db55910 100644
|
|
.guc_log_level = -1,
|
|
.guc_log_level = -1,
|
|
.guc_firmware_path = NULL,
|
|
.guc_firmware_path = NULL,
|
|
.huc_firmware_path = NULL,
|
|
.huc_firmware_path = NULL,
|
|
|
|
+@@ -144,7 +144,7 @@ MODULE_PARM_DESC(enable_ppgtt,
|
|
|
|
+ module_param_named_unsafe(enable_execlists, i915.enable_execlists, int, 0400);
|
|
|
|
+ MODULE_PARM_DESC(enable_execlists,
|
|
|
|
+ "Override execlists usage. "
|
|
|
|
+- "(-1=auto [default], 0=disabled, 1=enabled)");
|
|
|
|
++ "(-1=auto, 0=disabled [default], 1=enabled)");
|
|
|
|
+
|
|
|
|
+ module_param_named_unsafe(enable_psr, i915.enable_psr, int, 0600);
|
|
|
|
+ MODULE_PARM_DESC(enable_psr, "Enable PSR "
|
|
@@ -225,12 +225,12 @@ MODULE_PARM_DESC(edp_vswing,
|
|
@@ -225,12 +225,12 @@ MODULE_PARM_DESC(edp_vswing,
|
|
module_param_named_unsafe(enable_guc_loading, i915.enable_guc_loading, int, 0400);
|
|
module_param_named_unsafe(enable_guc_loading, i915.enable_guc_loading, int, 0400);
|
|
MODULE_PARM_DESC(enable_guc_loading,
|
|
MODULE_PARM_DESC(enable_guc_loading,
|
|
@@ -1075,7 +1087,7 @@ index 22ae52b..c7765f9 100644
|
|
+
|
|
+
|
|
#endif
|
|
#endif
|
|
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
|
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
|
-index 9e8c4d2..97c7c99 100644
|
|
|
|
|
|
+index 6598501..a80c018 100644
|
|
--- a/drivers/hid/hid-multitouch.c
|
|
--- a/drivers/hid/hid-multitouch.c
|
|
+++ b/drivers/hid/hid-multitouch.c
|
|
+++ b/drivers/hid/hid-multitouch.c
|
|
@@ -140,6 +140,7 @@ struct mt_device {
|
|
@@ -140,6 +140,7 @@ struct mt_device {
|
|
@@ -1118,7 +1130,7 @@ index 9e8c4d2..97c7c99 100644
|
|
static int mt_compute_slot(struct mt_device *td, struct input_dev *input)
|
|
static int mt_compute_slot(struct mt_device *td, struct input_dev *input)
|
|
{
|
|
{
|
|
__s32 quirks = td->mtclass.quirks;
|
|
__s32 quirks = td->mtclass.quirks;
|
|
-@@ -929,9 +944,11 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
|
|
|
|
|
+@@ -942,9 +957,11 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
|
field->application != HID_DG_TOUCHSCREEN &&
|
|
field->application != HID_DG_TOUCHSCREEN &&
|
|
field->application != HID_DG_PEN &&
|
|
field->application != HID_DG_PEN &&
|
|
field->application != HID_DG_TOUCHPAD &&
|
|
field->application != HID_DG_TOUCHPAD &&
|
|
@@ -1130,7 +1142,7 @@ index 9e8c4d2..97c7c99 100644
|
|
field->application != HID_GD_WIRELESS_RADIO_CTLS &&
|
|
field->application != HID_GD_WIRELESS_RADIO_CTLS &&
|
|
!(field->application == HID_VD_ASUS_CUSTOM_MEDIA_KEYS &&
|
|
!(field->application == HID_VD_ASUS_CUSTOM_MEDIA_KEYS &&
|
|
td->mtclass.quirks & MT_QUIRK_ASUS_CUSTOM_UP))
|
|
td->mtclass.quirks & MT_QUIRK_ASUS_CUSTOM_UP))
|
|
-@@ -994,10 +1011,8 @@ static int mt_input_mapped(struct hid_device *hdev, struct hid_input *hi,
|
|
|
|
|
|
+@@ -1007,10 +1024,8 @@ static int mt_input_mapped(struct hid_device *hdev, struct hid_input *hi,
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
if (field->application == HID_DG_TOUCHSCREEN ||
|
|
if (field->application == HID_DG_TOUCHSCREEN ||
|
|
@@ -1143,7 +1155,7 @@ index 9e8c4d2..97c7c99 100644
|
|
|
|
|
|
/* let hid-core decide for the others */
|
|
/* let hid-core decide for the others */
|
|
return 0;
|
|
return 0;
|
|
-@@ -1140,6 +1155,7 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
|
|
|
|
|
+@@ -1153,6 +1168,7 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
|
suffix = "Pen";
|
|
suffix = "Pen";
|
|
/* force BTN_STYLUS to allow tablet matching in udev */
|
|
/* force BTN_STYLUS to allow tablet matching in udev */
|
|
__set_bit(BTN_STYLUS, hi->input->keybit);
|
|
__set_bit(BTN_STYLUS, hi->input->keybit);
|
|
@@ -1151,7 +1163,7 @@ index 9e8c4d2..97c7c99 100644
|
|
} else {
|
|
} else {
|
|
switch (field->application) {
|
|
switch (field->application) {
|
|
case HID_GD_KEYBOARD:
|
|
case HID_GD_KEYBOARD:
|
|
-@@ -1155,9 +1171,10 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
|
|
|
|
|
+@@ -1168,9 +1184,10 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
|
suffix = "Pen";
|
|
suffix = "Pen";
|
|
/* force BTN_STYLUS to allow tablet matching in udev */
|
|
/* force BTN_STYLUS to allow tablet matching in udev */
|
|
__set_bit(BTN_STYLUS, hi->input->keybit);
|
|
__set_bit(BTN_STYLUS, hi->input->keybit);
|
|
@@ -1163,7 +1175,7 @@ index 9e8c4d2..97c7c99 100644
|
|
break;
|
|
break;
|
|
case HID_DG_TOUCHPAD:
|
|
case HID_DG_TOUCHPAD:
|
|
suffix = "Touchpad";
|
|
suffix = "Touchpad";
|
|
-@@ -1286,6 +1303,7 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
|
|
|
|
+@@ -1299,6 +1316,7 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
td->inputmode_value = MT_INPUTMODE_TOUCHSCREEN;
|
|
td->inputmode_value = MT_INPUTMODE_TOUCHSCREEN;
|
|
td->cc_index = -1;
|
|
td->cc_index = -1;
|
|
td->mt_report_id = -1;
|
|
td->mt_report_id = -1;
|
|
@@ -1171,7 +1183,7 @@ index 9e8c4d2..97c7c99 100644
|
|
hid_set_drvdata(hdev, td);
|
|
hid_set_drvdata(hdev, td);
|
|
|
|
|
|
td->fields = devm_kzalloc(&hdev->dev, sizeof(struct mt_fields),
|
|
td->fields = devm_kzalloc(&hdev->dev, sizeof(struct mt_fields),
|
|
-@@ -1332,7 +1350,6 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
|
|
|
|
+@@ -1345,7 +1363,6 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
|
|
hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
|
|
|
|
|
|
setup_timer(&td->release_timer, mt_expired_timeout, (long)hdev);
|
|
setup_timer(&td->release_timer, mt_expired_timeout, (long)hdev);
|
|
@@ -5990,7 +6002,7 @@ index 0000000..1fcd021
|
|
+
|
|
+
|
|
+#endif // _IPTS_H_
|
|
+#endif // _IPTS_H_
|
|
diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
|
|
diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
|
|
-index 0ccccba..c29f128 100644
|
|
|
|
|
|
+index e4b10b2..883b185 100644
|
|
--- a/drivers/misc/mei/hw-me-regs.h
|
|
--- a/drivers/misc/mei/hw-me-regs.h
|
|
+++ b/drivers/misc/mei/hw-me-regs.h
|
|
+++ b/drivers/misc/mei/hw-me-regs.h
|
|
@@ -119,6 +119,7 @@
|
|
@@ -119,6 +119,7 @@
|
|
@@ -6002,7 +6014,7 @@ index 0ccccba..c29f128 100644
|
|
#define MEI_DEV_ID_SPT_H_2 0xA13B /* Sunrise Point H 2 */
|
|
#define MEI_DEV_ID_SPT_H_2 0xA13B /* Sunrise Point H 2 */
|
|
|
|
|
|
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
|
|
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
|
|
-index d46cb1f..b86f9f6 100644
|
|
|
|
|
|
+index c77e08c..5773a6c 100644
|
|
--- a/drivers/misc/mei/pci-me.c
|
|
--- a/drivers/misc/mei/pci-me.c
|
|
+++ b/drivers/misc/mei/pci-me.c
|
|
+++ b/drivers/misc/mei/pci-me.c
|
|
@@ -86,6 +86,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
|
@@ -86,6 +86,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|