[PATCH 08/10] drm/exynos: initialize DMA ops for virtual Exynos DRM device
Inki Dae
inki.dae at samsung.com
Fri Feb 12 05:55:51 UTC 2016
Hi Marek,
2016년 02월 03일 21:42에 Marek Szyprowski 이(가) 쓴 글:
> Virtual DRM device is used for memory allocation for GEM objects. On
> some architectures null dma operations are assigned for virtual devices
> if no explicit initialization has been made.
>
> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
> ---
> drivers/gpu/drm/exynos/exynos_drm_drv.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index 68f0f36..a33ea44 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -144,6 +144,7 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
> init_waitqueue_head(&private->wait);
> spin_lock_init(&private->lock);
>
> + arch_setup_dma_ops(dev->dev, 0, DMA_BIT_MASK(32), false, false);
As you got the report, above function incurrs build error below,
ERROR: "arch_setup_dma_ops" [drivers/gpu/drm/exynos/exynosdrm.ko] undefined!
Exynos drm can be built as a module. In this case, arch_setup_dma_ops cannot be accessed by the module.
I could fix it easily like below but I'm not sure that it's reasonable.
+extern void arch_setup_dma_ops(struct device *dev, u64 dma_base,
+ u64 size, struct iommu_ops *iommu,
+ bool coherent) { };
Thanks,
Inki Dae
> dev_set_drvdata(dev->dev, dev);
> dev->dev_private = (void *)private;
>
>
More information about the dri-devel
mailing list