intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Fix cxsr warning spew.
@ 2016-02-03 15:53 Maarten Lankhorst
  2016-02-03 15:53 ` [PATCH 1/3] drm/i915: Remove intel_crtc->atomic.disable_ips Maarten Lankhorst
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Maarten Lankhorst @ 2016-02-03 15:53 UTC (permalink / raw)
  To: intel-gfx

First 2 patches from the remove intel_crtc->atomic series. They were already
reviewed when part of a different series which I had slightly adjusted.
I put them in the series because I need to pass old_crtc_state
to pre_plane_update, and those patches were reviewed anyway.

Maarten Lankhorst (3):
  drm/i915: Remove intel_crtc->atomic.disable_ips.
  drm/i915: Remove atomic.pre_disable_primary.
  drm/i915: Do not disable cxsr when crtc is disabled.

 drivers/gpu/drm/i915/intel_display.c | 42 ++++++++++++++++++------------------
 drivers/gpu/drm/i915/intel_drv.h     |  2 --
 2 files changed, 21 insertions(+), 23 deletions(-)

-- 
2.1.0

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

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

* [PATCH 1/3] drm/i915: Remove intel_crtc->atomic.disable_ips.
  2016-02-03 15:53 [PATCH 0/3] Fix cxsr warning spew Maarten Lankhorst
@ 2016-02-03 15:53 ` Maarten Lankhorst
  2016-02-03 15:53 ` [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary Maarten Lankhorst
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Maarten Lankhorst @ 2016-02-03 15:53 UTC (permalink / raw)
  To: intel-gfx

This is a revert of commit 066cf55b9ce3 "drm/i915: Fix IPS related flicker".
intel_pre_disable_primary already handles this, and now everything
goes through the atomic path there's no need to try to disable ips twice.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
---
 drivers/gpu/drm/i915/intel_display.c | 15 ---------------
 drivers/gpu/drm/i915/intel_drv.h     |  1 -
 2 files changed, 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 4d8c9f7857db..de94ef165fbe 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4818,9 +4818,6 @@ static void intel_pre_plane_update(struct intel_crtc *crtc)
 	if (atomic->update_fbc)
 		intel_fbc_pre_update(crtc);
 
-	if (crtc->atomic.disable_ips)
-		hsw_disable_ips(crtc);
-
 	if (atomic->pre_disable_primary)
 		intel_pre_disable_primary(&crtc->base);
 
@@ -11890,18 +11887,6 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state,
 		intel_crtc->atomic.post_enable_primary = turn_on;
 		intel_crtc->atomic.update_fbc = true;
 
-		if (turn_off) {
-			/*
-			 * FIXME: Actually if we will still have any other
-			 * plane enabled on the pipe we could let IPS enabled
-			 * still, but for now lets consider that when we make
-			 * primary invisible by setting DSPCNTR to 0 on
-			 * update_primary_plane function IPS needs to be
-			 * disable.
-			 */
-			intel_crtc->atomic.disable_ips = true;
-		}
-
 		/*
 		 * BDW signals flip done immediately if the plane
 		 * is disabled, even if the plane enable is already
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 93ba14a3bb76..c9ae2be260d0 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -544,7 +544,6 @@ struct intel_mmio_flip {
  */
 struct intel_crtc_atomic_commit {
 	/* Sleepable operations to perform before commit */
-	bool disable_ips;
 	bool pre_disable_primary;
 
 	/* Sleepable operations to perform after commit */
-- 
2.1.0

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

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

* [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary.
  2016-02-03 15:53 [PATCH 0/3] Fix cxsr warning spew Maarten Lankhorst
  2016-02-03 15:53 ` [PATCH 1/3] drm/i915: Remove intel_crtc->atomic.disable_ips Maarten Lankhorst
@ 2016-02-03 15:53 ` Maarten Lankhorst
  2016-02-03 16:07   ` Ville Syrjälä
  2016-02-03 15:53 ` [PATCH 3/3] drm/i915: Do not disable cxsr when crtc is disabled Maarten Lankhorst
  2016-02-03 16:16 ` ✗ Fi.CI.BAT: failure for Fix cxsr warning spew Patchwork
  3 siblings, 1 reply; 10+ messages in thread
From: Maarten Lankhorst @ 2016-02-03 15:53 UTC (permalink / raw)
  To: intel-gfx

This can be derived from the atomic state in pre_plane_update,
which makes it more clear when it's supposed to be called.

Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 25 +++++++++++++++++++------
 drivers/gpu/drm/i915/intel_drv.h     |  1 -
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index de94ef165fbe..c7f2a18ab34e 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4807,19 +4807,33 @@ static void intel_post_plane_update(struct intel_crtc *crtc)
 	memset(atomic, 0, sizeof(*atomic));
 }
 
-static void intel_pre_plane_update(struct intel_crtc *crtc)
+static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state)
 {
+	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->base.crtc);
 	struct drm_device *dev = crtc->base.dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_crtc_atomic_commit *atomic = &crtc->atomic;
 	struct intel_crtc_state *pipe_config =
 		to_intel_crtc_state(crtc->base.state);
+	struct drm_atomic_state *old_state = old_crtc_state->base.state;
+	struct drm_plane *primary = crtc->base.primary;
+	struct drm_plane_state *old_pri_state =
+		drm_atomic_get_existing_plane_state(old_state, primary);
+	bool modeset = needs_modeset(&pipe_config->base);
 
 	if (atomic->update_fbc)
 		intel_fbc_pre_update(crtc);
 
-	if (atomic->pre_disable_primary)
-		intel_pre_disable_primary(&crtc->base);
+	if (old_pri_state) {
+		struct intel_plane_state *primary_state =
+			to_intel_plane_state(primary->state);
+		struct intel_plane_state *old_primary_state =
+			to_intel_plane_state(old_pri_state);
+
+		if (old_primary_state->visible &&
+		    (modeset || !primary_state->visible))
+			intel_pre_disable_primary(&crtc->base);
+	}
 
 	if (pipe_config->disable_cxsr) {
 		crtc->wm.cxsr_allowed = false;
@@ -11883,7 +11897,6 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state,
 
 	switch (plane->type) {
 	case DRM_PLANE_TYPE_PRIMARY:
-		intel_crtc->atomic.pre_disable_primary = turn_off;
 		intel_crtc->atomic.post_enable_primary = turn_on;
 		intel_crtc->atomic.update_fbc = true;
 
@@ -13495,7 +13508,7 @@ static int intel_atomic_commit(struct drm_device *dev,
 		if (!needs_modeset(crtc->state))
 			continue;
 
-		intel_pre_plane_update(intel_crtc);
+		intel_pre_plane_update(to_intel_crtc_state(crtc_state));
 
 		if (crtc_state->active) {
 			intel_crtc_disable_planes(crtc, crtc_state->plane_mask);
@@ -13551,7 +13564,7 @@ static int intel_atomic_commit(struct drm_device *dev,
 		}
 
 		if (!modeset)
-			intel_pre_plane_update(intel_crtc);
+			intel_pre_plane_update(to_intel_crtc_state(crtc_state));
 
 		if (crtc->state->active && intel_crtc->atomic.update_fbc)
 			intel_fbc_enable(intel_crtc);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index c9ae2be260d0..167f284ccb16 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -544,7 +544,6 @@ struct intel_mmio_flip {
  */
 struct intel_crtc_atomic_commit {
 	/* Sleepable operations to perform before commit */
-	bool pre_disable_primary;
 
 	/* Sleepable operations to perform after commit */
 	unsigned fb_bits;
-- 
2.1.0

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

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

* [PATCH 3/3] drm/i915: Do not disable cxsr when crtc is disabled.
  2016-02-03 15:53 [PATCH 0/3] Fix cxsr warning spew Maarten Lankhorst
  2016-02-03 15:53 ` [PATCH 1/3] drm/i915: Remove intel_crtc->atomic.disable_ips Maarten Lankhorst
  2016-02-03 15:53 ` [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary Maarten Lankhorst
@ 2016-02-03 15:53 ` Maarten Lankhorst
  2016-02-03 16:12   ` Ville Syrjälä
  2016-02-03 16:16 ` ✗ Fi.CI.BAT: failure for Fix cxsr warning spew Patchwork
  3 siblings, 1 reply; 10+ messages in thread
From: Maarten Lankhorst @ 2016-02-03 15:53 UTC (permalink / raw)
  To: intel-gfx

It's safe to assume cxsr is already disabled when the crtc is off.
This prevents an unclaimed register warning when the required power
wells are not enabled.

[  262.864984] ------------[ cut here ]------------
[  262.865025] WARNING: CPU: 1 PID: 6799 at drivers/gpu/drm/i915/intel_uncore.c:638 __unclaimed_reg_debug+0x68/0x80 [i915]()
[  262.865029] Unclaimed register detected before reading register 0x186500
[  262.865032] Modules linked in: i915 intel_powerclamp
[  262.865057] CPU: 1 PID: 6799 Comm: kms_pipe_crc_ba Tainted: G     U  W       4.4.0-gfxbench+ #1
[  262.865060] Hardware name: DN2820FYK, BIOS FYBYT10H.86A.0038.2014.0717.1455 07/17/2014
[  262.865064]  ffffffffa0338cf8 ffff88007448ba78 ffffffff813df90c ffff88007448bac0
[  262.865071]  ffff88007448bab0 ffffffff810746e1 0000000000186500 0000000000000001
[  262.865077]  0000000000000001 ffff880074420000 0000000000000000 ffff88007448bb10
[  262.865083] Call Trace:
[  262.865092]  [<ffffffff813df90c>] dump_stack+0x4e/0x82
[  262.865098]  [<ffffffff810746e1>] warn_slowpath_common+0x81/0xc0
[  262.865102]  [<ffffffff81074767>] warn_slowpath_fmt+0x47/0x50
[  262.865128]  [<ffffffffa02a07e8>] __unclaimed_reg_debug+0x68/0x80 [i915]
[  262.865154]  [<ffffffffa02a0e4e>] vlv_read32+0x2de/0x370 [i915]
[  262.865173]  [<ffffffffa0256837>] intel_set_memory_cxsr+0x87/0x1a0 [i915]
[  262.865200]  [<ffffffffa02c4cb3>] intel_pre_plane_update+0xb3/0xf0 [i915]
[  262.865228]  [<ffffffffa02c54b5>] intel_atomic_commit+0x3b5/0x17c0 [i915]
[  262.865234]  [<ffffffff8150dc45>] ? drm_atomic_check_only+0x145/0x660
[  262.865239]  [<ffffffff8150d75a>] ? drm_atomic_set_crtc_for_connector+0x6a/0xe0
[  262.865243]  [<ffffffff8150e192>] drm_atomic_commit+0x32/0x50
[  262.865249]  [<ffffffff814eb155>] drm_atomic_helper_set_config+0x75/0xb0
[  262.865253]  [<ffffffff814fd090>] drm_mode_set_config_internal+0x60/0x110
[  262.865258]  [<ffffffff81501e26>] drm_mode_setcrtc+0x186/0x4f0
[  262.865263]  [<ffffffff814f3eed>] drm_ioctl+0x13d/0x590
[  262.865267]  [<ffffffff81501ca0>] ? drm_mode_setplane+0x1b0/0x1b0
[  262.865273]  [<ffffffff811d4c4c>] do_vfs_ioctl+0x2fc/0x550
[  262.865278]  [<ffffffff8118d5ea>] ? vm_munmap+0x4a/0x60
[  262.865283]  [<ffffffff811e06ba>] ? __fget_light+0x6a/0x90
[  262.865287]  [<ffffffff811d4edc>] SyS_ioctl+0x3c/0x70
[  262.865292]  [<ffffffff8179a75b>] entry_SYSCALL_64_fastpath+0x16/0x73
[  262.865296] ---[ end trace 6387a0ad001bb39f ]---

Testcase: kms_flip.basic-flip-vs-wf_vblank
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93698

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index c7f2a18ab34e..4fcbdd6037a4 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4837,7 +4837,9 @@ static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state)
 
 	if (pipe_config->disable_cxsr) {
 		crtc->wm.cxsr_allowed = false;
-		intel_set_memory_cxsr(dev_priv, false);
+
+		if (old_crtc_state->base.active)
+			intel_set_memory_cxsr(dev_priv, false);
 	}
 
 	if (!needs_modeset(&pipe_config->base) && pipe_config->wm_changed)
-- 
2.1.0

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

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

* Re: [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary.
  2016-02-03 15:53 ` [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary Maarten Lankhorst
@ 2016-02-03 16:07   ` Ville Syrjälä
  2016-02-03 17:23     ` Maarten Lankhorst
  0 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2016-02-03 16:07 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

On Wed, Feb 03, 2016 at 04:53:24PM +0100, Maarten Lankhorst wrote:
> This can be derived from the atomic state in pre_plane_update,
> which makes it more clear when it's supposed to be called.
> 
> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 25 +++++++++++++++++++------
>  drivers/gpu/drm/i915/intel_drv.h     |  1 -
>  2 files changed, 19 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index de94ef165fbe..c7f2a18ab34e 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4807,19 +4807,33 @@ static void intel_post_plane_update(struct intel_crtc *crtc)
>  	memset(atomic, 0, sizeof(*atomic));
>  }
>  
> -static void intel_pre_plane_update(struct intel_crtc *crtc)
> +static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state)
>  {
> +	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->base.crtc);
>  	struct drm_device *dev = crtc->base.dev;
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_crtc_atomic_commit *atomic = &crtc->atomic;
>  	struct intel_crtc_state *pipe_config =
>  		to_intel_crtc_state(crtc->base.state);
> +	struct drm_atomic_state *old_state = old_crtc_state->base.state;
> +	struct drm_plane *primary = crtc->base.primary;
> +	struct drm_plane_state *old_pri_state =
> +		drm_atomic_get_existing_plane_state(old_state, primary);
> +	bool modeset = needs_modeset(&pipe_config->base);
>  
>  	if (atomic->update_fbc)
>  		intel_fbc_pre_update(crtc);
>  
> -	if (atomic->pre_disable_primary)
> -		intel_pre_disable_primary(&crtc->base);
> +	if (old_pri_state) {

When might we not have and old state for the primary plane?

> +		struct intel_plane_state *primary_state =
> +			to_intel_plane_state(primary->state);
> +		struct intel_plane_state *old_primary_state =
> +			to_intel_plane_state(old_pri_state);
> +
> +		if (old_primary_state->visible &&
> +		    (modeset || !primary_state->visible))
> +			intel_pre_disable_primary(&crtc->base);
> +	}
>  
>  	if (pipe_config->disable_cxsr) {
>  		crtc->wm.cxsr_allowed = false;
> @@ -11883,7 +11897,6 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state,
>  
>  	switch (plane->type) {
>  	case DRM_PLANE_TYPE_PRIMARY:
> -		intel_crtc->atomic.pre_disable_primary = turn_off;
>  		intel_crtc->atomic.post_enable_primary = turn_on;
>  		intel_crtc->atomic.update_fbc = true;
>  
> @@ -13495,7 +13508,7 @@ static int intel_atomic_commit(struct drm_device *dev,
>  		if (!needs_modeset(crtc->state))
>  			continue;
>  
> -		intel_pre_plane_update(intel_crtc);
> +		intel_pre_plane_update(to_intel_crtc_state(crtc_state));
>  
>  		if (crtc_state->active) {
>  			intel_crtc_disable_planes(crtc, crtc_state->plane_mask);
> @@ -13551,7 +13564,7 @@ static int intel_atomic_commit(struct drm_device *dev,
>  		}
>  
>  		if (!modeset)
> -			intel_pre_plane_update(intel_crtc);
> +			intel_pre_plane_update(to_intel_crtc_state(crtc_state));
>  
>  		if (crtc->state->active && intel_crtc->atomic.update_fbc)
>  			intel_fbc_enable(intel_crtc);
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index c9ae2be260d0..167f284ccb16 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -544,7 +544,6 @@ struct intel_mmio_flip {
>   */
>  struct intel_crtc_atomic_commit {
>  	/* Sleepable operations to perform before commit */
> -	bool pre_disable_primary;
>  
>  	/* Sleepable operations to perform after commit */
>  	unsigned fb_bits;
> -- 
> 2.1.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 3/3] drm/i915: Do not disable cxsr when crtc is disabled.
  2016-02-03 15:53 ` [PATCH 3/3] drm/i915: Do not disable cxsr when crtc is disabled Maarten Lankhorst
@ 2016-02-03 16:12   ` Ville Syrjälä
  0 siblings, 0 replies; 10+ messages in thread
From: Ville Syrjälä @ 2016-02-03 16:12 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

On Wed, Feb 03, 2016 at 04:53:25PM +0100, Maarten Lankhorst wrote:
> It's safe to assume cxsr is already disabled when the crtc is off.

Hmm. Yeah, looks like that's how we set it up currently. I thought we
might leave it on with 0 active pipes, but I guess not.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> This prevents an unclaimed register warning when the required power
> wells are not enabled.
> 
> [  262.864984] ------------[ cut here ]------------
> [  262.865025] WARNING: CPU: 1 PID: 6799 at drivers/gpu/drm/i915/intel_uncore.c:638 __unclaimed_reg_debug+0x68/0x80 [i915]()
> [  262.865029] Unclaimed register detected before reading register 0x186500
> [  262.865032] Modules linked in: i915 intel_powerclamp
> [  262.865057] CPU: 1 PID: 6799 Comm: kms_pipe_crc_ba Tainted: G     U  W       4.4.0-gfxbench+ #1
> [  262.865060] Hardware name: DN2820FYK, BIOS FYBYT10H.86A.0038.2014.0717.1455 07/17/2014
> [  262.865064]  ffffffffa0338cf8 ffff88007448ba78 ffffffff813df90c ffff88007448bac0
> [  262.865071]  ffff88007448bab0 ffffffff810746e1 0000000000186500 0000000000000001
> [  262.865077]  0000000000000001 ffff880074420000 0000000000000000 ffff88007448bb10
> [  262.865083] Call Trace:
> [  262.865092]  [<ffffffff813df90c>] dump_stack+0x4e/0x82
> [  262.865098]  [<ffffffff810746e1>] warn_slowpath_common+0x81/0xc0
> [  262.865102]  [<ffffffff81074767>] warn_slowpath_fmt+0x47/0x50
> [  262.865128]  [<ffffffffa02a07e8>] __unclaimed_reg_debug+0x68/0x80 [i915]
> [  262.865154]  [<ffffffffa02a0e4e>] vlv_read32+0x2de/0x370 [i915]
> [  262.865173]  [<ffffffffa0256837>] intel_set_memory_cxsr+0x87/0x1a0 [i915]
> [  262.865200]  [<ffffffffa02c4cb3>] intel_pre_plane_update+0xb3/0xf0 [i915]
> [  262.865228]  [<ffffffffa02c54b5>] intel_atomic_commit+0x3b5/0x17c0 [i915]
> [  262.865234]  [<ffffffff8150dc45>] ? drm_atomic_check_only+0x145/0x660
> [  262.865239]  [<ffffffff8150d75a>] ? drm_atomic_set_crtc_for_connector+0x6a/0xe0
> [  262.865243]  [<ffffffff8150e192>] drm_atomic_commit+0x32/0x50
> [  262.865249]  [<ffffffff814eb155>] drm_atomic_helper_set_config+0x75/0xb0
> [  262.865253]  [<ffffffff814fd090>] drm_mode_set_config_internal+0x60/0x110
> [  262.865258]  [<ffffffff81501e26>] drm_mode_setcrtc+0x186/0x4f0
> [  262.865263]  [<ffffffff814f3eed>] drm_ioctl+0x13d/0x590
> [  262.865267]  [<ffffffff81501ca0>] ? drm_mode_setplane+0x1b0/0x1b0
> [  262.865273]  [<ffffffff811d4c4c>] do_vfs_ioctl+0x2fc/0x550
> [  262.865278]  [<ffffffff8118d5ea>] ? vm_munmap+0x4a/0x60
> [  262.865283]  [<ffffffff811e06ba>] ? __fget_light+0x6a/0x90
> [  262.865287]  [<ffffffff811d4edc>] SyS_ioctl+0x3c/0x70
> [  262.865292]  [<ffffffff8179a75b>] entry_SYSCALL_64_fastpath+0x16/0x73
> [  262.865296] ---[ end trace 6387a0ad001bb39f ]---
> 
> Testcase: kms_flip.basic-flip-vs-wf_vblank
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93698
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index c7f2a18ab34e..4fcbdd6037a4 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4837,7 +4837,9 @@ static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state)
>  
>  	if (pipe_config->disable_cxsr) {
>  		crtc->wm.cxsr_allowed = false;
> -		intel_set_memory_cxsr(dev_priv, false);
> +
> +		if (old_crtc_state->base.active)
> +			intel_set_memory_cxsr(dev_priv, false);
>  	}
>  
>  	if (!needs_modeset(&pipe_config->base) && pipe_config->wm_changed)
> -- 
> 2.1.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.BAT: failure for Fix cxsr warning spew.
  2016-02-03 15:53 [PATCH 0/3] Fix cxsr warning spew Maarten Lankhorst
                   ` (2 preceding siblings ...)
  2016-02-03 15:53 ` [PATCH 3/3] drm/i915: Do not disable cxsr when crtc is disabled Maarten Lankhorst
@ 2016-02-03 16:16 ` Patchwork
  3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2016-02-03 16:16 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

== Summary ==

Series 3053v1 Fix cxsr warning spew.
http://patchwork.freedesktop.org/api/1.0/series/3053/revisions/1/mbox/

Test gem_sync:
        Subgroup basic-blt:
                pass       -> INCOMPLETE (skl-i7k-2)
Test kms_pipe_crc_basic:
        Subgroup nonblocking-crc-pipe-c-frame-sequence:
                dmesg-warn -> PASS       (skl-i7k-2)

bdw-nuci7        total:156  pass:147  dwarn:0   dfail:0   fail:0   skip:9  
bdw-ultra        total:159  pass:147  dwarn:0   dfail:0   fail:0   skip:12 
bsw-nuc-2        total:159  pass:131  dwarn:0   dfail:0   fail:0   skip:28 
byt-nuc          total:159  pass:136  dwarn:0   dfail:0   fail:0   skip:23 
hsw-brixbox      total:159  pass:146  dwarn:0   dfail:0   fail:0   skip:13 
hsw-gt2          total:159  pass:149  dwarn:0   dfail:0   fail:0   skip:10 
hsw-xps12        total:156  pass:146  dwarn:0   dfail:0   fail:0   skip:10 
ilk-hp8440p      total:159  pass:111  dwarn:0   dfail:0   fail:0   skip:48 
ivb-t430s        total:159  pass:145  dwarn:0   dfail:0   fail:0   skip:14 
skl-i7k-2        total:55   pass:46   dwarn:0   dfail:0   fail:0   skip:8  
snb-dellxps      total:159  pass:137  dwarn:0   dfail:0   fail:0   skip:22 
snb-x220t        total:159  pass:137  dwarn:0   dfail:0   fail:1   skip:21 

Results at /archive/results/CI_IGT_test/Patchwork_1357/

64800473a902f6b9033ed9b519585426cf6affa9 drm-intel-nightly: 2016y-02m-03d-14h-02m-22s UTC integration manifest
3ec0d25c488201adf036b8324710f799970b4cf0 drm/i915: Do not disable cxsr when crtc is disabled.
d1ec8f2590c4119d0e7b4f615050eb47eaa34f7d drm/i915: Remove atomic.pre_disable_primary.
e2ae8b5ac932b8257bc3796d792d45779e1825e5 drm/i915: Remove intel_crtc->atomic.disable_ips.

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

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

* Re: [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary.
  2016-02-03 16:07   ` Ville Syrjälä
@ 2016-02-03 17:23     ` Maarten Lankhorst
  2016-02-03 17:39       ` Ville Syrjälä
  0 siblings, 1 reply; 10+ messages in thread
From: Maarten Lankhorst @ 2016-02-03 17:23 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

Op 03-02-16 om 17:07 schreef Ville Syrjälä:
> On Wed, Feb 03, 2016 at 04:53:24PM +0100, Maarten Lankhorst wrote:
>> This can be derived from the atomic state in pre_plane_update,
>> which makes it more clear when it's supposed to be called.
>>
>> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> ---
>>  drivers/gpu/drm/i915/intel_display.c | 25 +++++++++++++++++++------
>>  drivers/gpu/drm/i915/intel_drv.h     |  1 -
>>  2 files changed, 19 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index de94ef165fbe..c7f2a18ab34e 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -4807,19 +4807,33 @@ static void intel_post_plane_update(struct intel_crtc *crtc)
>>  	memset(atomic, 0, sizeof(*atomic));
>>  }
>>  
>> -static void intel_pre_plane_update(struct intel_crtc *crtc)
>> +static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state)
>>  {
>> +	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->base.crtc);
>>  	struct drm_device *dev = crtc->base.dev;
>>  	struct drm_i915_private *dev_priv = dev->dev_private;
>>  	struct intel_crtc_atomic_commit *atomic = &crtc->atomic;
>>  	struct intel_crtc_state *pipe_config =
>>  		to_intel_crtc_state(crtc->base.state);
>> +	struct drm_atomic_state *old_state = old_crtc_state->base.state;
>> +	struct drm_plane *primary = crtc->base.primary;
>> +	struct drm_plane_state *old_pri_state =
>> +		drm_atomic_get_existing_plane_state(old_state, primary);
>> +	bool modeset = needs_modeset(&pipe_config->base);
>>  
>>  	if (atomic->update_fbc)
>>  		intel_fbc_pre_update(crtc);
>>  
>> -	if (atomic->pre_disable_primary)
>> -		intel_pre_disable_primary(&crtc->base);
>> +	if (old_pri_state) {
> When might we not have and old state for the primary plane?
>
When updating some state unrelated to the primary plane, for example changing cursor.

modeset and update_pipe should always add all planes.

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

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

* Re: [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary.
  2016-02-03 17:23     ` Maarten Lankhorst
@ 2016-02-03 17:39       ` Ville Syrjälä
  2016-02-04 10:13         ` Maarten Lankhorst
  0 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2016-02-03 17:39 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

On Wed, Feb 03, 2016 at 06:23:13PM +0100, Maarten Lankhorst wrote:
> Op 03-02-16 om 17:07 schreef Ville Syrjälä:
> > On Wed, Feb 03, 2016 at 04:53:24PM +0100, Maarten Lankhorst wrote:
> >> This can be derived from the atomic state in pre_plane_update,
> >> which makes it more clear when it's supposed to be called.
> >>
> >> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
> >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >> ---
> >>  drivers/gpu/drm/i915/intel_display.c | 25 +++++++++++++++++++------
> >>  drivers/gpu/drm/i915/intel_drv.h     |  1 -
> >>  2 files changed, 19 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> >> index de94ef165fbe..c7f2a18ab34e 100644
> >> --- a/drivers/gpu/drm/i915/intel_display.c
> >> +++ b/drivers/gpu/drm/i915/intel_display.c
> >> @@ -4807,19 +4807,33 @@ static void intel_post_plane_update(struct intel_crtc *crtc)
> >>  	memset(atomic, 0, sizeof(*atomic));
> >>  }
> >>  
> >> -static void intel_pre_plane_update(struct intel_crtc *crtc)
> >> +static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state)
> >>  {
> >> +	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->base.crtc);
> >>  	struct drm_device *dev = crtc->base.dev;
> >>  	struct drm_i915_private *dev_priv = dev->dev_private;
> >>  	struct intel_crtc_atomic_commit *atomic = &crtc->atomic;
> >>  	struct intel_crtc_state *pipe_config =
> >>  		to_intel_crtc_state(crtc->base.state);
> >> +	struct drm_atomic_state *old_state = old_crtc_state->base.state;
> >> +	struct drm_plane *primary = crtc->base.primary;
> >> +	struct drm_plane_state *old_pri_state =
> >> +		drm_atomic_get_existing_plane_state(old_state, primary);
> >> +	bool modeset = needs_modeset(&pipe_config->base);
> >>  
> >>  	if (atomic->update_fbc)
> >>  		intel_fbc_pre_update(crtc);
> >>  
> >> -	if (atomic->pre_disable_primary)
> >> -		intel_pre_disable_primary(&crtc->base);
> >> +	if (old_pri_state) {
> > When might we not have and old state for the primary plane?
> >
> When updating some state unrelated to the primary plane, for example changing cursor.

Hmm. I thought we added all the planes to the state currently...
I guess that only happens due to watermark calculation on specific
platforms.

> 
> modeset and update_pipe should always add all planes.
> 
> ~Maarten

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary.
  2016-02-03 17:39       ` Ville Syrjälä
@ 2016-02-04 10:13         ` Maarten Lankhorst
  0 siblings, 0 replies; 10+ messages in thread
From: Maarten Lankhorst @ 2016-02-04 10:13 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

Op 03-02-16 om 18:39 schreef Ville Syrjälä:
> On Wed, Feb 03, 2016 at 06:23:13PM +0100, Maarten Lankhorst wrote:
>> Op 03-02-16 om 17:07 schreef Ville Syrjälä:
>>> On Wed, Feb 03, 2016 at 04:53:24PM +0100, Maarten Lankhorst wrote:
>>>> This can be derived from the atomic state in pre_plane_update,
>>>> which makes it more clear when it's supposed to be called.
>>>>
>>>> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
>>>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>>> ---
>>>>  drivers/gpu/drm/i915/intel_display.c | 25 +++++++++++++++++++------
>>>>  drivers/gpu/drm/i915/intel_drv.h     |  1 -
>>>>  2 files changed, 19 insertions(+), 7 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>>>> index de94ef165fbe..c7f2a18ab34e 100644
>>>> --- a/drivers/gpu/drm/i915/intel_display.c
>>>> +++ b/drivers/gpu/drm/i915/intel_display.c
>>>> @@ -4807,19 +4807,33 @@ static void intel_post_plane_update(struct intel_crtc *crtc)
>>>>  	memset(atomic, 0, sizeof(*atomic));
>>>>  }
>>>>  
>>>> -static void intel_pre_plane_update(struct intel_crtc *crtc)
>>>> +static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state)
>>>>  {
>>>> +	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->base.crtc);
>>>>  	struct drm_device *dev = crtc->base.dev;
>>>>  	struct drm_i915_private *dev_priv = dev->dev_private;
>>>>  	struct intel_crtc_atomic_commit *atomic = &crtc->atomic;
>>>>  	struct intel_crtc_state *pipe_config =
>>>>  		to_intel_crtc_state(crtc->base.state);
>>>> +	struct drm_atomic_state *old_state = old_crtc_state->base.state;
>>>> +	struct drm_plane *primary = crtc->base.primary;
>>>> +	struct drm_plane_state *old_pri_state =
>>>> +		drm_atomic_get_existing_plane_state(old_state, primary);
>>>> +	bool modeset = needs_modeset(&pipe_config->base);
>>>>  
>>>>  	if (atomic->update_fbc)
>>>>  		intel_fbc_pre_update(crtc);
>>>>  
>>>> -	if (atomic->pre_disable_primary)
>>>> -		intel_pre_disable_primary(&crtc->base);
>>>> +	if (old_pri_state) {
>>> When might we not have and old state for the primary plane?
>>>
>> When updating some state unrelated to the primary plane, for example changing cursor.
> Hmm. I thought we added all the planes to the state currently...
> I guess that only happens due to watermark calculation on specific
> platforms.
>
Yes we do and that's a bug. I have a patch to reuse the old values for the planes not part of the state,
I just didn't send it upstream yet.

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

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

end of thread, other threads:[~2016-02-04 10:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-03 15:53 [PATCH 0/3] Fix cxsr warning spew Maarten Lankhorst
2016-02-03 15:53 ` [PATCH 1/3] drm/i915: Remove intel_crtc->atomic.disable_ips Maarten Lankhorst
2016-02-03 15:53 ` [PATCH 2/3] drm/i915: Remove atomic.pre_disable_primary Maarten Lankhorst
2016-02-03 16:07   ` Ville Syrjälä
2016-02-03 17:23     ` Maarten Lankhorst
2016-02-03 17:39       ` Ville Syrjälä
2016-02-04 10:13         ` Maarten Lankhorst
2016-02-03 15:53 ` [PATCH 3/3] drm/i915: Do not disable cxsr when crtc is disabled Maarten Lankhorst
2016-02-03 16:12   ` Ville Syrjälä
2016-02-03 16:16 ` ✗ Fi.CI.BAT: failure for Fix cxsr warning spew Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).