1- From 0ee4cc7146ffaf31332c845ae7242f746d88e0e7 Mon Sep 17 00:00:00 2001
1+ From ffdb2838f469f74fbf2724b9fcd0a65c6cb0ffde Mon Sep 17 00:00:00 2001
22From: Jake Day <
[email protected] >
3- Date: Mon, 28 Jan 2019 19:24:45 -0500
4- Subject: [PATCH 5/5 ] ipts
3+ Date: Thu, 31 Jan 2019 07:11:31 -0500
4+ Subject: [PATCH 05/11 ] ipts
55
66---
77 drivers/gpu/drm/i915/Makefile | 3 +
8- drivers/gpu/drm/i915/i915_drv.c | 7 +
8+ drivers/gpu/drm/i915/i915_drv.c | 13 +
99 drivers/gpu/drm/i915/i915_drv.h | 3 +
1010 drivers/gpu/drm/i915/i915_gem_context.c | 12 +
1111 drivers/gpu/drm/i915/i915_irq.c | 7 +-
@@ -15,8 +15,8 @@ Subject: [PATCH 5/5] ipts
1515 drivers/gpu/drm/i915/intel_guc.h | 1 +
1616 drivers/gpu/drm/i915/intel_guc_submission.c | 89 +-
1717 drivers/gpu/drm/i915/intel_guc_submission.h | 4 +
18- drivers/gpu/drm/i915/intel_ipts.c | 642 ++++++++++++
19- drivers/gpu/drm/i915/intel_ipts.h | 34 +
18+ drivers/gpu/drm/i915/intel_ipts.c | 649 ++++++++++++
19+ drivers/gpu/drm/i915/intel_ipts.h | 36 +
2020 drivers/gpu/drm/i915/intel_lrc.c | 12 +-
2121 drivers/gpu/drm/i915/intel_lrc.h | 8 +
2222 drivers/gpu/drm/i915/intel_panel.c | 7 +
@@ -45,7 +45,7 @@ Subject: [PATCH 5/5] ipts
4545 drivers/misc/mei/hw-me-regs.h | 1 +
4646 drivers/misc/mei/pci-me.c | 1 +
4747 include/linux/intel_ipts_if.h | 75 ++
48- 41 files changed, 5548 insertions(+), 25 deletions(-)
48+ 41 files changed, 5563 insertions(+), 25 deletions(-)
4949 create mode 100644 drivers/gpu/drm/i915/intel_ipts.c
5050 create mode 100644 drivers/gpu/drm/i915/intel_ipts.h
5151 create mode 100644 drivers/misc/ipts/Kconfig
@@ -84,7 +84,7 @@ index 5794f102f9b8..6ae0e91a213a 100644
8484 i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
8585 i915-$(CONFIG_DRM_I915_SELFTEST) += \
8686diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
87- index f8cfd16be534..f48122746b6e 100644
87+ index f8cfd16be534..72c2f0fd2c73 100644
8888--- a/drivers/gpu/drm/i915/i915_drv.c
8989+++ b/drivers/gpu/drm/i915/i915_drv.c
9090@@ -53,6 +53,7 @@
@@ -115,6 +115,26 @@ index f8cfd16be534..f48122746b6e 100644
115115 i915_driver_unregister(dev_priv);
116116
117117 if (i915_gem_suspend(dev_priv))
118+ @@ -1569,6 +1576,9 @@ static int i915_drm_suspend(struct drm_device *dev)
119+ struct pci_dev *pdev = dev_priv->drm.pdev;
120+ pci_power_t opregion_target_state;
121+
122+ + if (INTEL_GEN(dev_priv) >= 9 && i915_modparams.enable_guc && i915_modparams.enable_ipts)
123+ + intel_ipts_suspend(dev);
124+ +
125+ disable_rpm_wakeref_asserts(dev_priv);
126+
127+ /* We do a lot of poking in a lot of registers, make sure they work
128+ @@ -1768,6 +1778,9 @@ static int i915_drm_resume(struct drm_device *dev)
129+
130+ enable_rpm_wakeref_asserts(dev_priv);
131+
132+ + if (INTEL_GEN(dev_priv) >= 9 && i915_modparams.enable_guc && i915_modparams.enable_ipts)
133+ + intel_ipts_resume(dev);
134+ +
135+ return 0;
136+ }
137+
118138diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
119139index d6c25bea4382..d6b507fb7626 100644
120140--- a/drivers/gpu/drm/i915/i915_drv.h
@@ -398,10 +418,10 @@ index fb081cefef93..71fc7986585a 100644
398418 #endif
399419diff --git a/drivers/gpu/drm/i915/intel_ipts.c b/drivers/gpu/drm/i915/intel_ipts.c
400420new file mode 100644
401- index 000000000000..1888e450b425
421+ index 000000000000..4a3efea3bac3
402422--- /dev/null
403423+++ b/drivers/gpu/drm/i915/intel_ipts.c
404- @@ -0,0 +1,642 @@
424+ @@ -0,0 +1,649 @@
405425+ /*
406426+ * Copyright 2016 Intel Corporation
407427+ *
@@ -436,9 +456,9 @@ index 000000000000..1888e450b425
436456+
437457+ #define SUPPORTED_IPTS_INTERFACE_VERSION 1
438458+
439- + #define REACQUIRE_DB_THRESHOLD 8
440- + #define DB_LOST_CHECK_STEP1_INTERVAL 2000 /* ms */
441- + #define DB_LOST_CHECK_STEP2_INTERVAL 500 /* ms */
459+ + #define REACQUIRE_DB_THRESHOLD 10
460+ + #define DB_LOST_CHECK_STEP1_INTERVAL 2500 /* ms */
461+ + #define DB_LOST_CHECK_STEP2_INTERVAL 1000 /* ms */
442462+
443463+ /* intel IPTS ctx for ipts support */
444464+ typedef struct intel_ipts {
@@ -1007,18 +1027,15 @@ index 000000000000..1888e450b425
10071027+ intel_ipts.dev = dev;
10081028+ INIT_DELAYED_WORK(&intel_ipts.reacquire_db_work, reacquire_db_work_func);
10091029+
1010- + pr_info("ipts: creating ipts context\n");
10111030+ ret = create_ipts_context();
10121031+ if (ret)
10131032+ return -ENOMEM;
10141033+
1015- + pr_info("ipts: starting ipts work queue\n");
10161034+ ret = intel_ipts_init_wq();
10171035+ if (ret)
10181036+ return ret;
10191037+
10201038+ intel_ipts.initialized = true;
1021- + //DRM_DEBUG_DRIVER("Intel iTouch framework initialized\n");
10221039+ pr_info("ipts: Intel iTouch framework initialized\n");
10231040+
10241041+ return ret;
@@ -1044,12 +1061,22 @@ index 000000000000..1888e450b425
10441061+ cancel_delayed_work(&intel_ipts.reacquire_db_work);
10451062+ }
10461063+ }
1064+ +
1065+ + int intel_ipts_resume(struct drm_device *dev)
1066+ + {
1067+ + return intel_ipts_init(dev);
1068+ + }
1069+ +
1070+ + void intel_ipts_suspend(struct drm_device *dev)
1071+ + {
1072+ + intel_ipts_cleanup(dev);
1073+ + }
10471074diff --git a/drivers/gpu/drm/i915/intel_ipts.h b/drivers/gpu/drm/i915/intel_ipts.h
10481075new file mode 100644
1049- index 000000000000..a6965d102417
1076+ index 000000000000..45d7d1273adf
10501077--- /dev/null
10511078+++ b/drivers/gpu/drm/i915/intel_ipts.h
1052- @@ -0,0 +1,34 @@
1079+ @@ -0,0 +1,36 @@
10531080+ /*
10541081+ * Copyright © 2016 Intel Corporation
10551082+ *
@@ -1080,6 +1107,8 @@ index 000000000000..a6965d102417
10801107+
10811108+ int intel_ipts_init(struct drm_device *dev);
10821109+ void intel_ipts_cleanup(struct drm_device *dev);
1110+ + int intel_ipts_resume(struct drm_device *dev);
1111+ + void intel_ipts_suspend(struct drm_device *dev);
10831112+ int intel_ipts_notify_backlight_status(bool backlight_on);
10841113+ int intel_ipts_notify_complete(void);
10851114+
@@ -6028,7 +6057,7 @@ index 000000000000..1fcd02146b50
60286057+
60296058+ #endif // _IPTS_H_
60306059diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
6031- index e4b10b2d1a08..883b185c9dbe 100644
6060+ index 23739a60517f..92a2a0c5947c 100644
60326061--- a/drivers/misc/mei/hw-me-regs.h
60336062+++ b/drivers/misc/mei/hw-me-regs.h
60346063@@ -119,6 +119,7 @@
@@ -6040,7 +6069,7 @@ index e4b10b2d1a08..883b185c9dbe 100644
60406069 #define MEI_DEV_ID_SPT_H_2 0xA13B /* Sunrise Point H 2 */
60416070
60426071diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
6043- index ea4e152270a3..4d301ba3f867 100644
6072+ index c8e21c894a5f..e26c9280d6ba 100644
60446073--- a/drivers/misc/mei/pci-me.c
60456074+++ b/drivers/misc/mei/pci-me.c
60466075@@ -86,6 +86,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
@@ -6050,7 +6079,7 @@ index ea4e152270a3..4d301ba3f867 100644
60506079+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
60516080 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
60526081 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
6053- {MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH8_CFG )},
6082+ {MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_CFG )},
60546083diff --git a/include/linux/intel_ipts_if.h b/include/linux/intel_ipts_if.h
60556084new file mode 100644
60566085index 000000000000..f329bbfb8079
0 commit comments