* [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).