* [PATCH 1/2] drm/i915: Revert wait for vblank to prevent X refresh issues
[not found] ` <20100824095535.GA14020@sucs.org>
@ 2010-08-24 15:41 ` Sitsofe Wheeler
2010-08-24 15:53 ` Sitsofe Wheeler
1 sibling, 0 replies; 5+ messages in thread
From: Sitsofe Wheeler @ 2010-08-24 15:41 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx, LKML, dri-devel
In commit 9d0498a2bf7455159b317f19531a3e5db2ecc9c4 20ms waits were
converted into vblank waits. One of these caused tearing, mode detection
and redraw issues on an EeePC 900 with a more recent intel userspace (
http://lkml.org/lkml/2010/8/23/432 ). Restoring the 20ms wait resolves
the issue.
---
drivers/gpu/drm/i915/intel_display.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 23157e1..116d938 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4539,7 +4539,7 @@ struct drm_crtc *intel_get_load_detect_pipe(struct intel_encoder *intel_encoder,
encoder_funcs->commit(encoder);
}
/* let the connector get through one full cycle before testing */
- intel_wait_for_vblank(dev, intel_crtc->pipe);
+ msleep(20);
return crtc;
}
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 1/2] drm/i915: Revert wait for vblank to prevent X refresh issues
[not found] ` <20100824095535.GA14020@sucs.org>
2010-08-24 15:41 ` [PATCH 1/2] drm/i915: Revert wait for vblank to prevent X refresh issues Sitsofe Wheeler
@ 2010-08-24 15:53 ` Sitsofe Wheeler
2010-08-24 15:56 ` [PATCH 2/2] drm/i915: Revert extra intel_wait_for_vblank to prevent stalls Sitsofe Wheeler
2010-08-24 16:39 ` [PATCH 1/2] drm/i915: Revert wait for vblank to prevent X refresh issues Jesse Barnes
1 sibling, 2 replies; 5+ messages in thread
From: Sitsofe Wheeler @ 2010-08-24 15:53 UTC (permalink / raw)
To: intel-gfx; +Cc: Jesse Barnes, Chris Wilson, LKML, dri-devel
In commit 9d0498a2bf7455159b317f19531a3e5db2ecc9c4 20ms waits were
converted into vblank waits. One of these caused tearing, mode detection
and redraw issues on an EeePC 900 with a more recent intel userspace (
http://lkml.org/lkml/2010/8/23/432 ). Restoring the 20ms wait resolves
the issue.
Signed-off-by: Sitsofe Wheeler <sitsofe@yahoo.com>
---
drivers/gpu/drm/i915/intel_display.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 23157e1..116d938 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4539,7 +4539,7 @@ struct drm_crtc *intel_get_load_detect_pipe(struct intel_encoder *intel_encoder,
encoder_funcs->commit(encoder);
}
/* let the connector get through one full cycle before testing */
- intel_wait_for_vblank(dev, intel_crtc->pipe);
+ msleep(20);
return crtc;
}
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] drm/i915: Revert extra intel_wait_for_vblank to prevent stalls.
2010-08-24 15:53 ` Sitsofe Wheeler
@ 2010-08-24 15:56 ` Sitsofe Wheeler
2010-08-24 16:35 ` Jesse Barnes
2010-08-24 16:39 ` [PATCH 1/2] drm/i915: Revert wait for vblank to prevent X refresh issues Jesse Barnes
1 sibling, 1 reply; 5+ messages in thread
From: Sitsofe Wheeler @ 2010-08-24 15:56 UTC (permalink / raw)
To: intel-gfx; +Cc: Jesse Barnes, Chris Wilson, LKML, dri-devel
With the extra intel_wait_for_vblank added in commit
9d0498a2bf7455159b317f19531a3e5db2ecc9c4 periodic stalls were being
triggered (which were detected by i915_hangcheck_elapsed). Partially
revert this change for now.
Signed-off-by: Sitsofe Wheeler <sitsofe@yahoo.com>
---
drivers/gpu/drm/i915/intel_display.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 116d938..534f1fa 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2379,8 +2379,10 @@ static void i9xx_crtc_dpms(struct drm_crtc *crtc, int mode)
I915_READ(dspbase_reg);
}
- /* Wait for vblank for the disable to take effect */
- intel_wait_for_vblank_off(dev, pipe);
+ if (!IS_I9XX(dev)) {
+ /* Wait for vblank for the disable to take effect */
+ intel_wait_for_vblank_off(dev, pipe);
+ }
/* Don't disable pipe A or pipe A PLLs if needed */
if (pipeconf_reg == PIPEACONF &&
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/i915: Revert extra intel_wait_for_vblank to prevent stalls.
2010-08-24 15:56 ` [PATCH 2/2] drm/i915: Revert extra intel_wait_for_vblank to prevent stalls Sitsofe Wheeler
@ 2010-08-24 16:35 ` Jesse Barnes
0 siblings, 0 replies; 5+ messages in thread
From: Jesse Barnes @ 2010-08-24 16:35 UTC (permalink / raw)
To: Sitsofe Wheeler; +Cc: intel-gfx, LKML, dri-devel
On Tue, 24 Aug 2010 16:56:16 +0100
Sitsofe Wheeler <sitsofe@yahoo.com> wrote:
> With the extra intel_wait_for_vblank added in commit
> 9d0498a2bf7455159b317f19531a3e5db2ecc9c4 periodic stalls were being
> triggered (which were detected by i915_hangcheck_elapsed). Partially
> revert this change for now.
>
> Signed-off-by: Sitsofe Wheeler <sitsofe@yahoo.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 116d938..534f1fa 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -2379,8 +2379,10 @@ static void i9xx_crtc_dpms(struct drm_crtc *crtc, int mode)
> I915_READ(dspbase_reg);
> }
>
> - /* Wait for vblank for the disable to take effect */
> - intel_wait_for_vblank_off(dev, pipe);
> + if (!IS_I9XX(dev)) {
> + /* Wait for vblank for the disable to take effect */
> + intel_wait_for_vblank_off(dev, pipe);
> + }
>
> /* Don't disable pipe A or pipe A PLLs if needed */
> if (pipeconf_reg == PIPEACONF &&
Hm why would we be triggering the hangcheck timer due to this code?
I'd rather figure that out and fix it before covering it up like this.
Wait for vblank off will spin until the display line reg stops
incrementing, so it's important that we flush any previous writes to
shut off the pipe before waiting. So adding a POSTING_READ() above it
might help? But that still doesn't explain why it would cause the
hangcheck timer to notice a hang...
--
Jesse Barnes, Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] drm/i915: Revert wait for vblank to prevent X refresh issues
2010-08-24 15:53 ` Sitsofe Wheeler
2010-08-24 15:56 ` [PATCH 2/2] drm/i915: Revert extra intel_wait_for_vblank to prevent stalls Sitsofe Wheeler
@ 2010-08-24 16:39 ` Jesse Barnes
1 sibling, 0 replies; 5+ messages in thread
From: Jesse Barnes @ 2010-08-24 16:39 UTC (permalink / raw)
To: Sitsofe Wheeler; +Cc: intel-gfx, Chris Wilson, LKML, dri-devel
On Tue, 24 Aug 2010 16:53:59 +0100
Sitsofe Wheeler <sitsofe@yahoo.com> wrote:
> In commit 9d0498a2bf7455159b317f19531a3e5db2ecc9c4 20ms waits were
> converted into vblank waits. One of these caused tearing, mode detection
> and redraw issues on an EeePC 900 with a more recent intel userspace (
> http://lkml.org/lkml/2010/8/23/432 ). Restoring the 20ms wait resolves
> the issue.
>
> Signed-off-by: Sitsofe Wheeler <sitsofe@yahoo.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 23157e1..116d938 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4539,7 +4539,7 @@ struct drm_crtc *intel_get_load_detect_pipe(struct intel_encoder *intel_encoder,
> encoder_funcs->commit(encoder);
> }
> /* let the connector get through one full cycle before testing */
> - intel_wait_for_vblank(dev, intel_crtc->pipe);
> + msleep(20);
>
> return crtc;
> }
Wow, tearing, mode detection and redraw problems all because of this
line? Maybe because we wait for a longer period here now? Can you
check and see if we're timing out in the wait_for_vblank function?
--
Jesse Barnes, Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-08-24 16:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20100823233551.GA31920@sucs.org>
[not found] ` <89kc63$hrmse5@fmsmga002.fm.intel.com>
[not found] ` <20100824075741.GA11000@sucs.org>
[not found] ` <8u3s8d$jcg467@orsmga001.jf.intel.com>
[not found] ` <20100824084902.GA27569@sucs.org>
[not found] ` <89kc63$hrqoho@fmsmga002.fm.intel.com>
[not found] ` <20100824095535.GA14020@sucs.org>
2010-08-24 15:41 ` [PATCH 1/2] drm/i915: Revert wait for vblank to prevent X refresh issues Sitsofe Wheeler
2010-08-24 15:53 ` Sitsofe Wheeler
2010-08-24 15:56 ` [PATCH 2/2] drm/i915: Revert extra intel_wait_for_vblank to prevent stalls Sitsofe Wheeler
2010-08-24 16:35 ` Jesse Barnes
2010-08-24 16:39 ` [PATCH 1/2] drm/i915: Revert wait for vblank to prevent X refresh issues Jesse Barnes
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox