drm/exynos: Fix dma_parms allocation
Since commit 9495b7e92f
("driver core: platform: Initialize dma_parms
for platform devices") driver core handles allocation of the dma_parms
structure for platform device, so there is no need to manually allocate
nor free it.
Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
231a474dd2
commit
ddfd4ab6bb
|
@ -31,23 +31,6 @@
|
|||
#define EXYNOS_DEV_ADDR_START 0x20000000
|
||||
#define EXYNOS_DEV_ADDR_SIZE 0x40000000
|
||||
|
||||
static inline int configure_dma_max_seg_size(struct device *dev)
|
||||
{
|
||||
if (!dev->dma_parms)
|
||||
dev->dma_parms = kzalloc(sizeof(*dev->dma_parms), GFP_KERNEL);
|
||||
if (!dev->dma_parms)
|
||||
return -ENOMEM;
|
||||
|
||||
dma_set_max_seg_size(dev, DMA_BIT_MASK(32));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void clear_dma_max_seg_size(struct device *dev)
|
||||
{
|
||||
kfree(dev->dma_parms);
|
||||
dev->dma_parms = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* drm_iommu_attach_device- attach device to iommu mapping
|
||||
*
|
||||
|
@ -69,10 +52,7 @@ static int drm_iommu_attach_device(struct drm_device *drm_dev,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = configure_dma_max_seg_size(subdrv_dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
dma_set_max_seg_size(subdrv_dev, DMA_BIT_MASK(32));
|
||||
if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)) {
|
||||
/*
|
||||
* Keep the original DMA mapping of the sub-device and
|
||||
|
@ -89,9 +69,6 @@ static int drm_iommu_attach_device(struct drm_device *drm_dev,
|
|||
ret = iommu_attach_device(priv->mapping, subdrv_dev);
|
||||
}
|
||||
|
||||
if (ret)
|
||||
clear_dma_max_seg_size(subdrv_dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -114,8 +91,6 @@ static void drm_iommu_detach_device(struct drm_device *drm_dev,
|
|||
arm_iommu_attach_device(subdrv_dev, *dma_priv);
|
||||
} else if (IS_ENABLED(CONFIG_IOMMU_DMA))
|
||||
iommu_detach_device(priv->mapping, subdrv_dev);
|
||||
|
||||
clear_dma_max_seg_size(subdrv_dev);
|
||||
}
|
||||
|
||||
int exynos_drm_register_dma(struct drm_device *drm, struct device *dev,
|
||||
|
|
Loading…
Reference in New Issue