summaryrefslogtreecommitdiff
path: root/sys/dev/pci/drm/ttm
diff options
context:
space:
mode:
authorJonathan Gray <jsg@jsg.id.au>2013-06-27 19:20:29 +1000
committerJonathan Gray <jsg@jsg.id.au>2013-08-12 10:43:10 +1000
commitd5f6537b851e45b4714b01042796b85cb0d186b8 (patch)
treee6eb205b5e2f37cc64cceda952f1763c94563287 /sys/dev/pci/drm/ttm
parentb77b03d91a147125dd7a0d9df42c324cea8e0843 (diff)
agp_flush_cache() before flushing the tlb, suggested by kettenis
lets the ring test pass on my t42
Diffstat (limited to 'sys/dev/pci/drm/ttm')
-rw-r--r--sys/dev/pci/drm/ttm/ttm_agp_backend.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/ttm/ttm_agp_backend.c b/sys/dev/pci/drm/ttm/ttm_agp_backend.c
index c0120a94cf2..5df6aaa028c 100644
--- a/sys/dev/pci/drm/ttm/ttm_agp_backend.c
+++ b/sys/dev/pci/drm/ttm/ttm_agp_backend.c
@@ -67,6 +67,7 @@ ttm_agp_bind(struct ttm_tt *ttm, struct ttm_mem_reg *bo_mem)
sc->sc_methods->bind_page(sc->sc_chipc, addr, VM_PAGE_TO_PHYS(page), 0);
addr += PAGE_SIZE;
}
+ agp_flush_cache();
sc->sc_methods->flush_tlb(sc->sc_chipc);
agp_be->bound = sc->sc_apaddr + (node->start << PAGE_SHIFT);
KASSERT(agp_be->bound);
@@ -88,6 +89,7 @@ ttm_agp_unbind(struct ttm_tt *ttm)
sc->sc_methods->unbind_page(sc->sc_chipc, addr);
addr += PAGE_SIZE;
}
+ agp_flush_cache();
sc->sc_methods->flush_tlb(sc->sc_chipc);
agp_be->bound = 0;
}