Commit e2e96663 authored by Thomas Hellstrom's avatar Thomas Hellstrom
Browse files

drm/ttm, drm/vmwgfx: Use a configuration option for the TTM dma page pool



Drivers like vmwgfx may want to test whether the dma page pool is present
or not. Since it's activated by default by TTM if compiled-in, define a
hidden configuration option that the driver can test for.

Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
parent 3ca3a9ea
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -179,6 +179,13 @@ config DRM_TTM
	  GPU memory types. Will be enabled automatically if a device driver
	  uses it.

config DRM_TTM_DMA_PAGE_POOL
	bool
	depends on DRM_TTM && (SWIOTLB || INTEL_IOMMU)
	default y
	help
	  Choose this if you need the TTM dma page pool

config DRM_VRAM_HELPER
	tristate
	depends on DRM
+2 −2
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@

ttm-y := ttm_memory.o ttm_tt.o ttm_bo.o \
	ttm_bo_util.o ttm_bo_vm.o ttm_module.o \
	ttm_execbuf_util.o ttm_page_alloc.o ttm_bo_manager.o \
	ttm_page_alloc_dma.o
	ttm_execbuf_util.o ttm_page_alloc.o ttm_bo_manager.o
ttm-$(CONFIG_AGP) += ttm_agp_backend.o
ttm-$(CONFIG_DRM_TTM_DMA_PAGE_POOL) += ttm_page_alloc_dma.o

obj-$(CONFIG_DRM_TTM) += ttm.o
+0 −3
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@
 *   when freed).
 */

#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU)
#define pr_fmt(fmt) "[TTM] " fmt

#include <linux/dma-mapping.h>
@@ -1238,5 +1237,3 @@ int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data)
	return 0;
}
EXPORT_SYMBOL_GPL(ttm_dma_page_alloc_debugfs);

#endif
+1 −2
Original line number Diff line number Diff line
@@ -576,8 +576,7 @@ static int vmw_dma_select_mode(struct vmw_private *dev_priv)
	else
		dev_priv->map_mode = vmw_dma_map_populate;

	/* No TTM coherent page pool? FIXME: Ask TTM instead! */
        if (!(IS_ENABLED(CONFIG_SWIOTLB) || IS_ENABLED(CONFIG_INTEL_IOMMU)) &&
        if (!IS_ENABLED(CONFIG_DRM_TTM_DMA_PAGE_POOL) &&
	    (dev_priv->map_mode == vmw_dma_alloc_coherent))
		return -EINVAL;

+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ void ttm_unmap_and_unpopulate_pages(struct device *dev, struct ttm_dma_tt *tt);
 */
int ttm_page_alloc_debugfs(struct seq_file *m, void *data);

#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU)
#if defined(CONFIG_DRM_TTM_DMA_PAGE_POOL)
/**
 * Initialize pool allocator.
 */