i915: add fix for 945G misrendering terminal
This commit is contained in:
parent
1abc854706
commit
e04a1dcc80
|
@ -0,0 +1,80 @@
|
|||
From 3b936797f5e4623ae1b80a5f0c4df30a17360bf5 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Date: Thu, 17 Mar 2011 15:23:22 +0000
|
||||
Subject: [PATCH] drm/i915: Fix pipelined fencing
|
||||
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34584
|
||||
Cc: Andy Whitcroft <apw@canonical.com>
|
||||
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
---
|
||||
drivers/gpu/drm/i915/i915_gem.c | 46 ++++++++++++++++----------------------
|
||||
1 files changed, 19 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
|
||||
index 36e66cc..10378a3 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_gem.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem.c
|
||||
@@ -2544,8 +2544,25 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
|
||||
reg = &dev_priv->fence_regs[obj->fence_reg];
|
||||
list_move_tail(®->lru_list, &dev_priv->mm.fence_list);
|
||||
|
||||
- if (!obj->fenced_gpu_access && !obj->last_fenced_seqno)
|
||||
- pipelined = NULL;
|
||||
+ if (obj->tiling_changed) {
|
||||
+ ret = i915_gem_object_flush_fence(obj,
|
||||
+ pipelined,
|
||||
+ interruptible);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ if (!obj->fenced_gpu_access && !obj->last_fenced_seqno)
|
||||
+ pipelined = NULL;
|
||||
+
|
||||
+ if (pipelined) {
|
||||
+ reg->setup_seqno =
|
||||
+ i915_gem_next_request_seqno(dev, pipelined);
|
||||
+ obj->last_fenced_seqno = reg->setup_seqno;
|
||||
+ obj->last_fenced_ring = pipelined;
|
||||
+ }
|
||||
+
|
||||
+ goto update;
|
||||
+ }
|
||||
|
||||
if (!pipelined) {
|
||||
if (reg->setup_seqno) {
|
||||
@@ -2568,31 +2585,6 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
|
||||
interruptible);
|
||||
if (ret)
|
||||
return ret;
|
||||
- } else if (obj->tiling_changed) {
|
||||
- if (obj->fenced_gpu_access) {
|
||||
- if (obj->base.write_domain & I915_GEM_GPU_DOMAINS) {
|
||||
- ret = i915_gem_flush_ring(obj->base.dev, obj->ring,
|
||||
- 0, obj->base.write_domain);
|
||||
- if (ret)
|
||||
- return ret;
|
||||
- }
|
||||
-
|
||||
- obj->fenced_gpu_access = false;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (!obj->fenced_gpu_access && !obj->last_fenced_seqno)
|
||||
- pipelined = NULL;
|
||||
- BUG_ON(!pipelined && reg->setup_seqno);
|
||||
-
|
||||
- if (obj->tiling_changed) {
|
||||
- if (pipelined) {
|
||||
- reg->setup_seqno =
|
||||
- i915_gem_next_request_seqno(dev, pipelined);
|
||||
- obj->last_fenced_seqno = reg->setup_seqno;
|
||||
- obj->last_fenced_ring = pipelined;
|
||||
- }
|
||||
- goto update;
|
||||
}
|
||||
|
||||
return 0;
|
||||
--
|
||||
1.5.6.5
|
||||
|
|
@ -51,7 +51,7 @@ Summary: The Linux kernel
|
|||
# For non-released -rc kernels, this will be prepended with "0.", so
|
||||
# for example a 3 here will become 0.3
|
||||
#
|
||||
%global baserelease 4
|
||||
%global baserelease 5
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
|
@ -672,6 +672,8 @@ Patch1555: fix_xen_guest_on_old_EC2.patch
|
|||
Patch1810: drm-nouveau-updates.patch
|
||||
Patch1819: drm-intel-big-hammer.patch
|
||||
# intel drm is all merged upstream
|
||||
# fix for 945G corruption will hit stable eventually
|
||||
Patch1821: drm-i915-fix-pipelined-fencing.patch
|
||||
Patch1824: drm-intel-next.patch
|
||||
# make sure the lvds comes back on lid open
|
||||
Patch1825: drm-intel-make-lvds-work.patch
|
||||
|
@ -1306,6 +1308,7 @@ ApplyPatch drm-intel-big-hammer.patch
|
|||
ApplyPatch drm-intel-make-lvds-work.patch
|
||||
ApplyPatch linux-2.6-intel-iommu-igfx.patch
|
||||
ApplyPatch drm-intel-edp-fixes.patch
|
||||
ApplyPatch drm-i915-fix-pipelined-fencing.patch
|
||||
# rhbz#681285 (i965: crash in brw_wm_surface_state.c::prepare_wm_surfaces()
|
||||
# where intelObj->mt == NULL)
|
||||
#ApplyPatch drm-i915-gen4-has-non-power-of-two-strides.patch
|
||||
|
@ -1970,6 +1973,9 @@ fi
|
|||
# and build.
|
||||
|
||||
%changelog
|
||||
* Wed Mar 23 2011 Dave Airlie <airlied@redhat.com> 2.6.38-5
|
||||
- i915: add fix for 945G misrendering terminal
|
||||
|
||||
* Tue Mar 22 2011 Ben Skeggs <bskeggs@redhat.com> 2.6.38-4
|
||||
- nouveau: implement missing bios opcode 0x5c (rhbz#688569)
|
||||
- nouveau: a couple of minor fixes from nouveau git
|
||||
|
|
Loading…
Reference in New Issue