* [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update
@ 2018-07-09 21:28 Tarun Vyas
2018-07-09 21:46 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update (rev3) Patchwork
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Tarun Vyas @ 2018-07-09 21:28 UTC (permalink / raw)
To: intel-gfx; +Cc: dhinakaran.pandiyan, rodrigo.vivi
In commit "drm/i915: Wait for PSR exit before checking for vblank
evasion", the idea was to limit the PSR IDLE checks when PSR is
actually supported. While CAN_PSR does do that check, it doesn't
applies on a per-crtc basis. crtc_state->has_psr is a more granular
check that only applies to pipe(s) that have PSR enabled.
Currently, the driver supports PSR on port A + transcoder eDP, so
only pipe A will wait for PSR to go IDLE, as it should, and other
pipes should return immediately.
Without the has_psr check, non-PSR pipe_updates (pipe B/C in this
case), end up waiting on PSR pipe (pipe A in this case) to exit PSR,
which may incur substantial delays for non-PSR pipe updates alongwith
the fact the it doesn't makes any sense.
Fixes: a608987970b9 ("drm/i915: Wait for PSR exit before checking for
vblank evasion")
v2: Remove unnecessary parantheses, make checkpatch happy.
v3: Move the has_psr check to intel_psr_wait_for_idle and commit
message changes (DK).
Signed-off-by: Tarun Vyas <tarun.vyas@intel.com>
---
drivers/gpu/drm/i915/intel_drv.h | 2 +-
drivers/gpu/drm/i915/intel_psr.c | 5 ++++-
drivers/gpu/drm/i915/intel_sprite.c | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 61e715ddd0d5..3f7fbaeb1ee9 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1923,7 +1923,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
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);
void intel_psr_short_pulse(struct intel_dp *intel_dp);
-int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv);
+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv, const struct intel_crtc_state *crtc_state);
/* 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 23acc9ac8d4d..3691c857cc91 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -717,11 +717,14 @@ void intel_psr_disable(struct intel_dp *intel_dp,
cancel_work_sync(&dev_priv->psr.work);
}
-int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv)
+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv, const struct intel_crtc_state *crtc_state)
{
i915_reg_t reg;
u32 mask;
+ if(!crtc_state->has_psr)
+ return 0;
+
/*
* The sole user right now is intel_pipe_update_start(),
* which won't race with psr_enable/disable, which is
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 4990d6e84ddf..fcd96c52cf5b 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -118,7 +118,7 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
* VBL interrupts will start the PSR exit and prevent a PSR
* re-entry as well.
*/
- if (CAN_PSR(dev_priv) && intel_psr_wait_for_idle(dev_priv))
+ if (intel_psr_wait_for_idle(dev_priv, new_crtc_state))
DRM_ERROR("PSR idle timed out, atomic update may fail\n");
local_irq_disable();
--
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] 4+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update (rev3)
2018-07-09 21:28 [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update Tarun Vyas
@ 2018-07-09 21:46 ` Patchwork
2018-07-09 22:02 ` ✓ Fi.CI.BAT: success " Patchwork
2018-07-09 23:46 ` [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update Dhinakaran Pandiyan
2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2018-07-09 21:46 UTC (permalink / raw)
To: Tarun Vyas; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update (rev3)
URL : https://patchwork.freedesktop.org/series/46104/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
fc0aabf8423b drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update
-:41: WARNING:LONG_LINE: line over 100 characters
#41: FILE: drivers/gpu/drm/i915/intel_drv.h:1926:
+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv, const struct intel_crtc_state *crtc_state);
-:54: WARNING:LONG_LINE: line over 100 characters
#54: FILE: drivers/gpu/drm/i915/intel_psr.c:720:
+int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv, const struct intel_crtc_state *crtc_state)
-:59: ERROR:SPACING: space required before the open parenthesis '('
#59: FILE: drivers/gpu/drm/i915/intel_psr.c:725:
+ if(!crtc_state->has_psr)
total: 1 errors, 2 warnings, 0 checks, 31 lines checked
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update (rev3)
2018-07-09 21:28 [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update Tarun Vyas
2018-07-09 21:46 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update (rev3) Patchwork
@ 2018-07-09 22:02 ` Patchwork
2018-07-09 23:46 ` [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update Dhinakaran Pandiyan
2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2018-07-09 22:02 UTC (permalink / raw)
To: Tarun Vyas; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update (rev3)
URL : https://patchwork.freedesktop.org/series/46104/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4456 -> Patchwork_9598 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/46104/revisions/3/mbox/
== Known issues ==
Here are the changes found in Patchwork_9598 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@kms_frontbuffer_tracking@basic:
fi-hsw-peppy: PASS -> DMESG-FAIL (fdo#106103, fdo#102614)
fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103
== Participating hosts (47 -> 41) ==
Missing (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-kbl-8809g
== Build changes ==
* Linux: CI_DRM_4456 -> Patchwork_9598
CI_DRM_4456: bba42f28e4944fa7ac6ea7c2269504877faef851 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4544: 764160f214cd916ddb79408b9f28ac0ad2df40e0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9598: fc0aabf8423b2237296a5ad6e4b8ecee50cee64b @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
fc0aabf8423b drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9598/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update
2018-07-09 21:28 [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update Tarun Vyas
2018-07-09 21:46 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update (rev3) Patchwork
2018-07-09 22:02 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-07-09 23:46 ` Dhinakaran Pandiyan
2 siblings, 0 replies; 4+ messages in thread
From: Dhinakaran Pandiyan @ 2018-07-09 23:46 UTC (permalink / raw)
To: Tarun Vyas, intel-gfx; +Cc: rodrigo.vivi
On Mon, 2018-07-09 at 14:28 -0700, Tarun Vyas wrote:
> In commit "drm/i915: Wait for PSR exit before checking for vblank
> evasion", the idea was to limit the PSR IDLE checks when PSR is
> actually supported. While CAN_PSR does do that check, it doesn't
> applies on a per-crtc basis. crtc_state->has_psr is a more granular
> check that only applies to pipe(s) that have PSR enabled.
>
> Currently, the driver supports PSR on port A + transcoder eDP, so
> only pipe A will wait for PSR to go IDLE, as it should, and other
> pipes should return immediately.
>
> Without the has_psr check, non-PSR pipe_updates (pipe B/C in this
> case), end up waiting on PSR pipe (pipe A in this case) to exit PSR,
> which may incur substantial delays for non-PSR pipe updates alongwith
> the fact the it doesn't makes any sense.
>
> Fixes: a608987970b9 ("drm/i915: Wait for PSR exit before checking for
> vblank evasion")
>
> v2: Remove unnecessary parantheses, make checkpatch happy.
There are checkpatch failures in this revision too.
>
> v3: Move the has_psr check to intel_psr_wait_for_idle and commit
> message changes (DK).
>
> Signed-off-by: Tarun Vyas <tarun.vyas@intel.com>
> ---
> drivers/gpu/drm/i915/intel_drv.h | 2 +-
> drivers/gpu/drm/i915/intel_psr.c | 5 ++++-
> drivers/gpu/drm/i915/intel_sprite.c | 2 +-
> 3 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_drv.h
> b/drivers/gpu/drm/i915/intel_drv.h
> index 61e715ddd0d5..3f7fbaeb1ee9 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1923,7 +1923,7 @@ void intel_psr_compute_config(struct intel_dp
> *intel_dp,
> 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);
> void intel_psr_short_pulse(struct intel_dp *intel_dp);
> -int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv);
> +int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv, const
> struct intel_crtc_state *crtc_state);
>
> /* 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 23acc9ac8d4d..3691c857cc91 100644
> --- a/drivers/gpu/drm/i915/intel_psr.c
> +++ b/drivers/gpu/drm/i915/intel_psr.c
> @@ -717,11 +717,14 @@ void intel_psr_disable(struct intel_dp
> *intel_dp,
> cancel_work_sync(&dev_priv->psr.work);
> }
>
> -int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv)
> +int intel_psr_wait_for_idle(struct drm_i915_private *dev_priv, const
> struct intel_crtc_state *crtc_state)
> {
Derive dev_priv from crtc_state and call it new_crtc_state?
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-07-09 23:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-09 21:28 [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update Tarun Vyas
2018-07-09 21:46 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update (rev3) Patchwork
2018-07-09 22:02 ` ✓ Fi.CI.BAT: success " Patchwork
2018-07-09 23:46 ` [PATCH v3] drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update Dhinakaran Pandiyan
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.