|
@@ -1,11 +1,11 @@
|
|
-From 0ee4cc7146ffaf31332c845ae7242f746d88e0e7 Mon Sep 17 00:00:00 2001
|
|
|
|
|
|
+From ffdb2838f469f74fbf2724b9fcd0a65c6cb0ffde Mon Sep 17 00:00:00 2001
|
|
From: Jake Day <jake@ninebysix.com>
|
|
From: Jake Day <jake@ninebysix.com>
|
|
-Date: Mon, 28 Jan 2019 19:24:45 -0500
|
|
|
|
-Subject: [PATCH 5/5] ipts
|
|
|
|
|
|
+Date: Thu, 31 Jan 2019 07:11:31 -0500
|
|
|
|
+Subject: [PATCH 05/11] ipts
|
|
|
|
|
|
---
|
|
---
|
|
drivers/gpu/drm/i915/Makefile | 3 +
|
|
drivers/gpu/drm/i915/Makefile | 3 +
|
|
- drivers/gpu/drm/i915/i915_drv.c | 7 +
|
|
|
|
|
|
+ drivers/gpu/drm/i915/i915_drv.c | 13 +
|
|
drivers/gpu/drm/i915/i915_drv.h | 3 +
|
|
drivers/gpu/drm/i915/i915_drv.h | 3 +
|
|
drivers/gpu/drm/i915/i915_gem_context.c | 12 +
|
|
drivers/gpu/drm/i915/i915_gem_context.c | 12 +
|
|
drivers/gpu/drm/i915/i915_irq.c | 7 +-
|
|
drivers/gpu/drm/i915/i915_irq.c | 7 +-
|
|
@@ -15,8 +15,8 @@ Subject: [PATCH 5/5] ipts
|
|
drivers/gpu/drm/i915/intel_guc.h | 1 +
|
|
drivers/gpu/drm/i915/intel_guc.h | 1 +
|
|
drivers/gpu/drm/i915/intel_guc_submission.c | 89 +-
|
|
drivers/gpu/drm/i915/intel_guc_submission.c | 89 +-
|
|
drivers/gpu/drm/i915/intel_guc_submission.h | 4 +
|
|
drivers/gpu/drm/i915/intel_guc_submission.h | 4 +
|
|
- drivers/gpu/drm/i915/intel_ipts.c | 642 ++++++++++++
|
|
|
|
- drivers/gpu/drm/i915/intel_ipts.h | 34 +
|
|
|
|
|
|
+ drivers/gpu/drm/i915/intel_ipts.c | 649 ++++++++++++
|
|
|
|
+ drivers/gpu/drm/i915/intel_ipts.h | 36 +
|
|
drivers/gpu/drm/i915/intel_lrc.c | 12 +-
|
|
drivers/gpu/drm/i915/intel_lrc.c | 12 +-
|
|
drivers/gpu/drm/i915/intel_lrc.h | 8 +
|
|
drivers/gpu/drm/i915/intel_lrc.h | 8 +
|
|
drivers/gpu/drm/i915/intel_panel.c | 7 +
|
|
drivers/gpu/drm/i915/intel_panel.c | 7 +
|
|
@@ -45,7 +45,7 @@ Subject: [PATCH 5/5] ipts
|
|
drivers/misc/mei/hw-me-regs.h | 1 +
|
|
drivers/misc/mei/hw-me-regs.h | 1 +
|
|
drivers/misc/mei/pci-me.c | 1 +
|
|
drivers/misc/mei/pci-me.c | 1 +
|
|
include/linux/intel_ipts_if.h | 75 ++
|
|
include/linux/intel_ipts_if.h | 75 ++
|
|
- 41 files changed, 5548 insertions(+), 25 deletions(-)
|
|
|
|
|
|
+ 41 files changed, 5563 insertions(+), 25 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
|
|
@@ -84,7 +84,7 @@ index 5794f102f9b8..6ae0e91a213a 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 f8cfd16be534..f48122746b6e 100644
|
|
|
|
|
|
+index f8cfd16be534..72c2f0fd2c73 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
|
|
@@ -53,6 +53,7 @@
|
|
@@ -53,6 +53,7 @@
|
|
@@ -115,6 +115,26 @@ index f8cfd16be534..f48122746b6e 100644
|
|
i915_driver_unregister(dev_priv);
|
|
i915_driver_unregister(dev_priv);
|
|
|
|
|
|
if (i915_gem_suspend(dev_priv))
|
|
if (i915_gem_suspend(dev_priv))
|
|
|
|
+@@ -1569,6 +1576,9 @@ static int i915_drm_suspend(struct drm_device *dev)
|
|
|
|
+ struct pci_dev *pdev = dev_priv->drm.pdev;
|
|
|
|
+ pci_power_t opregion_target_state;
|
|
|
|
+
|
|
|
|
++ if (INTEL_GEN(dev_priv) >= 9 && i915_modparams.enable_guc && i915_modparams.enable_ipts)
|
|
|
|
++ intel_ipts_suspend(dev);
|
|
|
|
++
|
|
|
|
+ disable_rpm_wakeref_asserts(dev_priv);
|
|
|
|
+
|
|
|
|
+ /* We do a lot of poking in a lot of registers, make sure they work
|
|
|
|
+@@ -1768,6 +1778,9 @@ static int i915_drm_resume(struct drm_device *dev)
|
|
|
|
+
|
|
|
|
+ enable_rpm_wakeref_asserts(dev_priv);
|
|
|
|
+
|
|
|
|
++ if (INTEL_GEN(dev_priv) >= 9 && i915_modparams.enable_guc && i915_modparams.enable_ipts)
|
|
|
|
++ intel_ipts_resume(dev);
|
|
|
|
++
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
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 d6c25bea4382..d6b507fb7626 100644
|
|
index d6c25bea4382..d6b507fb7626 100644
|
|
--- a/drivers/gpu/drm/i915/i915_drv.h
|
|
--- a/drivers/gpu/drm/i915/i915_drv.h
|
|
@@ -398,10 +418,10 @@ index fb081cefef93..71fc7986585a 100644
|
|
#endif
|
|
#endif
|
|
diff --git a/drivers/gpu/drm/i915/intel_ipts.c b/drivers/gpu/drm/i915/intel_ipts.c
|
|
diff --git a/drivers/gpu/drm/i915/intel_ipts.c b/drivers/gpu/drm/i915/intel_ipts.c
|
|
new file mode 100644
|
|
new file mode 100644
|
|
-index 000000000000..1888e450b425
|
|
|
|
|
|
+index 000000000000..4a3efea3bac3
|
|
--- /dev/null
|
|
--- /dev/null
|
|
+++ b/drivers/gpu/drm/i915/intel_ipts.c
|
|
+++ b/drivers/gpu/drm/i915/intel_ipts.c
|
|
-@@ -0,0 +1,642 @@
|
|
|
|
|
|
+@@ -0,0 +1,649 @@
|
|
+/*
|
|
+/*
|
|
+ * Copyright 2016 Intel Corporation
|
|
+ * Copyright 2016 Intel Corporation
|
|
+ *
|
|
+ *
|
|
@@ -436,9 +456,9 @@ index 000000000000..1888e450b425
|
|
+
|
|
+
|
|
+#define SUPPORTED_IPTS_INTERFACE_VERSION 1
|
|
+#define SUPPORTED_IPTS_INTERFACE_VERSION 1
|
|
+
|
|
+
|
|
-+#define REACQUIRE_DB_THRESHOLD 8
|
|
|
|
-+#define DB_LOST_CHECK_STEP1_INTERVAL 2000 /* ms */
|
|
|
|
-+#define DB_LOST_CHECK_STEP2_INTERVAL 500 /* ms */
|
|
|
|
|
|
++#define REACQUIRE_DB_THRESHOLD 10
|
|
|
|
++#define DB_LOST_CHECK_STEP1_INTERVAL 2500 /* ms */
|
|
|
|
++#define DB_LOST_CHECK_STEP2_INTERVAL 1000 /* ms */
|
|
+
|
|
+
|
|
+/* intel IPTS ctx for ipts support */
|
|
+/* intel IPTS ctx for ipts support */
|
|
+typedef struct intel_ipts {
|
|
+typedef struct intel_ipts {
|
|
@@ -1007,18 +1027,15 @@ index 000000000000..1888e450b425
|
|
+ intel_ipts.dev = dev;
|
|
+ intel_ipts.dev = dev;
|
|
+ INIT_DELAYED_WORK(&intel_ipts.reacquire_db_work, reacquire_db_work_func);
|
|
+ INIT_DELAYED_WORK(&intel_ipts.reacquire_db_work, reacquire_db_work_func);
|
|
+
|
|
+
|
|
-+ pr_info("ipts: creating ipts context\n");
|
|
|
|
+ ret = create_ipts_context();
|
|
+ ret = create_ipts_context();
|
|
+ if (ret)
|
|
+ if (ret)
|
|
+ return -ENOMEM;
|
|
+ return -ENOMEM;
|
|
+
|
|
+
|
|
-+ pr_info("ipts: starting ipts work queue\n");
|
|
|
|
+ ret = intel_ipts_init_wq();
|
|
+ ret = intel_ipts_init_wq();
|
|
+ if (ret)
|
|
+ if (ret)
|
|
+ return ret;
|
|
+ return ret;
|
|
+
|
|
+
|
|
+ intel_ipts.initialized = true;
|
|
+ intel_ipts.initialized = true;
|
|
-+ //DRM_DEBUG_DRIVER("Intel iTouch framework initialized\n");
|
|
|
|
+ pr_info("ipts: Intel iTouch framework initialized\n");
|
|
+ pr_info("ipts: Intel iTouch framework initialized\n");
|
|
+
|
|
+
|
|
+ return ret;
|
|
+ return ret;
|
|
@@ -1044,12 +1061,22 @@ index 000000000000..1888e450b425
|
|
+ cancel_delayed_work(&intel_ipts.reacquire_db_work);
|
|
+ cancel_delayed_work(&intel_ipts.reacquire_db_work);
|
|
+ }
|
|
+ }
|
|
+}
|
|
+}
|
|
|
|
++
|
|
|
|
++int intel_ipts_resume(struct drm_device *dev)
|
|
|
|
++{
|
|
|
|
++ return intel_ipts_init(dev);
|
|
|
|
++}
|
|
|
|
++
|
|
|
|
++void intel_ipts_suspend(struct drm_device *dev)
|
|
|
|
++{
|
|
|
|
++ intel_ipts_cleanup(dev);
|
|
|
|
++}
|
|
diff --git a/drivers/gpu/drm/i915/intel_ipts.h b/drivers/gpu/drm/i915/intel_ipts.h
|
|
diff --git a/drivers/gpu/drm/i915/intel_ipts.h b/drivers/gpu/drm/i915/intel_ipts.h
|
|
new file mode 100644
|
|
new file mode 100644
|
|
-index 000000000000..a6965d102417
|
|
|
|
|
|
+index 000000000000..45d7d1273adf
|
|
--- /dev/null
|
|
--- /dev/null
|
|
+++ b/drivers/gpu/drm/i915/intel_ipts.h
|
|
+++ b/drivers/gpu/drm/i915/intel_ipts.h
|
|
-@@ -0,0 +1,34 @@
|
|
|
|
|
|
+@@ -0,0 +1,36 @@
|
|
+/*
|
|
+/*
|
|
+ * Copyright © 2016 Intel Corporation
|
|
+ * Copyright © 2016 Intel Corporation
|
|
+ *
|
|
+ *
|
|
@@ -1080,6 +1107,8 @@ index 000000000000..a6965d102417
|
|
+
|
|
+
|
|
+int intel_ipts_init(struct drm_device *dev);
|
|
+int intel_ipts_init(struct drm_device *dev);
|
|
+void intel_ipts_cleanup(struct drm_device *dev);
|
|
+void intel_ipts_cleanup(struct drm_device *dev);
|
|
|
|
++int intel_ipts_resume(struct drm_device *dev);
|
|
|
|
++void intel_ipts_suspend(struct drm_device *dev);
|
|
+int intel_ipts_notify_backlight_status(bool backlight_on);
|
|
+int intel_ipts_notify_backlight_status(bool backlight_on);
|
|
+int intel_ipts_notify_complete(void);
|
|
+int intel_ipts_notify_complete(void);
|
|
+
|
|
+
|
|
@@ -6028,7 +6057,7 @@ index 000000000000..1fcd02146b50
|
|
+
|
|
+
|
|
+#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 e4b10b2d1a08..883b185c9dbe 100644
|
|
|
|
|
|
+index 23739a60517f..92a2a0c5947c 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 @@
|
|
@@ -6040,7 +6069,7 @@ index e4b10b2d1a08..883b185c9dbe 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 ea4e152270a3..4d301ba3f867 100644
|
|
|
|
|
|
+index c8e21c894a5f..e26c9280d6ba 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[] = {
|
|
@@ -6050,7 +6079,7 @@ index ea4e152270a3..4d301ba3f867 100644
|
|
+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
|
|
+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
|
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
|
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
|
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
|
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
|
|
- {MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH8_CFG)},
|
|
|
|
|
|
+ {MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_CFG)},
|
|
diff --git a/include/linux/intel_ipts_if.h b/include/linux/intel_ipts_if.h
|
|
diff --git a/include/linux/intel_ipts_if.h b/include/linux/intel_ipts_if.h
|
|
new file mode 100644
|
|
new file mode 100644
|
|
index 000000000000..f329bbfb8079
|
|
index 000000000000..f329bbfb8079
|