[PATCH 1/2] drm/ttm: Enable the dma page pool also for intel IOMMUs

Konrad Rzeszutek Wilk konrad.wilk at oracle.com
Mon Nov 4 08:34:45 PST 2013


On Mon, Nov 04, 2013 at 05:57:38AM -0800, Thomas Hellstrom wrote:
> Used by the vmwgfx driver

That looks OK to me. And baremetal should not be
affected as the Intel VT-d driver turns of the SWIOTLB
driver - so it will still use the classic ttm pool code.

Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>

> 
> Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
> Reviewed-by: Jakob Bornecrantz <jakob at vmware.com>
> ---
>  drivers/gpu/drm/ttm/Makefile             |    6 +-----
>  drivers/gpu/drm/ttm/ttm_page_alloc_dma.c |    3 +++
>  include/drm/ttm/ttm_page_alloc.h         |   11 ++++++++++-
>  3 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ttm/Makefile b/drivers/gpu/drm/ttm/Makefile
> index b2b33dd..b433b9f 100644
> --- a/drivers/gpu/drm/ttm/Makefile
> +++ b/drivers/gpu/drm/ttm/Makefile
> @@ -5,10 +5,6 @@ ccflags-y := -Iinclude/drm
>  ttm-y := ttm_agp_backend.o ttm_memory.o ttm_tt.o ttm_bo.o \
>  	ttm_bo_util.o ttm_bo_vm.o ttm_module.o \
>  	ttm_object.o ttm_lock.o ttm_execbuf_util.o ttm_page_alloc.o \
> -	ttm_bo_manager.o
> -
> -ifeq ($(CONFIG_SWIOTLB),y)
> -ttm-y += ttm_page_alloc_dma.o
> -endif
> +	ttm_bo_manager.o ttm_page_alloc_dma.o
>  
>  obj-$(CONFIG_DRM_TTM) += ttm.o
> diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
> index 7957bee..fb8259f 100644
> --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
> +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
> @@ -33,6 +33,7 @@
>   *   when freed).
>   */
>  
> +#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU)
>  #define pr_fmt(fmt) "[TTM] " fmt
>  
>  #include <linux/dma-mapping.h>
> @@ -1142,3 +1143,5 @@ int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data)
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(ttm_dma_page_alloc_debugfs);
> +
> +#endif
> diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h
> index 706b962..d1f61bf 100644
> --- a/include/drm/ttm/ttm_page_alloc.h
> +++ b/include/drm/ttm/ttm_page_alloc.h
> @@ -62,7 +62,7 @@ extern void ttm_pool_unpopulate(struct ttm_tt *ttm);
>  extern int ttm_page_alloc_debugfs(struct seq_file *m, void *data);
>  
>  
> -#ifdef CONFIG_SWIOTLB
> +#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU)
>  /**
>   * Initialize pool allocator.
>   */
> @@ -94,6 +94,15 @@ static inline int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data)
>  {
>  	return 0;
>  }
> +static inline int ttm_dma_populate(struct ttm_dma_tt *ttm_dma,
> +				   struct device *dev)
> +{
> +	return -ENOMEM;
> +}
> +static inline void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma,
> +				      struct device *dev)
> +{
> +}
>  #endif
>  
>  #endif
> -- 
> 1.7.10.4

------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
--
_______________________________________________
Dri-devel mailing list
Dri-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


More information about the dri-devel mailing list