All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
@ 2018-10-05 18:00 Chris Wilson
  2018-10-05 18:18 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Chris Wilson @ 2018-10-05 18:00 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula

If we reduce the suspend function for intel_opregion to do the minimum
required, the resume function can also do the simple task of notifier
the ACPI bios that we are back. This avoid some nasty restrictions on
the likes of register_acpi_notifier() that are not allowed during the
early phase of resume.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c       |   9 +-
 drivers/gpu/drm/i915/intel_opregion.c | 155 +++++++++++++++-----------
 drivers/gpu/drm/i915/intel_opregion.h |  15 +++
 3 files changed, 108 insertions(+), 71 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 193023427b40..9b0887746bac 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1919,9 +1919,7 @@ static int i915_drm_suspend(struct drm_device *dev)
 	i915_save_state(dev_priv);
 
 	opregion_target_state = suspend_to_idle(dev_priv) ? PCI_D1 : PCI_D3cold;
-	intel_opregion_notify_adapter(dev_priv, opregion_target_state);
-
-	intel_opregion_unregister(dev_priv);
+	intel_opregion_suspend(dev_priv, opregion_target_state);
 
 	intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED, true);
 
@@ -2040,7 +2038,6 @@ static int i915_drm_resume(struct drm_device *dev)
 
 	i915_restore_state(dev_priv);
 	intel_pps_unlock_regs_wa(dev_priv);
-	intel_opregion_setup(dev_priv);
 
 	intel_init_pch_refclk(dev_priv);
 
@@ -2082,12 +2079,10 @@ static int i915_drm_resume(struct drm_device *dev)
 	 * */
 	intel_hpd_init(dev_priv);
 
-	intel_opregion_register(dev_priv);
+	intel_opregion_resume(dev_priv);
 
 	intel_fbdev_set_suspend(dev, FBINFO_STATE_RUNNING, false);
 
-	intel_opregion_notify_adapter(dev_priv, PCI_D0);
-
 	intel_power_domains_enable(dev_priv);
 
 	enable_rpm_wakeref_asserts(dev_priv);
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
index e034b4166d32..379e8c64a248 100644
--- a/drivers/gpu/drm/i915/intel_opregion.c
+++ b/drivers/gpu/drm/i915/intel_opregion.c
@@ -773,70 +773,6 @@ static void intel_setup_cadls(struct drm_i915_private *dev_priv)
 		opregion->acpi->cadl[i] = 0;
 }
 
-void intel_opregion_register(struct drm_i915_private *dev_priv)
-{
-	struct intel_opregion *opregion = &dev_priv->opregion;
-
-	if (!opregion->header)
-		return;
-
-	if (opregion->acpi) {
-		intel_didl_outputs(dev_priv);
-		intel_setup_cadls(dev_priv);
-
-		/* Notify BIOS we are ready to handle ACPI video ext notifs.
-		 * Right now, all the events are handled by the ACPI video module.
-		 * We don't actually need to do anything with them. */
-		opregion->acpi->csts = 0;
-		opregion->acpi->drdy = 1;
-
-		opregion->acpi_notifier.notifier_call = intel_opregion_video_event;
-		register_acpi_notifier(&opregion->acpi_notifier);
-	}
-
-	if (opregion->asle) {
-		opregion->asle->tche = ASLE_TCHE_BLC_EN;
-		opregion->asle->ardy = ASLE_ARDY_READY;
-	}
-}
-
-void intel_opregion_unregister(struct drm_i915_private *dev_priv)
-{
-	struct intel_opregion *opregion = &dev_priv->opregion;
-
-	if (!opregion->header)
-		return;
-
-	if (opregion->asle)
-		opregion->asle->ardy = ASLE_ARDY_NOT_READY;
-
-	cancel_work_sync(&dev_priv->opregion.asle_work);
-
-	if (opregion->acpi) {
-		opregion->acpi->drdy = 0;
-
-		unregister_acpi_notifier(&opregion->acpi_notifier);
-		opregion->acpi_notifier.notifier_call = NULL;
-	}
-
-	/* just clear all opregion memory pointers now */
-	memunmap(opregion->header);
-	if (opregion->rvda) {
-		memunmap(opregion->rvda);
-		opregion->rvda = NULL;
-	}
-	if (opregion->vbt_firmware) {
-		kfree(opregion->vbt_firmware);
-		opregion->vbt_firmware = NULL;
-	}
-	opregion->header = NULL;
-	opregion->acpi = NULL;
-	opregion->swsci = NULL;
-	opregion->asle = NULL;
-	opregion->vbt = NULL;
-	opregion->lid_state = NULL;
-}
-
 static void swsci_setup(struct drm_i915_private *dev_priv)
 {
 	struct intel_opregion *opregion = &dev_priv->opregion;
@@ -1115,3 +1051,94 @@ intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
 
 	return ret - 1;
 }
+
+void intel_opregion_register(struct drm_i915_private *i915)
+{
+	struct intel_opregion *opregion = &i915->opregion;
+
+	if (!opregion->header)
+		return;
+
+	if (opregion->acpi) {
+		opregion->acpi_notifier.notifier_call = intel_opregion_video_event;
+		register_acpi_notifier(&opregion->acpi_notifier);
+	}
+
+	intel_opregion_resume(i915);
+}
+
+void intel_opregion_resume(struct drm_i915_private *i915)
+{
+	struct intel_opregion *opregion = &i915->opregion;
+
+	if (!opregion->header)
+		return;
+
+	if (opregion->acpi) {
+		intel_didl_outputs(i915);
+		intel_setup_cadls(i915);
+
+		/* Notify BIOS we are ready to handle ACPI video ext notifs.
+		 * Right now, all the events are handled by the ACPI video module.
+		 * We don't actually need to do anything with them. */
+		opregion->acpi->csts = 0;
+		opregion->acpi->drdy = 1;
+	}
+
+	if (opregion->asle) {
+		opregion->asle->tche = ASLE_TCHE_BLC_EN;
+		opregion->asle->ardy = ASLE_ARDY_READY;
+	}
+
+	intel_opregion_notify_adapter(i915, PCI_D0);
+}
+
+void intel_opregion_suspend(struct drm_i915_private *i915, pci_power_t state)
+{
+	struct intel_opregion *opregion = &i915->opregion;
+
+	if (!opregion->header)
+		return;
+
+	if (opregion->asle)
+		opregion->asle->ardy = ASLE_ARDY_NOT_READY;
+
+	cancel_work_sync(&i915->opregion.asle_work);
+
+	if (opregion->acpi)
+		opregion->acpi->drdy = 0;
+
+	intel_opregion_notify_adapter(i915, state);
+}
+
+void intel_opregion_unregister(struct drm_i915_private *i915)
+{
+	struct intel_opregion *opregion = &i915->opregion;
+
+	intel_opregion_suspend(i915, PCI_D1);
+
+	if (!opregion->header)
+		return;
+
+	if (opregion->acpi_notifier.notifier_call) {
+		unregister_acpi_notifier(&opregion->acpi_notifier);
+		opregion->acpi_notifier.notifier_call = NULL;
+	}
+
+	/* just clear all opregion memory pointers now */
+	memunmap(opregion->header);
+	if (opregion->rvda) {
+		memunmap(opregion->rvda);
+		opregion->rvda = NULL;
+	}
+	if (opregion->vbt_firmware) {
+		kfree(opregion->vbt_firmware);
+		opregion->vbt_firmware = NULL;
+	}
+	opregion->header = NULL;
+	opregion->acpi = NULL;
+	opregion->swsci = NULL;
+	opregion->asle = NULL;
+	opregion->vbt = NULL;
+	opregion->lid_state = NULL;
+}
diff --git a/drivers/gpu/drm/i915/intel_opregion.h b/drivers/gpu/drm/i915/intel_opregion.h
index e8498a8cda3d..d84b6d2d2fae 100644
--- a/drivers/gpu/drm/i915/intel_opregion.h
+++ b/drivers/gpu/drm/i915/intel_opregion.h
@@ -57,8 +57,14 @@ struct intel_opregion {
 #ifdef CONFIG_ACPI
 
 int intel_opregion_setup(struct drm_i915_private *dev_priv);
+
 void intel_opregion_register(struct drm_i915_private *dev_priv);
 void intel_opregion_unregister(struct drm_i915_private *dev_priv);
+
+void intel_opregion_resume(struct drm_i915_private *dev_priv);
+void intel_opregion_suspend(struct drm_i915_private *dev_priv,
+			    pci_power_t state);
+
 void intel_opregion_asle_intr(struct drm_i915_private *dev_priv);
 int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
 				  bool enable);
@@ -81,6 +87,15 @@ static inline void intel_opregion_unregister(struct drm_i915_private *dev_priv)
 {
 }
 
+void intel_opregion_resume(struct drm_i915_private *dev_priv)
+{
+}
+
+void intel_opregion_suspend(struct drm_i915_private *dev_priv,
+			    pci_power_t state)
+{
+}
+
 static inline void intel_opregion_asle_intr(struct drm_i915_private *dev_priv)
 {
 }
-- 
2.19.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
  2018-10-05 18:00 [PATCH] drm/i915: Stop calling intel_opregion unregister/register in suspend/resume Chris Wilson
@ 2018-10-05 18:18 ` Patchwork
  2018-10-05 18:42 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-10-05 18:18 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
URL   : https://patchwork.freedesktop.org/series/50630/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
eca8408fd83c drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
-:162: WARNING:BLOCK_COMMENT_STYLE: Block comments use a trailing */ on a separate line
#162: FILE: drivers/gpu/drm/i915/intel_opregion.c:1083:
+		 * We don't actually need to do anything with them. */

-:214: WARNING:NEEDLESS_IF: kfree(NULL) is safe and this check is probably not required
#214: FILE: drivers/gpu/drm/i915/intel_opregion.c:1135:
+	if (opregion->vbt_firmware) {
+		kfree(opregion->vbt_firmware);

total: 0 errors, 2 warnings, 0 checks, 223 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
  2018-10-05 18:00 [PATCH] drm/i915: Stop calling intel_opregion unregister/register in suspend/resume Chris Wilson
  2018-10-05 18:18 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
@ 2018-10-05 18:42 ` Patchwork
  2018-10-05 23:59 ` ✓ Fi.CI.IGT: " Patchwork
  2018-10-08  6:44 ` [PATCH] " Jani Nikula
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-10-05 18:42 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
URL   : https://patchwork.freedesktop.org/series/50630/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4940 -> Patchwork_10379 =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_10379 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10379, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/50630/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10379:

  === IGT changes ===

    ==== Warnings ====

    igt@pm_rpm@module-reload:
      fi-hsw-4770r:       SKIP -> PASS

    
== Known issues ==

  Here are the changes found in Patchwork_10379 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_evict:
      fi-bsw-kefka:       PASS -> DMESG-WARN (fdo#107709)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      fi-bdw-samus:       NOTRUN -> INCOMPLETE (fdo#107773)

    
    ==== Possible fixes ====

    igt@drv_module_reload@basic-reload-inject:
      fi-hsw-4770r:       DMESG-WARN (fdo#107924, fdo#107425) -> PASS

    igt@gem_exec_suspend@basic-s3:
      fi-bdw-samus:       INCOMPLETE (fdo#107773) -> PASS

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-byt-n2820:       FAIL (fdo#100368) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#107425 https://bugs.freedesktop.org/show_bug.cgi?id=107425
  fdo#107709 https://bugs.freedesktop.org/show_bug.cgi?id=107709
  fdo#107773 https://bugs.freedesktop.org/show_bug.cgi?id=107773
  fdo#107924 https://bugs.freedesktop.org/show_bug.cgi?id=107924


== Participating hosts (46 -> 39) ==

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-icl-u2 fi-bsw-cyan fi-snb-2520m fi-ctg-p8600 


== Build changes ==

    * Linux: CI_DRM_4940 -> Patchwork_10379

  CI_DRM_4940: 52e884bb1328eaa05bd3ee5716d2b9821ab6bd68 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4670: 7e066794d2ea860f4199fd67549080de17b6b852 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10379: eca8408fd83c6e7f5fae375660a2b2269499f2b5 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

eca8408fd83c drm/i915: Stop calling intel_opregion unregister/register in suspend/resume

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10379/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
  2018-10-05 18:00 [PATCH] drm/i915: Stop calling intel_opregion unregister/register in suspend/resume Chris Wilson
  2018-10-05 18:18 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
  2018-10-05 18:42 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-10-05 23:59 ` Patchwork
  2018-10-08  6:44 ` [PATCH] " Jani Nikula
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-10-05 23:59 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
URL   : https://patchwork.freedesktop.org/series/50630/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4940_full -> Patchwork_10379_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_10379_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10379_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10379_full:

  === IGT changes ===

    ==== Warnings ====

    igt@perf_pmu@rc6:
      shard-kbl:          PASS -> SKIP

    
== Known issues ==

  Here are the changes found in Patchwork_10379_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_suspend@debugfs-reader:
      shard-skl:          PASS -> INCOMPLETE (fdo#104108)

    igt@gem_eio@in-flight-contexts-1us:
      shard-glk:          PASS -> FAIL (fdo#105957)

    igt@gem_exec_big:
      shard-hsw:          PASS -> TIMEOUT (fdo#107937)

    igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
      shard-glk:          PASS -> FAIL (fdo#108145)
      shard-skl:          NOTRUN -> FAIL (fdo#105458)

    igt@kms_color@pipe-b-ctm-max:
      shard-apl:          PASS -> FAIL (fdo#108147)

    igt@kms_color@pipe-b-legacy-gamma:
      shard-apl:          PASS -> FAIL (fdo#104782)

    igt@kms_cursor_crc@cursor-256x85-random:
      shard-glk:          PASS -> FAIL (fdo#103232)

    igt@kms_cursor_crc@cursor-256x85-sliding:
      shard-apl:          PASS -> FAIL (fdo#103232) +2

    igt@kms_draw_crc@draw-method-xrgb8888-pwrite-untiled:
      shard-apl:          PASS -> INCOMPLETE (fdo#103927)

    igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
      shard-glk:          PASS -> FAIL (fdo#105363) +1

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
      shard-apl:          PASS -> FAIL (fdo#103167) +4

    igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
      shard-glk:          PASS -> FAIL (fdo#103167) +5

    igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
      shard-skl:          PASS -> INCOMPLETE (fdo#107773, fdo#104108)

    igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
      shard-apl:          PASS -> FAIL (fdo#103166) +2

    igt@perf@buffer-fill:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665)

    igt@pm_backlight@fade_with_suspend:
      shard-skl:          NOTRUN -> FAIL (fdo#107847)

    
    ==== Possible fixes ====

    igt@kms_busy@extended-pageflip-hang-newfb-render-b:
      shard-glk:          DMESG-WARN (fdo#107956) -> PASS

    igt@kms_cursor_crc@cursor-128x128-dpms:
      shard-skl:          FAIL (fdo#103232) -> PASS

    igt@kms_cursor_crc@cursor-128x128-sliding:
      shard-glk:          FAIL (fdo#103232) -> PASS

    igt@kms_cursor_crc@cursor-64x21-random:
      shard-apl:          FAIL (fdo#103232) -> PASS +4

    igt@kms_cursor_crc@cursor-64x64-suspend:
      shard-skl:          INCOMPLETE (fdo#104108) -> PASS
      shard-apl:          FAIL (fdo#103232, fdo#103191) -> PASS

    igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
      shard-glk:          FAIL (fdo#104873) -> PASS

    igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
      shard-glk:          DMESG-WARN (fdo#106538, fdo#105763) -> PASS +1

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
      shard-apl:          FAIL (fdo#103167) -> PASS +1

    igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc:
      shard-glk:          FAIL (fdo#103167) -> PASS +1

    igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc:
      shard-skl:          FAIL (fdo#105682) -> PASS +1

    igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu:
      shard-skl:          FAIL (fdo#103167) -> PASS +2

    igt@kms_plane@plane-panning-top-left-pipe-a-planes:
      shard-skl:          FAIL (fdo#103166) -> PASS

    igt@kms_plane@plane-position-covered-pipe-b-planes:
      shard-glk:          FAIL (fdo#103166) -> PASS +1

    {igt@kms_plane_alpha_blend@pipe-a-coverage-7efc}:
      shard-skl:          FAIL (fdo#108145) -> PASS

    igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
      shard-apl:          FAIL (fdo#103166) -> PASS

    igt@kms_setmode@basic:
      shard-apl:          FAIL (fdo#99912) -> PASS
      shard-kbl:          FAIL (fdo#99912) -> PASS

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108
  fdo#104782 https://bugs.freedesktop.org/show_bug.cgi?id=104782
  fdo#104873 https://bugs.freedesktop.org/show_bug.cgi?id=104873
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105458 https://bugs.freedesktop.org/show_bug.cgi?id=105458
  fdo#105682 https://bugs.freedesktop.org/show_bug.cgi?id=105682
  fdo#105763 https://bugs.freedesktop.org/show_bug.cgi?id=105763
  fdo#105957 https://bugs.freedesktop.org/show_bug.cgi?id=105957
  fdo#106538 https://bugs.freedesktop.org/show_bug.cgi?id=106538
  fdo#107773 https://bugs.freedesktop.org/show_bug.cgi?id=107773
  fdo#107847 https://bugs.freedesktop.org/show_bug.cgi?id=107847
  fdo#107937 https://bugs.freedesktop.org/show_bug.cgi?id=107937
  fdo#107956 https://bugs.freedesktop.org/show_bug.cgi?id=107956
  fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145
  fdo#108147 https://bugs.freedesktop.org/show_bug.cgi?id=108147
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (6 -> 6) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4940 -> Patchwork_10379

  CI_DRM_4940: 52e884bb1328eaa05bd3ee5716d2b9821ab6bd68 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4670: 7e066794d2ea860f4199fd67549080de17b6b852 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10379: eca8408fd83c6e7f5fae375660a2b2269499f2b5 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10379/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
  2018-10-05 18:00 [PATCH] drm/i915: Stop calling intel_opregion unregister/register in suspend/resume Chris Wilson
                   ` (2 preceding siblings ...)
  2018-10-05 23:59 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-10-08  6:44 ` Jani Nikula
  2018-10-08 14:04   ` Imre Deak
  3 siblings, 1 reply; 6+ messages in thread
From: Jani Nikula @ 2018-10-08  6:44 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx

On Fri, 05 Oct 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> If we reduce the suspend function for intel_opregion to do the minimum
> required, the resume function can also do the simple task of notifier
> the ACPI bios that we are back. This avoid some nasty restrictions on
> the likes of register_acpi_notifier() that are not allowed during the
> early phase of resume.

Something like this has been on the back of my mind for a long time, but
never got around to it. Couple of nitpicks/observations inline.

>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.c       |   9 +-
>  drivers/gpu/drm/i915/intel_opregion.c | 155 +++++++++++++++-----------
>  drivers/gpu/drm/i915/intel_opregion.h |  15 +++
>  3 files changed, 108 insertions(+), 71 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 193023427b40..9b0887746bac 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -1919,9 +1919,7 @@ static int i915_drm_suspend(struct drm_device *dev)
>  	i915_save_state(dev_priv);
>  
>  	opregion_target_state = suspend_to_idle(dev_priv) ? PCI_D1 : PCI_D3cold;
> -	intel_opregion_notify_adapter(dev_priv, opregion_target_state);
> -
> -	intel_opregion_unregister(dev_priv);
> +	intel_opregion_suspend(dev_priv, opregion_target_state);
>  
>  	intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED, true);
>  
> @@ -2040,7 +2038,6 @@ static int i915_drm_resume(struct drm_device *dev)
>  
>  	i915_restore_state(dev_priv);
>  	intel_pps_unlock_regs_wa(dev_priv);
> -	intel_opregion_setup(dev_priv);
>  
>  	intel_init_pch_refclk(dev_priv);
>  
> @@ -2082,12 +2079,10 @@ static int i915_drm_resume(struct drm_device *dev)
>  	 * */
>  	intel_hpd_init(dev_priv);
>  
> -	intel_opregion_register(dev_priv);
> +	intel_opregion_resume(dev_priv);
>  
>  	intel_fbdev_set_suspend(dev, FBINFO_STATE_RUNNING, false);
>  
> -	intel_opregion_notify_adapter(dev_priv, PCI_D0);
> -
>  	intel_power_domains_enable(dev_priv);
>  
>  	enable_rpm_wakeref_asserts(dev_priv);
> diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
> index e034b4166d32..379e8c64a248 100644
> --- a/drivers/gpu/drm/i915/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/intel_opregion.c
> @@ -773,70 +773,6 @@ static void intel_setup_cadls(struct drm_i915_private *dev_priv)
>  		opregion->acpi->cadl[i] = 0;
>  }
>  
> -void intel_opregion_register(struct drm_i915_private *dev_priv)
> -{
> -	struct intel_opregion *opregion = &dev_priv->opregion;
> -
> -	if (!opregion->header)
> -		return;
> -
> -	if (opregion->acpi) {
> -		intel_didl_outputs(dev_priv);
> -		intel_setup_cadls(dev_priv);
> -
> -		/* Notify BIOS we are ready to handle ACPI video ext notifs.
> -		 * Right now, all the events are handled by the ACPI video module.
> -		 * We don't actually need to do anything with them. */
> -		opregion->acpi->csts = 0;
> -		opregion->acpi->drdy = 1;
> -
> -		opregion->acpi_notifier.notifier_call = intel_opregion_video_event;
> -		register_acpi_notifier(&opregion->acpi_notifier);
> -	}
> -
> -	if (opregion->asle) {
> -		opregion->asle->tche = ASLE_TCHE_BLC_EN;
> -		opregion->asle->ardy = ASLE_ARDY_READY;
> -	}
> -}
> -
> -void intel_opregion_unregister(struct drm_i915_private *dev_priv)
> -{
> -	struct intel_opregion *opregion = &dev_priv->opregion;
> -
> -	if (!opregion->header)
> -		return;
> -
> -	if (opregion->asle)
> -		opregion->asle->ardy = ASLE_ARDY_NOT_READY;
> -
> -	cancel_work_sync(&dev_priv->opregion.asle_work);
> -
> -	if (opregion->acpi) {
> -		opregion->acpi->drdy = 0;
> -
> -		unregister_acpi_notifier(&opregion->acpi_notifier);
> -		opregion->acpi_notifier.notifier_call = NULL;
> -	}
> -
> -	/* just clear all opregion memory pointers now */
> -	memunmap(opregion->header);
> -	if (opregion->rvda) {
> -		memunmap(opregion->rvda);
> -		opregion->rvda = NULL;
> -	}
> -	if (opregion->vbt_firmware) {
> -		kfree(opregion->vbt_firmware);
> -		opregion->vbt_firmware = NULL;
> -	}
> -	opregion->header = NULL;
> -	opregion->acpi = NULL;
> -	opregion->swsci = NULL;
> -	opregion->asle = NULL;
> -	opregion->vbt = NULL;
> -	opregion->lid_state = NULL;
> -}
> -
>  static void swsci_setup(struct drm_i915_private *dev_priv)
>  {
>  	struct intel_opregion *opregion = &dev_priv->opregion;
> @@ -1115,3 +1051,94 @@ intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
>  
>  	return ret - 1;
>  }
> +
> +void intel_opregion_register(struct drm_i915_private *i915)
> +{
> +	struct intel_opregion *opregion = &i915->opregion;
> +
> +	if (!opregion->header)
> +		return;
> +
> +	if (opregion->acpi) {
> +		opregion->acpi_notifier.notifier_call = intel_opregion_video_event;
> +		register_acpi_notifier(&opregion->acpi_notifier);
> +	}
> +
> +	intel_opregion_resume(i915);
> +}
> +
> +void intel_opregion_resume(struct drm_i915_private *i915)
> +{
> +	struct intel_opregion *opregion = &i915->opregion;
> +
> +	if (!opregion->header)
> +		return;
> +
> +	if (opregion->acpi) {
> +		intel_didl_outputs(i915);
> +		intel_setup_cadls(i915);
> +
> +		/* Notify BIOS we are ready to handle ACPI video ext notifs.
> +		 * Right now, all the events are handled by the ACPI video module.
> +		 * We don't actually need to do anything with them. */
> +		opregion->acpi->csts = 0;
> +		opregion->acpi->drdy = 1;
> +	}
> +
> +	if (opregion->asle) {
> +		opregion->asle->tche = ASLE_TCHE_BLC_EN;
> +		opregion->asle->ardy = ASLE_ARDY_READY;
> +	}
> +
> +	intel_opregion_notify_adapter(i915, PCI_D0);
> +}
> +
> +void intel_opregion_suspend(struct drm_i915_private *i915, pci_power_t state)
> +{
> +	struct intel_opregion *opregion = &i915->opregion;
> +
> +	if (!opregion->header)
> +		return;
> +
> +	if (opregion->asle)
> +		opregion->asle->ardy = ASLE_ARDY_NOT_READY;
> +
> +	cancel_work_sync(&i915->opregion.asle_work);
> +
> +	if (opregion->acpi)
> +		opregion->acpi->drdy = 0;
> +
> +	intel_opregion_notify_adapter(i915, state);

The order between drdy clear and notify changes. Depends on the BIOS
whether that has any significance, i.e. I have no clue. If you think the
reordering is justified, please split it out to a separate patch. Or
just drop the order change completely. With that,

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

Side note, it would seem like drdy clear should happen before canceling
the work. In theory that should block new asle interrupts. But that's
another change anyway, and perhaps not worth the risk.

> +}
> +
> +void intel_opregion_unregister(struct drm_i915_private *i915)
> +{
> +	struct intel_opregion *opregion = &i915->opregion;
> +
> +	intel_opregion_suspend(i915, PCI_D1);
> +
> +	if (!opregion->header)
> +		return;
> +
> +	if (opregion->acpi_notifier.notifier_call) {
> +		unregister_acpi_notifier(&opregion->acpi_notifier);
> +		opregion->acpi_notifier.notifier_call = NULL;
> +	}
> +
> +	/* just clear all opregion memory pointers now */
> +	memunmap(opregion->header);
> +	if (opregion->rvda) {
> +		memunmap(opregion->rvda);
> +		opregion->rvda = NULL;
> +	}
> +	if (opregion->vbt_firmware) {
> +		kfree(opregion->vbt_firmware);
> +		opregion->vbt_firmware = NULL;
> +	}
> +	opregion->header = NULL;
> +	opregion->acpi = NULL;
> +	opregion->swsci = NULL;
> +	opregion->asle = NULL;
> +	opregion->vbt = NULL;
> +	opregion->lid_state = NULL;

Side note #2, this patch highlights (but does not change) how we have
two init functions setup and register undone by a single unregister
function. The asymmetry has always bugged me, but it's no fault of this
patch.

> +}
> diff --git a/drivers/gpu/drm/i915/intel_opregion.h b/drivers/gpu/drm/i915/intel_opregion.h
> index e8498a8cda3d..d84b6d2d2fae 100644
> --- a/drivers/gpu/drm/i915/intel_opregion.h
> +++ b/drivers/gpu/drm/i915/intel_opregion.h
> @@ -57,8 +57,14 @@ struct intel_opregion {
>  #ifdef CONFIG_ACPI
>  
>  int intel_opregion_setup(struct drm_i915_private *dev_priv);
> +
>  void intel_opregion_register(struct drm_i915_private *dev_priv);
>  void intel_opregion_unregister(struct drm_i915_private *dev_priv);
> +
> +void intel_opregion_resume(struct drm_i915_private *dev_priv);
> +void intel_opregion_suspend(struct drm_i915_private *dev_priv,
> +			    pci_power_t state);
> +
>  void intel_opregion_asle_intr(struct drm_i915_private *dev_priv);
>  int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>  				  bool enable);
> @@ -81,6 +87,15 @@ static inline void intel_opregion_unregister(struct drm_i915_private *dev_priv)
>  {
>  }
>  
> +void intel_opregion_resume(struct drm_i915_private *dev_priv)
> +{
> +}
> +
> +void intel_opregion_suspend(struct drm_i915_private *dev_priv,
> +			    pci_power_t state)
> +{
> +}
> +
>  static inline void intel_opregion_asle_intr(struct drm_i915_private *dev_priv)
>  {
>  }

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Stop calling intel_opregion unregister/register in suspend/resume
  2018-10-08  6:44 ` [PATCH] " Jani Nikula
@ 2018-10-08 14:04   ` Imre Deak
  0 siblings, 0 replies; 6+ messages in thread
From: Imre Deak @ 2018-10-08 14:04 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Mon, Oct 08, 2018 at 09:44:08AM +0300, Jani Nikula wrote:
> On Fri, 05 Oct 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> > If we reduce the suspend function for intel_opregion to do the minimum
> > required, the resume function can also do the simple task of notifier
> > the ACPI bios that we are back. This avoid some nasty restrictions on
> > the likes of register_acpi_notifier() that are not allowed during the
> > early phase of resume.
> 
> Something like this has been on the back of my mind for a long time, but
> never got around to it. Couple of nitpicks/observations inline.
> 
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Imre Deak <imre.deak@intel.com>
> > Cc: Jani Nikula <jani.nikula@intel.com>

Simplifies the task of moving some steps from the suspend/resume hooks
to the suspend_late/resume_early hooks, which is needed by the audio/
CDCLK workaround we are working towards, so:

Acked-by: Imre Deak <imre.deak@intel.com>

> > ---
> >  drivers/gpu/drm/i915/i915_drv.c       |   9 +-
> >  drivers/gpu/drm/i915/intel_opregion.c | 155 +++++++++++++++-----------
> >  drivers/gpu/drm/i915/intel_opregion.h |  15 +++
> >  3 files changed, 108 insertions(+), 71 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > index 193023427b40..9b0887746bac 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -1919,9 +1919,7 @@ static int i915_drm_suspend(struct drm_device *dev)
> >  	i915_save_state(dev_priv);
> >  
> >  	opregion_target_state = suspend_to_idle(dev_priv) ? PCI_D1 : PCI_D3cold;
> > -	intel_opregion_notify_adapter(dev_priv, opregion_target_state);
> > -
> > -	intel_opregion_unregister(dev_priv);
> > +	intel_opregion_suspend(dev_priv, opregion_target_state);
> >  
> >  	intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED, true);
> >  
> > @@ -2040,7 +2038,6 @@ static int i915_drm_resume(struct drm_device *dev)
> >  
> >  	i915_restore_state(dev_priv);
> >  	intel_pps_unlock_regs_wa(dev_priv);
> > -	intel_opregion_setup(dev_priv);
> >  
> >  	intel_init_pch_refclk(dev_priv);
> >  
> > @@ -2082,12 +2079,10 @@ static int i915_drm_resume(struct drm_device *dev)
> >  	 * */
> >  	intel_hpd_init(dev_priv);
> >  
> > -	intel_opregion_register(dev_priv);
> > +	intel_opregion_resume(dev_priv);
> >  
> >  	intel_fbdev_set_suspend(dev, FBINFO_STATE_RUNNING, false);
> >  
> > -	intel_opregion_notify_adapter(dev_priv, PCI_D0);
> > -
> >  	intel_power_domains_enable(dev_priv);
> >  
> >  	enable_rpm_wakeref_asserts(dev_priv);
> > diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
> > index e034b4166d32..379e8c64a248 100644
> > --- a/drivers/gpu/drm/i915/intel_opregion.c
> > +++ b/drivers/gpu/drm/i915/intel_opregion.c
> > @@ -773,70 +773,6 @@ static void intel_setup_cadls(struct drm_i915_private *dev_priv)
> >  		opregion->acpi->cadl[i] = 0;
> >  }
> >  
> > -void intel_opregion_register(struct drm_i915_private *dev_priv)
> > -{
> > -	struct intel_opregion *opregion = &dev_priv->opregion;
> > -
> > -	if (!opregion->header)
> > -		return;
> > -
> > -	if (opregion->acpi) {
> > -		intel_didl_outputs(dev_priv);
> > -		intel_setup_cadls(dev_priv);
> > -
> > -		/* Notify BIOS we are ready to handle ACPI video ext notifs.
> > -		 * Right now, all the events are handled by the ACPI video module.
> > -		 * We don't actually need to do anything with them. */
> > -		opregion->acpi->csts = 0;
> > -		opregion->acpi->drdy = 1;
> > -
> > -		opregion->acpi_notifier.notifier_call = intel_opregion_video_event;
> > -		register_acpi_notifier(&opregion->acpi_notifier);
> > -	}
> > -
> > -	if (opregion->asle) {
> > -		opregion->asle->tche = ASLE_TCHE_BLC_EN;
> > -		opregion->asle->ardy = ASLE_ARDY_READY;
> > -	}
> > -}
> > -
> > -void intel_opregion_unregister(struct drm_i915_private *dev_priv)
> > -{
> > -	struct intel_opregion *opregion = &dev_priv->opregion;
> > -
> > -	if (!opregion->header)
> > -		return;
> > -
> > -	if (opregion->asle)
> > -		opregion->asle->ardy = ASLE_ARDY_NOT_READY;
> > -
> > -	cancel_work_sync(&dev_priv->opregion.asle_work);
> > -
> > -	if (opregion->acpi) {
> > -		opregion->acpi->drdy = 0;
> > -
> > -		unregister_acpi_notifier(&opregion->acpi_notifier);
> > -		opregion->acpi_notifier.notifier_call = NULL;
> > -	}
> > -
> > -	/* just clear all opregion memory pointers now */
> > -	memunmap(opregion->header);
> > -	if (opregion->rvda) {
> > -		memunmap(opregion->rvda);
> > -		opregion->rvda = NULL;
> > -	}
> > -	if (opregion->vbt_firmware) {
> > -		kfree(opregion->vbt_firmware);
> > -		opregion->vbt_firmware = NULL;
> > -	}
> > -	opregion->header = NULL;
> > -	opregion->acpi = NULL;
> > -	opregion->swsci = NULL;
> > -	opregion->asle = NULL;
> > -	opregion->vbt = NULL;
> > -	opregion->lid_state = NULL;
> > -}
> > -
> >  static void swsci_setup(struct drm_i915_private *dev_priv)
> >  {
> >  	struct intel_opregion *opregion = &dev_priv->opregion;
> > @@ -1115,3 +1051,94 @@ intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
> >  
> >  	return ret - 1;
> >  }
> > +
> > +void intel_opregion_register(struct drm_i915_private *i915)
> > +{
> > +	struct intel_opregion *opregion = &i915->opregion;
> > +
> > +	if (!opregion->header)
> > +		return;
> > +
> > +	if (opregion->acpi) {
> > +		opregion->acpi_notifier.notifier_call = intel_opregion_video_event;
> > +		register_acpi_notifier(&opregion->acpi_notifier);
> > +	}
> > +
> > +	intel_opregion_resume(i915);
> > +}
> > +
> > +void intel_opregion_resume(struct drm_i915_private *i915)
> > +{
> > +	struct intel_opregion *opregion = &i915->opregion;
> > +
> > +	if (!opregion->header)
> > +		return;
> > +
> > +	if (opregion->acpi) {
> > +		intel_didl_outputs(i915);
> > +		intel_setup_cadls(i915);
> > +
> > +		/* Notify BIOS we are ready to handle ACPI video ext notifs.
> > +		 * Right now, all the events are handled by the ACPI video module.
> > +		 * We don't actually need to do anything with them. */
> > +		opregion->acpi->csts = 0;
> > +		opregion->acpi->drdy = 1;
> > +	}
> > +
> > +	if (opregion->asle) {
> > +		opregion->asle->tche = ASLE_TCHE_BLC_EN;
> > +		opregion->asle->ardy = ASLE_ARDY_READY;
> > +	}
> > +
> > +	intel_opregion_notify_adapter(i915, PCI_D0);
> > +}
> > +
> > +void intel_opregion_suspend(struct drm_i915_private *i915, pci_power_t state)
> > +{
> > +	struct intel_opregion *opregion = &i915->opregion;
> > +
> > +	if (!opregion->header)
> > +		return;
> > +
> > +	if (opregion->asle)
> > +		opregion->asle->ardy = ASLE_ARDY_NOT_READY;
> > +
> > +	cancel_work_sync(&i915->opregion.asle_work);
> > +
> > +	if (opregion->acpi)
> > +		opregion->acpi->drdy = 0;
> > +
> > +	intel_opregion_notify_adapter(i915, state);
> 
> The order between drdy clear and notify changes. Depends on the BIOS
> whether that has any significance, i.e. I have no clue. If you think the
> reordering is justified, please split it out to a separate patch. Or
> just drop the order change completely. With that,
> 
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> 
> Side note, it would seem like drdy clear should happen before canceling
> the work. In theory that should block new asle interrupts. But that's
> another change anyway, and perhaps not worth the risk.
> 
> > +}
> > +
> > +void intel_opregion_unregister(struct drm_i915_private *i915)
> > +{
> > +	struct intel_opregion *opregion = &i915->opregion;
> > +
> > +	intel_opregion_suspend(i915, PCI_D1);
> > +
> > +	if (!opregion->header)
> > +		return;
> > +
> > +	if (opregion->acpi_notifier.notifier_call) {
> > +		unregister_acpi_notifier(&opregion->acpi_notifier);
> > +		opregion->acpi_notifier.notifier_call = NULL;
> > +	}
> > +
> > +	/* just clear all opregion memory pointers now */
> > +	memunmap(opregion->header);
> > +	if (opregion->rvda) {
> > +		memunmap(opregion->rvda);
> > +		opregion->rvda = NULL;
> > +	}
> > +	if (opregion->vbt_firmware) {
> > +		kfree(opregion->vbt_firmware);
> > +		opregion->vbt_firmware = NULL;
> > +	}
> > +	opregion->header = NULL;
> > +	opregion->acpi = NULL;
> > +	opregion->swsci = NULL;
> > +	opregion->asle = NULL;
> > +	opregion->vbt = NULL;
> > +	opregion->lid_state = NULL;
> 
> Side note #2, this patch highlights (but does not change) how we have
> two init functions setup and register undone by a single unregister
> function. The asymmetry has always bugged me, but it's no fault of this
> patch.
> 
> > +}
> > diff --git a/drivers/gpu/drm/i915/intel_opregion.h b/drivers/gpu/drm/i915/intel_opregion.h
> > index e8498a8cda3d..d84b6d2d2fae 100644
> > --- a/drivers/gpu/drm/i915/intel_opregion.h
> > +++ b/drivers/gpu/drm/i915/intel_opregion.h
> > @@ -57,8 +57,14 @@ struct intel_opregion {
> >  #ifdef CONFIG_ACPI
> >  
> >  int intel_opregion_setup(struct drm_i915_private *dev_priv);
> > +
> >  void intel_opregion_register(struct drm_i915_private *dev_priv);
> >  void intel_opregion_unregister(struct drm_i915_private *dev_priv);
> > +
> > +void intel_opregion_resume(struct drm_i915_private *dev_priv);
> > +void intel_opregion_suspend(struct drm_i915_private *dev_priv,
> > +			    pci_power_t state);
> > +
> >  void intel_opregion_asle_intr(struct drm_i915_private *dev_priv);
> >  int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
> >  				  bool enable);
> > @@ -81,6 +87,15 @@ static inline void intel_opregion_unregister(struct drm_i915_private *dev_priv)
> >  {
> >  }
> >  
> > +void intel_opregion_resume(struct drm_i915_private *dev_priv)
> > +{
> > +}
> > +
> > +void intel_opregion_suspend(struct drm_i915_private *dev_priv,
> > +			    pci_power_t state)
> > +{
> > +}
> > +
> >  static inline void intel_opregion_asle_intr(struct drm_i915_private *dev_priv)
> >  {
> >  }
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-10-08 14:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-05 18:00 [PATCH] drm/i915: Stop calling intel_opregion unregister/register in suspend/resume Chris Wilson
2018-10-05 18:18 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2018-10-05 18:42 ` ✓ Fi.CI.BAT: success " Patchwork
2018-10-05 23:59 ` ✓ Fi.CI.IGT: " Patchwork
2018-10-08  6:44 ` [PATCH] " Jani Nikula
2018-10-08 14:04   ` Imre Deak

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.