Module Name: src Committed By: riastradh Date: Sat Jul 26 05:23:11 UTC 2014
Modified Files: src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c Log Message: Fix little arithmetic mistakes in radeon_gart.c. Unlikely to fix the failing ring tests on boot, though. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.3 Thu Jul 17 17:29:39 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c Sat Jul 26 05:23:11 2014 @@ -262,9 +262,14 @@ radeon_gart_pre_update(struct radeon_dev unsigned gpu_npages) { - if (rdev->gart.rg_table_map != NULL) + if (rdev->gart.rg_table_map != NULL) { + const unsigned entsize = + rdev->gart.table_size / rdev->gart.num_gpu_pages; + bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map, - gpu_pgstart*4, gpu_npages*4, BUS_DMASYNC_PREWRITE); + gpu_pgstart*entsize, gpu_npages*entsize, + BUS_DMASYNC_PREWRITE); + } } static void @@ -273,9 +278,14 @@ radeon_gart_post_update(struct radeon_de { membar_sync(); /* XXX overkill */ - if (rdev->gart.rg_table_map != NULL) + if (rdev->gart.rg_table_map != NULL) { + const unsigned entsize = + rdev->gart.table_size / rdev->gart.num_gpu_pages; + bus_dmamap_sync(rdev->ddev->dmat, rdev->gart.rg_table_map, - gpu_pgstart*4, gpu_npages*4, BUS_DMASYNC_POSTWRITE); + gpu_pgstart*entsize, gpu_npages*entsize, + BUS_DMASYNC_POSTWRITE); + } radeon_gart_tlb_flush(rdev); } #endif @@ -289,7 +299,7 @@ radeon_gart_unbind(struct radeon_device unsigned npages) { const unsigned gpu_per_cpu = (PAGE_SIZE / RADEON_GPU_PAGE_SIZE); - const unsigned gpu_npages = (npages / gpu_per_cpu); + const unsigned gpu_npages = (npages * gpu_per_cpu); const unsigned gpu_pgstart = (gpu_start / RADEON_GPU_PAGE_SIZE); const unsigned pgstart = (gpu_pgstart / gpu_per_cpu); unsigned pgno, gpu_pgno; @@ -367,7 +377,7 @@ radeon_gart_bind(struct radeon_device *r unsigned npages, struct page **pages, bus_dmamap_t dmamap) { const unsigned gpu_per_cpu = (PAGE_SIZE / RADEON_GPU_PAGE_SIZE); - const unsigned gpu_npages = (npages / gpu_per_cpu); + const unsigned gpu_npages = (npages * gpu_per_cpu); const unsigned gpu_pgstart = (gpu_start / RADEON_GPU_PAGE_SIZE); const unsigned pgstart = (gpu_pgstart / gpu_per_cpu); unsigned pgno, gpu_pgno;