summaryrefslogtreecommitdiff
path: root/shared-core
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2008-08-13 10:08:02 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2008-08-13 10:08:02 -0700
commit2f03ba4aad1718a36168550b6a146b79540252e6 (patch)
tree7bc55a8948f00c60ad2354171dd345e35e6ff741 /shared-core
parent085df6491e4975681a6e17ff9a67d01268aa7553 (diff)
parentb0e68829462aad00ce68be998da6313bca754e9a (diff)
Merge branch 'master' into modesetting-gem
Conflicts: libdrm/Makefile.am libdrm/xf86drm.h shared-core/i915_dma.c shared-core/i915_irq.c
Diffstat (limited to 'shared-core')
-rw-r--r--shared-core/i915_irq.c1
-rw-r--r--shared-core/nv40_graph.c10
2 files changed, 5 insertions, 6 deletions
diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c
index 1b294bbd..28fa35fd 100644
--- a/shared-core/i915_irq.c
+++ b/shared-core/i915_irq.c
@@ -1119,6 +1119,7 @@ int i915_driver_irq_postinstall(struct drm_device * dev)
DRM_SPININIT(&dev_priv->user_irq_lock, "userirq");
dev_priv->user_irq_refcount = 0;
+ dev_priv->irq_mask_reg = ~0;
ret = drm_vblank_init(dev, num_pipes);
if (ret)
diff --git a/shared-core/nv40_graph.c b/shared-core/nv40_graph.c
index 2540fc5f..de178f57 100644
--- a/shared-core/nv40_graph.c
+++ b/shared-core/nv40_graph.c
@@ -1544,6 +1544,8 @@ nv40_graph_transfer_context(struct drm_device *dev, uint32_t inst, int save)
tmp |= NV40_PGRAPH_CTXCTL_0304_XFER_CTX;
NV_WRITE(NV40_PGRAPH_CTXCTL_0304, tmp);
+ nouveau_wait_for_idle(dev);
+
for (i = 0; i < tv; i++) {
if (NV_READ(NV40_PGRAPH_CTXCTL_030C) == 0)
break;
@@ -1565,9 +1567,7 @@ nv40_graph_transfer_context(struct drm_device *dev, uint32_t inst, int save)
return 0;
}
-/* Save current context (from PGRAPH) into the channel's context
- *XXX: fails sometimes, not sure why..
- */
+/* Save current context (from PGRAPH) into the channel's context */
int
nv40_graph_save_context(struct nouveau_channel *chan)
{
@@ -1581,9 +1581,7 @@ nv40_graph_save_context(struct nouveau_channel *chan)
return nv40_graph_transfer_context(dev, inst, 1);
}
-/* Restore the context for a specific channel into PGRAPH
- * XXX: fails sometimes.. not sure why
- */
+/* Restore the context for a specific channel into PGRAPH */
int
nv40_graph_load_context(struct nouveau_channel *chan)
{