aboutsummaryrefslogtreecommitdiff
path: root/shared-core/r128_cce.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2005-08-16 12:51:57 +0000
committerDave Airlie <airlied@linux.ie>2005-08-16 12:51:57 +0000
commit7af0186f4ccef285c2158770781ebfc3a26ddd66 (patch)
treee38ae798b605e3c433ba5d1a6c153baf0e9c15ce /shared-core/r128_cce.c
parent8c21b783c3e38aa2c2d16e11ec01cf695f8e7f8a (diff)
add Egberts 32/64 bit patch (its in kernel already...)
Diffstat (limited to 'shared-core/r128_cce.c')
-rw-r--r--shared-core/r128_cce.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/shared-core/r128_cce.c b/shared-core/r128_cce.c
index 34348cf0..33553670 100644
--- a/shared-core/r128_cce.c
+++ b/shared-core/r128_cce.c
@@ -323,7 +323,8 @@ static void r128_cce_init_ring_buffer(drm_device_t * dev,
ring_start = dev_priv->cce_ring->offset - dev->agp->base;
else
#endif
- ring_start = dev_priv->cce_ring->offset - dev->sg->handle;
+ ring_start = dev_priv->cce_ring->offset -
+ (unsigned long)dev->sg->virtual;
R128_WRITE(R128_PM4_BUFFER_OFFSET, ring_start | R128_AGP_OFFSET);
@@ -484,6 +485,7 @@ static int r128_do_init_cce(drm_device_t * dev, drm_r128_init_t * init)
r128_do_cleanup_cce(dev);
return DRM_ERR(EINVAL);
}
+ dev->agp_buffer_token = init->buffers_offset;
dev->agp_buffer_map = drm_core_findmap(dev, init->buffers_offset);
if (!dev->agp_buffer_map) {
DRM_ERROR("could not find dma buffer region!\n");
@@ -535,7 +537,7 @@ static int r128_do_init_cce(drm_device_t * dev, drm_r128_init_t * init)
dev_priv->cce_buffers_offset = dev->agp->base;
else
#endif
- dev_priv->cce_buffers_offset = dev->sg->handle;
+ dev_priv->cce_buffers_offset = (unsigned long)dev->sg->virtual;
dev_priv->ring.start = (u32 *) dev_priv->cce_ring->handle;
dev_priv->ring.end = ((u32 *) dev_priv->cce_ring->handle