Hi Robin, As Marek said, he posted same patch[1] before so I merged it instead of you. I totally forgot to merge it. :( Sorry for confusing. [1] https://lore.kernel.org/dri-devel/20200707110827.3760-1-m.szyprowski@xxxxxxxxxxx/ Thanks, Inki Dae 20. 9. 4. 오전 5:51에 Robin Murphy 이(가) 쓴 글: > Since commit 9495b7e92f71 ("driver core: platform: Initialize dma_parms > for platform devices"), struct platform_device already provides a > dma_parms structure, so we can save allocating another one. > > Also the DMA segment size is simply a size, not a bitmask. > > Signed-off-by: Robin Murphy <robin.murphy@xxxxxxx> > --- > drivers/gpu/drm/exynos/exynos_drm_dma.c | 26 +------------------------ > 1 file changed, 1 insertion(+), 25 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_dma.c b/drivers/gpu/drm/exynos/exynos_drm_dma.c > index 58b89ec11b0e..9f25a5ebbf7d 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_dma.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_dma.c > @@ -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,9 +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, UINT_MAX); > > if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)) { > /* > @@ -89,9 +70,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 +92,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, >