summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d63b577)
raw | patch | inline | side by side (parent: d63b577)
author | Kristian Høgsberg <krh@redhat.com> | |
Tue, 5 Feb 2008 17:25:22 +0000 (12:25 -0500) | ||
committer | Kristian Høgsberg <krh@sasori.boston.redhat.com> | |
Wed, 13 Feb 2008 18:34:02 +0000 (13:34 -0500) |
shared-core/i915_dma.c | patch | blob | history | |
shared-core/i915_irq.c | patch | blob | history |
diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c
index 608723f4c786d46e5511405a43b35a28e2049c08..9619525d692b4740a506603856d5a31165d10945 100644 (file)
--- a/shared-core/i915_dma.c
+++ b/shared-core/i915_dma.c
dev_priv->max_validate_buffers = I915_MAX_VALIDATE_BUFFERS;
#endif
- dev_priv->sarea_priv = (drm_i915_sarea_t *)
- ((u8 *) dev_priv->sarea->handle + init->sarea_priv_offset);
+ if (init->sarea_priv_offset)
+ dev_priv->sarea_priv = (drm_i915_sarea_t *)
+ ((u8 *) dev_priv->sarea->handle +
+ init->sarea_priv_offset);
+ else {
+ /* No sarea_priv for you! */
+ dev_priv->sarea_priv = NULL;
+ }
dev_priv->ring.Start = init->ring_start;
dev_priv->ring.End = init->ring_end;
dev_priv->ring.virtual_start = dev_priv->ring.map.handle;
dev_priv->cpp = init->cpp;
- dev_priv->sarea_priv->pf_current_page = 0;
+
+ if (dev_priv->sarea_priv)
+ dev_priv->sarea_priv->pf_current_page = 0;
/* We are using separate values as placeholders for mechanisms for
* private backbuffer/depthbuffer usage.
DRM_DEBUG("Breadcrumb counter wrapped around\n");
}
- dev_priv->sarea_priv->last_enqueue = dev_priv->counter;
+ if (dev_priv->sarea_priv)
+ dev_priv->sarea_priv->last_enqueue = dev_priv->counter;
BEGIN_LP_RING(4);
OUT_RING(CMD_STORE_DWORD_IDX);
if (ret)
goto out_err0;
- sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
+ if (sarea_priv)
+ sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
/* fence */
ret = drm_fence_buffer_objects(dev, NULL, fence_arg->flags,
diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c
index d463f6e640f7bd63963ea933fc499f354d1438f8..fd08b6e89969feb55ef6b2575acf376bec160efa 100644 (file)
--- a/shared-core/i915_irq.c
+++ b/shared-core/i915_irq.c
temp &= (dev_priv->irq_enable_reg | USER_INT_FLAG | VSYNC_PIPEA_FLAG |
VSYNC_PIPEB_FLAG);
- dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
+ if (dev_priv->sarea_priv)
+ dev_priv->sarea_priv->last_dispatch =
+ READ_BREADCRUMB(dev_priv);
if (temp & USER_INT_FLAG) {
DRM_WAKEUP(&dev_priv->irq_queue);
READ_BREADCRUMB(dev_priv), (int)dev_priv->counter);
}
- dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
+ if (dev_priv->sarea_priv)
+ dev_priv->sarea_priv->last_dispatch =
+ READ_BREADCRUMB(dev_priv);
return ret;
}
return -EINVAL;
}
- if (dev_priv->sarea_priv->rotation) {
+ if (!dev_priv->sarea_priv || dev_priv->sarea_priv->rotation) {
DRM_DEBUG("Rotation not supported\n");
return -EINVAL;
}