* [PATCH] drm/exynos: Drop local dma_parms @ 2020-09-03 20:51 ` Robin Murphy 2020-09-04 7:28 ` Marek Szyprowski 2020-09-22 4:52 ` Inki Dae 0 siblings, 2 replies; 4+ messages in thread From: Robin Murphy @ 2020-09-03 20:51 UTC (permalink / raw) To: inki.dae, jy0922.shim, sw0312.kim, kyungmin.park Cc: dri-devel, linux-arm-kernel, linux-samsung-soc 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@arm.com> --- 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, -- 2.28.0.dirty ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/exynos: Drop local dma_parms 2020-09-03 20:51 ` [PATCH] drm/exynos: Drop local dma_parms Robin Murphy @ 2020-09-04 7:28 ` Marek Szyprowski 2020-09-21 1:17 ` Inki Dae 2020-09-22 4:52 ` Inki Dae 1 sibling, 1 reply; 4+ messages in thread From: Marek Szyprowski @ 2020-09-04 7:28 UTC (permalink / raw) To: Robin Murphy, inki.dae, jy0922.shim, sw0312.kim, kyungmin.park Cc: linux-samsung-soc, linux-arm-kernel, dri-devel Hi Robin, On 03.09.2020 22:51, Robin Murphy wrote: > 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@arm.com> I've sent a similar patch over 2 months ago, but it looks it got lost: https://lore.kernel.org/dri-devel/20200707110827.3760-1-m.szyprowski@samsung.com/ Inki, could You queue it for merge? > --- > 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, Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/exynos: Drop local dma_parms 2020-09-04 7:28 ` Marek Szyprowski @ 2020-09-21 1:17 ` Inki Dae 0 siblings, 0 replies; 4+ messages in thread From: Inki Dae @ 2020-09-21 1:17 UTC (permalink / raw) To: Marek Szyprowski, Robin Murphy, jy0922.shim, sw0312.kim, kyungmin.park Cc: linux-samsung-soc, linux-arm-kernel, dri-devel Hi Marek, 20. 9. 4. 오후 4:28에 Marek Szyprowski 이(가) 쓴 글: > Hi Robin, > > On 03.09.2020 22:51, Robin Murphy wrote: >> 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@arm.com> > > I've sent a similar patch over 2 months ago, but it looks it got lost: > > https://lore.kernel.org/dri-devel/20200707110827.3760-1-m.szyprowski@samsung.com/ > > Inki, could You queue it for merge? Oops, sorry. Reviewed already but forgot to merge. Thanks, Inki Dae > >> --- >> 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, > > Best regards > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/exynos: Drop local dma_parms 2020-09-03 20:51 ` [PATCH] drm/exynos: Drop local dma_parms Robin Murphy 2020-09-04 7:28 ` Marek Szyprowski @ 2020-09-22 4:52 ` Inki Dae 1 sibling, 0 replies; 4+ messages in thread From: Inki Dae @ 2020-09-22 4:52 UTC (permalink / raw) To: Robin Murphy, jy0922.shim, sw0312.kim, kyungmin.park Cc: dri-devel, linux-arm-kernel, linux-samsung-soc 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@samsung.com/ 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@arm.com> > --- > 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, > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-09-22 4:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20200903205201eucas1p124161a3310b7a0a3ba077a8369daa45b@eucas1p1.samsung.com>
2020-09-03 20:51 ` [PATCH] drm/exynos: Drop local dma_parms Robin Murphy
2020-09-04 7:28 ` Marek Szyprowski
2020-09-21 1:17 ` Inki Dae
2020-09-22 4:52 ` Inki Dae
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox