summaryrefslogtreecommitdiff
path: root/shared-core/radeon_cp.c
diff options
context:
space:
mode:
authorJerome Glisse <glisse@freedesktop.org>2007-10-28 00:55:27 +0200
committerJerome Glisse <glisse@freedesktop.org>2007-10-28 00:55:27 +0200
commit90d8f792794d46d1a8e998856bc7bbe54596114b (patch)
treeb44d6ad311127ae44457635f3e59e51290a3838a /shared-core/radeon_cp.c
parent343696583c77983ac7689b24cd49529864035cf7 (diff)
parent89d44a1023543a95b429bf72662b5e2308b0a550 (diff)
Merge branch 'radeon-ttm' of git://people.freedesktop.org/~airlied/drm into modesetting-101
Conflicts: linux-core/Makefile.kernel linux-core/drmP.h shared-core/radeon_cp.c shared-core/radeon_drv.h shared-core/radeon_irq.c modified: linux-core/Makefile.kernel modified: linux-core/ati_pcigart.c modified: linux-core/drmP.h new file: linux-core/radeon_buffer.c modified: linux-core/radeon_drv.c new file: linux-core/radeon_fence.c modified: shared-core/radeon_cp.c modified: shared-core/radeon_drm.h modified: shared-core/radeon_drv.h modified: shared-core/radeon_irq.c modified: tests/ttmtest/src/ttmtest.c
Diffstat (limited to 'shared-core/radeon_cp.c')
-rw-r--r--shared-core/radeon_cp.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/shared-core/radeon_cp.c b/shared-core/radeon_cp.c
index 06861381..006d04f3 100644
--- a/shared-core/radeon_cp.c
+++ b/shared-core/radeon_cp.c
@@ -1390,6 +1390,28 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on)
}
}
+void radeon_gart_flush(struct drm_device *dev)
+{
+ drm_radeon_private_t *dev_priv = dev->dev_private;
+
+ if (dev_priv->flags & RADEON_IS_IGPGART) {
+ RADEON_READ_IGPGART(dev_priv, RADEON_IGPGART_FLUSH);
+ RADEON_WRITE_IGPGART(RADEON_IGPGART_FLUSH, 0x1);
+ RADEON_READ_IGPGART(dev_priv, RADEON_IGPGART_FLUSH);
+ RADEON_WRITE_IGPGART(RADEON_IGPGART_FLUSH, 0x0);
+ } else if (dev_priv->flags & RADEON_IS_PCIE) {
+ u32 tmp = RADEON_READ_PCIE(dev_priv, RADEON_PCIE_TX_GART_CNTL);
+ tmp |= RADEON_PCIE_TX_GART_INVALIDATE_TLB;
+ RADEON_WRITE_PCIE(RADEON_PCIE_TX_GART_CNTL, tmp);
+ tmp &= ~RADEON_PCIE_TX_GART_INVALIDATE_TLB;
+ RADEON_WRITE_PCIE(RADEON_PCIE_TX_GART_CNTL, tmp);
+ } else {
+
+
+ }
+
+}
+
static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init)
{
drm_radeon_private_t *dev_priv = dev->dev_private;
@@ -2301,6 +2323,9 @@ int radeon_driver_firstopen(struct drm_device *dev)
if (ret != 0)
return ret;
+#ifdef RADEON_HAVE_BUFFER
+ drm_bo_driver_init(dev);
+#endif
return 0;
}