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@xxxxxxxxxxx> > --- > 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; > > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel