alistair23-linux/drivers/gpu/drm/ttm
Konrad Rzeszutek Wilk 69a07f0b11 ttm: Utilize the DMA API for pages that have TTM_PAGE_FLAG_DMA32 set.
For pages that have the TTM_PAGE_FLAG_DMA32 flag set we
use the DMA API. We save the bus address in our array which we
use to program the GART (see "radeon/ttm/PCIe: Use dma_addr if TTM
has set it." and "nouveau/ttm/PCIe: Use dma_addr if TTM has set it.").

The reason behind using the DMA API is that under Xen we would
end up programming the GART with the bounce buffer (SWIOTLB)
DMA address instead of the physical DMA address of the TTM page.
The reason being that alloc_page with GFP_DMA32 does not allocate
pages under the the 4GB mark when running under Xen hypervisor.

Under baremetal this means we do the DMA API call earlier instead
of when we program the GART.

For details please refer to:
https://lkml.org/lkml/2011/1/7/251

[v2: Fixed indentation, revised desc, added Reviewed-by]
Reviewed-by: Thomas Hellstrom <thomas@shipmail.org>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Tested-by: Ian Campbell <ian.campbell@citrix.com>
2011-01-27 16:03:09 -05:00
..
Makefile drm/ttm: restructure to allow driver to plug in alternate memory manager 2010-10-05 10:01:20 +10:00
ttm_agp_backend.c drm/ttm: restructure to allow driver to plug in alternate memory manager 2010-10-05 10:01:20 +10:00
ttm_bo.c drm/ttm: Be consistent on ttm_bo_init() failures 2010-11-10 11:52:19 +10:00
ttm_bo_manager.c drm/ttm: Use private locks for the default bo range manager 2010-11-09 13:33:24 +10:00
ttm_bo_util.c Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
ttm_bo_vm.c drm/ttm: ttm_fault callback to allow driver to handle bo placement V6 2010-04-20 14:12:05 +10:00
ttm_execbuf_util.c drm/ttm: Add TTM execbuf utilities. 2009-12-07 15:22:05 +10:00
ttm_lock.c drm/ttm: Remove some leftover debug messages. 2010-05-07 09:20:56 +10:00
ttm_memory.c Merge branch 'drm-ttm-pool' into drm-core-next 2010-04-20 13:12:28 +10:00
ttm_module.c drm: move ttm global code to core drm 2010-08-04 09:46:06 +10:00
ttm_object.c drm/ttm: remove padding from ttm_ref_object on 64bit builds 2010-02-01 11:24:50 +10:00
ttm_page_alloc.c ttm: Utilize the DMA API for pages that have TTM_PAGE_FLAG_DMA32 set. 2011-01-27 16:03:09 -05:00
ttm_tt.c ttm: Introduce a placeholder for DMA (bus) addresses. 2011-01-27 16:02:31 -05:00