summaryrefslogtreecommitdiff
path: root/linux-core/radeon_gem.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-09-05 10:56:18 +1000
committerDave Airlie <airlied@redhat.com>2008-09-05 10:57:47 +1000
commit9f9f171f8e0ad817414e6218b44579171d03cec0 (patch)
treed872b22143d83524c57a510b59858c3a02ad9e65 /linux-core/radeon_gem.c
parentfe59d04a7c30692952652f77529deb22a3e0c8bb (diff)
radeon: rs690 GART tables need to be in uncached memory.
Allocate the rs480/690 tables from uncached memory.
Diffstat (limited to 'linux-core/radeon_gem.c')
-rw-r--r--linux-core/radeon_gem.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/linux-core/radeon_gem.c b/linux-core/radeon_gem.c
index 44a0f1d1..24c806a1 100644
--- a/linux-core/radeon_gem.c
+++ b/linux-core/radeon_gem.c
@@ -613,17 +613,18 @@ static int radeon_gart_init(struct drm_device *dev)
} else if (!(dev_priv->flags & RADEON_IS_AGP)) {
/* allocate PCI GART table */
dev_priv->gart_info.table_mask = DMA_BIT_MASK(32);
+ dev_priv->gart_info.gart_table_location = DRM_ATI_GART_MAIN;
+ if (dev_priv->flags & RADEON_IS_IGPGART)
+ dev_priv->gart_info.gart_reg_if = DRM_ATI_GART_IGP;
+ else
+ dev_priv->gart_info.gart_reg_if = DRM_ATI_GART_PCI;
+
ret = drm_ati_alloc_pcigart_table(dev, &dev_priv->gart_info);
if (ret) {
DRM_ERROR("cannot allocate PCI GART page!\n");
return -EINVAL;
}
- dev_priv->gart_info.gart_table_location = DRM_ATI_GART_MAIN;
- if (dev_priv->flags & RADEON_IS_IGPGART)
- dev_priv->gart_info.gart_reg_if = DRM_ATI_GART_IGP;
- else
- dev_priv->gart_info.gart_reg_if = DRM_ATI_GART_PCI;
dev_priv->gart_info.addr = dev_priv->gart_info.table_handle->vaddr;
dev_priv->gart_info.bus_addr = dev_priv->gart_info.table_handle->busaddr;
}