[PATCH 08/10] drm/exynos: initialize DMA ops for virtual Exynos DRM device

Marek Szyprowski m.szyprowski at samsung.com
Fri Feb 12 08:44:25 UTC 2016


Hello,

On 2016-02-12 06:55, Inki Dae wrote:
> 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) { };

I don't think this is a good idea - the result will be same as not applying
the patch at all. Please drop this patch for now, I will rework it while
adding support for generic IOMMU for ARM and ARM64.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland



More information about the dri-devel mailing list