Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle
@ 2018-06-22  8:59 Tarun Vyas
  2018-06-22  9:25 ` ✓ Fi.CI.BAT: success for drm/i915/psr: Lockless version of psr_wait_for_idle (rev4) Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Tarun Vyas @ 2018-06-22  8:59 UTC (permalink / raw)
  To: intel-gfx; +Cc: dhinakaran.pandiyan, rodrigo.vivi

This is a lockless version of the exisiting psr_wait_for_idle().
We want to wait for PSR to idle out inside intel_pipe_update_start.
At the time of a pipe update, we should never race with any psr
enable or disable code, which is a part of crtc enable/disable. So,
we can live w/o taking any psr locks at all.
The follow up patch will use this lockless wait inside pipe_update_
start to wait for PSR to idle out before checking for vblank evasion.

Even if psr is never enabled, psr2_enabled will be false and this
function will wait for PSR1 to idle out, which should just return
immediately, so a very short (~1-2 usec) wait for cases where PSR
is disabled.

v2: Add comment to explain the 25msec timeout (DK)

v3: Rename psr_wait_for_idle to __psr_wait_for_idle_locked to avoid
    naming conflicts and propagate err (if any) to the caller (Chris)

Signed-off-by: Tarun Vyas <tarun.vyas@intel.com>
---
 drivers/gpu/drm/i915/intel_drv.h |  1 +
 drivers/gpu/drm/i915/intel_psr.c | 25 +++++++++++++++++++++++--
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 578346b8d7e2..9cb2b8afdd3e 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1920,6 +1920,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
 			      struct intel_crtc_state *crtc_state);
 void intel_psr_irq_control(struct drm_i915_private *dev_priv, bool debug);
 void intel_psr_irq_handler(struct drm_i915_private *dev_priv, u32 psr_iir);
+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv);
 
 /* intel_runtime_pm.c */
 int intel_power_domains_init(struct drm_i915_private *);
diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index aea81ace854b..41e6962923ae 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -757,7 +757,28 @@ void intel_psr_disable(struct intel_dp *intel_dp,
 	cancel_work_sync(&dev_priv->psr.work);
 }
 
-static bool psr_wait_for_idle(struct drm_i915_private *dev_priv)
+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv)
+{
+	i915_reg_t reg;
+	u32 mask;
+
+	if (dev_priv->psr.psr2_enabled) {
+		reg = EDP_PSR2_STATUS;
+		mask = EDP_PSR2_STATUS_STATE_MASK;
+	} else {
+		reg = EDP_PSR_STATUS;
+		mask = EDP_PSR_STATUS_STATE_MASK;
+	}
+
+	/*
+	 * The  25 msec timeout accounts for a frame @ 60Hz refresh rate,
+	 * exit training an aux handshake time.
+	 */
+	return intel_wait_for_register(dev_priv, reg, mask,
+				       EDP_PSR_STATUS_STATE_IDLE, 25);
+}
+
+static bool __psr_wait_for_idle_locked(struct drm_i915_private *dev_priv)
 {
 	struct intel_dp *intel_dp;
 	i915_reg_t reg;
@@ -803,7 +824,7 @@ static void intel_psr_work(struct work_struct *work)
 	 * PSR might take some time to get fully disabled
 	 * and be ready for re-enable.
 	 */
-	if (!psr_wait_for_idle(dev_priv))
+	if (!__psr_wait_for_idle_locked(dev_priv))
 		goto unlock;
 
 	/*
-- 
2.13.5

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

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

* ✓ Fi.CI.BAT: success for drm/i915/psr: Lockless version of psr_wait_for_idle (rev4)
  2018-06-22  8:59 [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle Tarun Vyas
@ 2018-06-22  9:25 ` Patchwork
  2018-06-22 15:53 ` ✓ Fi.CI.IGT: " Patchwork
  2018-06-22 17:42 ` [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle Shaikh, Azhar
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-06-22  9:25 UTC (permalink / raw)
  To: Tarun Vyas; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/psr: Lockless version of psr_wait_for_idle (rev4)
URL   : https://patchwork.freedesktop.org/series/45209/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4368 -> Patchwork_9396 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/45209/revisions/4/mbox/

== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_suspend@basic-s4-devices:
      fi-snb-2520m:       PASS -> FAIL (fdo#106825)

    
    ==== Possible fixes ====

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-bxt-dsi:         INCOMPLETE (fdo#103927) -> PASS

    
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#106825 https://bugs.freedesktop.org/show_bug.cgi?id=106825


== Participating hosts (43 -> 37) ==

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-glk-dsi fi-bsw-cyan fi-ctg-p8600 fi-kbl-x1275 


== Build changes ==

    * Linux: CI_DRM_4368 -> Patchwork_9396

  CI_DRM_4368: f9f621dc095a8bfd2157fba018ddb542260d8daa @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4528: 6be300d405de5974b262e8b93a445be4ac618e6a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9396: ab14d516a70c699496decd8b1ce4298325c37228 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

ab14d516a70c drm/i915/psr: Lockless version of psr_wait_for_idle

== Logs ==

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

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

* ✓ Fi.CI.IGT: success for drm/i915/psr: Lockless version of psr_wait_for_idle (rev4)
  2018-06-22  8:59 [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle Tarun Vyas
  2018-06-22  9:25 ` ✓ Fi.CI.BAT: success for drm/i915/psr: Lockless version of psr_wait_for_idle (rev4) Patchwork
@ 2018-06-22 15:53 ` Patchwork
  2018-06-22 17:42 ` [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle Shaikh, Azhar
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-06-22 15:53 UTC (permalink / raw)
  To: Tarun Vyas; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/psr: Lockless version of psr_wait_for_idle (rev4)
URL   : https://patchwork.freedesktop.org/series/45209/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4368_full -> Patchwork_9396_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9396_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9396_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_9396_full:

  === IGT changes ===

    ==== Warnings ====

    igt@gem_mocs_settings@mocs-rc6-blt:
      shard-kbl:          PASS -> SKIP +1

    igt@gem_mocs_settings@mocs-rc6-bsd1:
      shard-kbl:          SKIP -> PASS +1

    
== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_gtt:
      shard-kbl:          PASS -> FAIL (fdo#105347)

    igt@drv_selftest@live_hangcheck:
      shard-apl:          PASS -> DMESG-FAIL (fdo#106947, fdo#106560)

    igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
      shard-glk:          PASS -> FAIL (fdo#105454, fdo#106509)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      shard-glk:          PASS -> FAIL (fdo#103375)

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

    
    ==== Possible fixes ====

    igt@drv_selftest@live_gtt:
      shard-glk:          INCOMPLETE (k.org#198133, fdo#103359) -> PASS

    igt@gem_workarounds@suspend-resume-context:
      shard-apl:          FAIL (fdo#103375) -> PASS +1

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

    igt@kms_flip@2x-plain-flip-ts-check-interruptible:
      shard-glk:          FAIL (fdo#100368) -> PASS

    igt@kms_flip@flip-vs-expired-vblank:
      shard-glk:          FAIL (fdo#102887) -> PASS

    igt@kms_flip@modeset-vs-vblank-race-interruptible:
      shard-glk:          FAIL (fdo#103060) -> PASS

    igt@kms_flip_tiling@flip-y-tiled:
      shard-glk:          FAIL (fdo#103822, fdo#104724) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
  fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
  fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
  fdo#105347 https://bugs.freedesktop.org/show_bug.cgi?id=105347
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105454 https://bugs.freedesktop.org/show_bug.cgi?id=105454
  fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4368 -> Patchwork_9396

  CI_DRM_4368: f9f621dc095a8bfd2157fba018ddb542260d8daa @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4528: 6be300d405de5974b262e8b93a445be4ac618e6a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9396: ab14d516a70c699496decd8b1ce4298325c37228 @ 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_9396/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle
  2018-06-22  8:59 [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle Tarun Vyas
  2018-06-22  9:25 ` ✓ Fi.CI.BAT: success for drm/i915/psr: Lockless version of psr_wait_for_idle (rev4) Patchwork
  2018-06-22 15:53 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-06-22 17:42 ` Shaikh, Azhar
  2018-06-22 17:45   ` Shaikh, Azhar
  2 siblings, 1 reply; 5+ messages in thread
From: Shaikh, Azhar @ 2018-06-22 17:42 UTC (permalink / raw)
  To: Vyas, Tarun, intel-gfx@lists.freedesktop.org
  Cc: Pandiyan, Dhinakaran, Vivi, Rodrigo



>-----Original Message-----
>From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf Of
>Tarun Vyas
>Sent: Friday, June 22, 2018 1:59 AM
>To: intel-gfx@lists.freedesktop.org
>Cc: Pandiyan, Dhinakaran <dhinakaran.pandiyan@intel.com>; Vivi, Rodrigo
><rodrigo.vivi@intel.com>
>Subject: [Intel-gfx] [PATCH v3] drm/i915/psr: Lockless version of
>psr_wait_for_idle
>
>This is a lockless version of the exisiting psr_wait_for_idle().
>We want to wait for PSR to idle out inside intel_pipe_update_start.
>At the time of a pipe update, we should never race with any psr enable or
>disable code, which is a part of crtc enable/disable. So, we can live w/o taking
>any psr locks at all.
>The follow up patch will use this lockless wait inside pipe_update_ start to
>wait for PSR to idle out before checking for vblank evasion.
>
>Even if psr is never enabled, psr2_enabled will be false and this function will
>wait for PSR1 to idle out, which should just return immediately, so a very short
>(~1-2 usec) wait for cases where PSR is disabled.
>
>v2: Add comment to explain the 25msec timeout (DK)
>
>v3: Rename psr_wait_for_idle to __psr_wait_for_idle_locked to avoid
>    naming conflicts and propagate err (if any) to the caller (Chris)
>
>Signed-off-by: Tarun Vyas <tarun.vyas@intel.com>
>---
> drivers/gpu/drm/i915/intel_drv.h |  1 +  drivers/gpu/drm/i915/intel_psr.c |
>25 +++++++++++++++++++++++--
> 2 files changed, 24 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/intel_drv.h
>b/drivers/gpu/drm/i915/intel_drv.h
>index 578346b8d7e2..9cb2b8afdd3e 100644
>--- a/drivers/gpu/drm/i915/intel_drv.h
>+++ b/drivers/gpu/drm/i915/intel_drv.h
>@@ -1920,6 +1920,7 @@ void intel_psr_compute_config(struct intel_dp
>*intel_dp,
> 			      struct intel_crtc_state *crtc_state);  void
>intel_psr_irq_control(struct drm_i915_private *dev_priv, bool debug);  void
>intel_psr_irq_handler(struct drm_i915_private *dev_priv, u32 psr_iir);
>+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv);
>
> /* intel_runtime_pm.c */
> int intel_power_domains_init(struct drm_i915_private *); diff --git
>a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
>index aea81ace854b..41e6962923ae 100644
>--- a/drivers/gpu/drm/i915/intel_psr.c
>+++ b/drivers/gpu/drm/i915/intel_psr.c
>@@ -757,7 +757,28 @@ void intel_psr_disable(struct intel_dp *intel_dp,
> 	cancel_work_sync(&dev_priv->psr.work);
> }
>
>-static bool psr_wait_for_idle(struct drm_i915_private *dev_priv)
>+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv) {


I think you should upload this patch and https://patchwork.freedesktop.org/patch/231033/  as a series.
intel_psr_wait_for_idle_lockless() does not get called anywhere in this patch.

>+	i915_reg_t reg;
>+	u32 mask;
>+
>+	if (dev_priv->psr.psr2_enabled) {
>+		reg = EDP_PSR2_STATUS;
>+		mask = EDP_PSR2_STATUS_STATE_MASK;
>+	} else {
>+		reg = EDP_PSR_STATUS;
>+		mask = EDP_PSR_STATUS_STATE_MASK;
>+	}
>+
>+	/*
>+	 * The  25 msec timeout accounts for a frame @ 60Hz refresh rate,
>+	 * exit training an aux handshake time.
>+	 */
>+	return intel_wait_for_register(dev_priv, reg, mask,
>+				       EDP_PSR_STATUS_STATE_IDLE, 25); }
>+
>+static bool __psr_wait_for_idle_locked(struct drm_i915_private
>+*dev_priv)
> {
> 	struct intel_dp *intel_dp;
> 	i915_reg_t reg;
>@@ -803,7 +824,7 @@ static void intel_psr_work(struct work_struct *work)
> 	 * PSR might take some time to get fully disabled
> 	 * and be ready for re-enable.
> 	 */
>-	if (!psr_wait_for_idle(dev_priv))
>+	if (!__psr_wait_for_idle_locked(dev_priv))
> 		goto unlock;
>
> 	/*
>--
>2.13.5
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

* Re: [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle
  2018-06-22 17:42 ` [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle Shaikh, Azhar
@ 2018-06-22 17:45   ` Shaikh, Azhar
  0 siblings, 0 replies; 5+ messages in thread
From: Shaikh, Azhar @ 2018-06-22 17:45 UTC (permalink / raw)
  To: Shaikh, Azhar, Vyas, Tarun, intel-gfx@lists.freedesktop.org
  Cc: Pandiyan, Dhinakaran, Vivi, Rodrigo



>-----Original Message-----
>From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf Of
>Shaikh, Azhar
>Sent: Friday, June 22, 2018 10:43 AM
>To: Vyas, Tarun <tarun.vyas@intel.com>; intel-gfx@lists.freedesktop.org
>Cc: Pandiyan, Dhinakaran <dhinakaran.pandiyan@intel.com>; Vivi, Rodrigo
><rodrigo.vivi@intel.com>
>Subject: Re: [Intel-gfx] [PATCH v3] drm/i915/psr: Lockless version of
>psr_wait_for_idle
>
>
>
>>-----Original Message-----
>>From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On
>>Behalf Of Tarun Vyas
>>Sent: Friday, June 22, 2018 1:59 AM
>>To: intel-gfx@lists.freedesktop.org
>>Cc: Pandiyan, Dhinakaran <dhinakaran.pandiyan@intel.com>; Vivi, Rodrigo
>><rodrigo.vivi@intel.com>
>>Subject: [Intel-gfx] [PATCH v3] drm/i915/psr: Lockless version of
>>psr_wait_for_idle
>>
>>This is a lockless version of the exisiting psr_wait_for_idle().
>>We want to wait for PSR to idle out inside intel_pipe_update_start.
>>At the time of a pipe update, we should never race with any psr enable
>>or disable code, which is a part of crtc enable/disable. So, we can
>>live w/o taking any psr locks at all.
>>The follow up patch will use this lockless wait inside pipe_update_
>>start to wait for PSR to idle out before checking for vblank evasion.
>>
>>Even if psr is never enabled, psr2_enabled will be false and this
>>function will wait for PSR1 to idle out, which should just return
>>immediately, so a very short
>>(~1-2 usec) wait for cases where PSR is disabled.
>>
>>v2: Add comment to explain the 25msec timeout (DK)
>>
>>v3: Rename psr_wait_for_idle to __psr_wait_for_idle_locked to avoid
>>    naming conflicts and propagate err (if any) to the caller (Chris)
>>
>>Signed-off-by: Tarun Vyas <tarun.vyas@intel.com>
>>---
>> drivers/gpu/drm/i915/intel_drv.h |  1 +
>>drivers/gpu/drm/i915/intel_psr.c |
>>25 +++++++++++++++++++++++--
>> 2 files changed, 24 insertions(+), 2 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/i915/intel_drv.h
>>b/drivers/gpu/drm/i915/intel_drv.h
>>index 578346b8d7e2..9cb2b8afdd3e 100644
>>--- a/drivers/gpu/drm/i915/intel_drv.h
>>+++ b/drivers/gpu/drm/i915/intel_drv.h
>>@@ -1920,6 +1920,7 @@ void intel_psr_compute_config(struct intel_dp
>>*intel_dp,
>> 			      struct intel_crtc_state *crtc_state);  void
>>intel_psr_irq_control(struct drm_i915_private *dev_priv, bool debug);
>>void intel_psr_irq_handler(struct drm_i915_private *dev_priv, u32
>>psr_iir);
>>+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv);
>>
>> /* intel_runtime_pm.c */
>> int intel_power_domains_init(struct drm_i915_private *); diff --git
>>a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
>>index aea81ace854b..41e6962923ae 100644
>>--- a/drivers/gpu/drm/i915/intel_psr.c
>>+++ b/drivers/gpu/drm/i915/intel_psr.c
>>@@ -757,7 +757,28 @@ void intel_psr_disable(struct intel_dp *intel_dp,
>> 	cancel_work_sync(&dev_priv->psr.work);
>> }
>>
>>-static bool psr_wait_for_idle(struct drm_i915_private *dev_priv)
>>+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv) {
>
>
>I think you should upload this patch and
>https://patchwork.freedesktop.org/patch/231033/  as a series.
>intel_psr_wait_for_idle_lockless() does not get called anywhere in this patch.

intel_psr_wait_for_idle() and not intel_psr_wait_for_idle_lockless() [ created a new function name trying to comment on v2 version of this patch ;) ]

>
>>+	i915_reg_t reg;
>>+	u32 mask;
>>+
>>+	if (dev_priv->psr.psr2_enabled) {
>>+		reg = EDP_PSR2_STATUS;
>>+		mask = EDP_PSR2_STATUS_STATE_MASK;
>>+	} else {
>>+		reg = EDP_PSR_STATUS;
>>+		mask = EDP_PSR_STATUS_STATE_MASK;
>>+	}
>>+
>>+	/*
>>+	 * The  25 msec timeout accounts for a frame @ 60Hz refresh rate,
>>+	 * exit training an aux handshake time.
>>+	 */
>>+	return intel_wait_for_register(dev_priv, reg, mask,
>>+				       EDP_PSR_STATUS_STATE_IDLE, 25); }
>>+
>>+static bool __psr_wait_for_idle_locked(struct drm_i915_private
>>+*dev_priv)
>> {
>> 	struct intel_dp *intel_dp;
>> 	i915_reg_t reg;
>>@@ -803,7 +824,7 @@ static void intel_psr_work(struct work_struct *work)
>> 	 * PSR might take some time to get fully disabled
>> 	 * and be ready for re-enable.
>> 	 */
>>-	if (!psr_wait_for_idle(dev_priv))
>>+	if (!__psr_wait_for_idle_locked(dev_priv))
>> 		goto unlock;
>>
>> 	/*
>>--
>>2.13.5
>>
>>_______________________________________________
>>Intel-gfx mailing list
>>Intel-gfx@lists.freedesktop.org
>>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>Regards,
>Azhar Shaikh
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2018-06-22 17:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-22  8:59 [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle Tarun Vyas
2018-06-22  9:25 ` ✓ Fi.CI.BAT: success for drm/i915/psr: Lockless version of psr_wait_for_idle (rev4) Patchwork
2018-06-22 15:53 ` ✓ Fi.CI.IGT: " Patchwork
2018-06-22 17:42 ` [PATCH v3] drm/i915/psr: Lockless version of psr_wait_for_idle Shaikh, Azhar
2018-06-22 17:45   ` Shaikh, Azhar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox