diff options
author | Alexandre Courbot <acourbot@nvidia.com> | 2014-08-04 18:28:54 +0900 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-08-10 01:08:03 +1000 |
commit | 3d50d4dcb0c4e0e01f45ae15df34ab6a04fb35bb (patch) | |
tree | e4185162685c07ad2b592cf7c6bcb882cfb660e4 /drivers/gpu/drm/ttm/ttm_page_alloc_dma.c | |
parent | 7963e9db1b1f842fdc53309baa8714d38e9f5681 (diff) | |
download | talos-op-linux-3d50d4dcb0c4e0e01f45ae15df34ab6a04fb35bb.tar.gz talos-op-linux-3d50d4dcb0c4e0e01f45ae15df34ab6a04fb35bb.zip |
drm/ttm: expose CPU address of DMA-allocated pages
Pages allocated using the DMA API have a coherent memory mapping. Make
this mapping visible to drivers so they can decide to use it instead of
creating their own redundant one.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Acked-by: David Airlie <airlied@linux.ie>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/ttm/ttm_page_alloc_dma.c')
-rw-r--r-- | drivers/gpu/drm/ttm/ttm_page_alloc_dma.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c index ca65df144765..c96db433f8af 100644 --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c @@ -848,6 +848,7 @@ static int ttm_dma_pool_get_pages(struct dma_pool *pool, if (count) { d_page = list_first_entry(&pool->free_list, struct dma_page, page_list); ttm->pages[index] = d_page->p; + ttm_dma->cpu_address[index] = d_page->vaddr; ttm_dma->dma_address[index] = d_page->dma; list_move_tail(&d_page->page_list, &ttm_dma->pages_list); r = 0; @@ -979,6 +980,7 @@ void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev) INIT_LIST_HEAD(&ttm_dma->pages_list); for (i = 0; i < ttm->num_pages; i++) { ttm->pages[i] = NULL; + ttm_dma->cpu_address[i] = 0; ttm_dma->dma_address[i] = 0; } |