mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
drm/exynos: remove unnecessary checking to support iommu
Already drm_iommu_attach_device and drm_iommu_detach_device check whether support iommu internally, so we don't have to call is_drm_iommu_supported before call them. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
b24919575e
commit
bf56608a73
7 changed files with 13 additions and 38 deletions
|
@ -514,8 +514,7 @@ static void decon_unbind(struct device *dev, struct device *master, void *data)
|
|||
decon_disable(ctx->crtc);
|
||||
|
||||
/* detach this sub driver from iommu mapping if supported. */
|
||||
if (is_drm_iommu_supported(ctx->drm_dev))
|
||||
drm_iommu_detach_device(ctx->drm_dev, ctx->dev);
|
||||
drm_iommu_detach_device(ctx->drm_dev, ctx->dev);
|
||||
}
|
||||
|
||||
static const struct component_ops decon_component_ops = {
|
||||
|
|
|
@ -136,8 +136,7 @@ static int decon_ctx_initialize(struct decon_context *ctx,
|
|||
static void decon_ctx_remove(struct decon_context *ctx)
|
||||
{
|
||||
/* detach this sub driver from iommu mapping if supported. */
|
||||
if (is_drm_iommu_supported(ctx->drm_dev))
|
||||
drm_iommu_detach_device(ctx->drm_dev, ctx->dev);
|
||||
drm_iommu_detach_device(ctx->drm_dev, ctx->dev);
|
||||
}
|
||||
|
||||
static u32 decon_calc_clkdiv(struct decon_context *ctx,
|
||||
|
|
|
@ -348,13 +348,6 @@ static void fimd_clear_channels(struct exynos_drm_crtc *crtc)
|
|||
pm_runtime_put(ctx->dev);
|
||||
}
|
||||
|
||||
static void fimd_iommu_detach_devices(struct fimd_context *ctx)
|
||||
{
|
||||
/* detach this sub driver from iommu mapping if supported. */
|
||||
if (is_drm_iommu_supported(ctx->drm_dev))
|
||||
drm_iommu_detach_device(ctx->drm_dev, ctx->dev);
|
||||
}
|
||||
|
||||
static u32 fimd_calc_clkdiv(struct fimd_context *ctx,
|
||||
const struct drm_display_mode *mode)
|
||||
{
|
||||
|
@ -978,7 +971,7 @@ static void fimd_unbind(struct device *dev, struct device *master,
|
|||
|
||||
fimd_disable(ctx->crtc);
|
||||
|
||||
fimd_iommu_detach_devices(ctx);
|
||||
drm_iommu_detach_device(ctx->drm_dev, ctx->dev);
|
||||
|
||||
if (ctx->display)
|
||||
exynos_dpi_remove(ctx->display);
|
||||
|
|
|
@ -1319,9 +1319,6 @@ static int g2d_subdrv_probe(struct drm_device *drm_dev, struct device *dev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
if (!is_drm_iommu_supported(drm_dev))
|
||||
return 0;
|
||||
|
||||
ret = drm_iommu_attach_device(drm_dev, dev);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "failed to enable iommu.\n");
|
||||
|
@ -1334,9 +1331,6 @@ static int g2d_subdrv_probe(struct drm_device *drm_dev, struct device *dev)
|
|||
|
||||
static void g2d_subdrv_remove(struct drm_device *drm_dev, struct device *dev)
|
||||
{
|
||||
if (!is_drm_iommu_supported(drm_dev))
|
||||
return;
|
||||
|
||||
drm_iommu_detach_device(drm_dev, dev);
|
||||
}
|
||||
|
||||
|
|
|
@ -87,10 +87,8 @@ int drm_iommu_attach_device(struct drm_device *drm_dev,
|
|||
struct device *dev = drm_dev->dev;
|
||||
int ret;
|
||||
|
||||
if (!dev->archdata.mapping) {
|
||||
DRM_ERROR("iommu_mapping is null.\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
if (!dev->archdata.mapping)
|
||||
return 0;
|
||||
|
||||
subdrv_dev->dma_parms = devm_kzalloc(subdrv_dev,
|
||||
sizeof(*subdrv_dev->dma_parms),
|
||||
|
@ -148,13 +146,10 @@ void drm_iommu_detach_device(struct drm_device *drm_dev,
|
|||
int drm_iommu_attach_device_if_possible(struct exynos_drm_crtc *exynos_crtc,
|
||||
struct drm_device *drm_dev, struct device *subdrv_dev)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (is_drm_iommu_supported(drm_dev)) {
|
||||
if (exynos_crtc->ops->clear_channels)
|
||||
exynos_crtc->ops->clear_channels(exynos_crtc);
|
||||
return drm_iommu_attach_device(drm_dev, subdrv_dev);
|
||||
}
|
||||
|
||||
return ret;
|
||||
return drm_iommu_attach_device(drm_dev, subdrv_dev);
|
||||
}
|
||||
|
|
|
@ -1622,12 +1622,10 @@ static int ipp_subdrv_probe(struct drm_device *drm_dev, struct device *dev)
|
|||
INIT_LIST_HEAD(&ippdrv->cmd_list);
|
||||
mutex_init(&ippdrv->cmd_lock);
|
||||
|
||||
if (is_drm_iommu_supported(drm_dev)) {
|
||||
ret = drm_iommu_attach_device(drm_dev, ippdrv->dev);
|
||||
if (ret) {
|
||||
DRM_ERROR("failed to activate iommu\n");
|
||||
goto err;
|
||||
}
|
||||
ret = drm_iommu_attach_device(drm_dev, ippdrv->dev);
|
||||
if (ret) {
|
||||
DRM_ERROR("failed to activate iommu\n");
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1637,8 +1635,7 @@ static int ipp_subdrv_probe(struct drm_device *drm_dev, struct device *dev)
|
|||
/* get ipp driver entry */
|
||||
list_for_each_entry_continue_reverse(ippdrv, &exynos_drm_ippdrv_list,
|
||||
drv_list) {
|
||||
if (is_drm_iommu_supported(drm_dev))
|
||||
drm_iommu_detach_device(drm_dev, ippdrv->dev);
|
||||
drm_iommu_detach_device(drm_dev, ippdrv->dev);
|
||||
|
||||
ipp_remove_id(&ctx->ipp_idr, &ctx->ipp_lock,
|
||||
ippdrv->prop_list.ipp_id);
|
||||
|
@ -1654,8 +1651,7 @@ static void ipp_subdrv_remove(struct drm_device *drm_dev, struct device *dev)
|
|||
|
||||
/* get ipp driver entry */
|
||||
list_for_each_entry_safe(ippdrv, t, &exynos_drm_ippdrv_list, drv_list) {
|
||||
if (is_drm_iommu_supported(drm_dev))
|
||||
drm_iommu_detach_device(drm_dev, ippdrv->dev);
|
||||
drm_iommu_detach_device(drm_dev, ippdrv->dev);
|
||||
|
||||
ipp_remove_id(&ctx->ipp_idr, &ctx->ipp_lock,
|
||||
ippdrv->prop_list.ipp_id);
|
||||
|
|
|
@ -891,8 +891,7 @@ static int mixer_initialize(struct mixer_context *mixer_ctx,
|
|||
|
||||
static void mixer_ctx_remove(struct mixer_context *mixer_ctx)
|
||||
{
|
||||
if (is_drm_iommu_supported(mixer_ctx->drm_dev))
|
||||
drm_iommu_detach_device(mixer_ctx->drm_dev, mixer_ctx->dev);
|
||||
drm_iommu_detach_device(mixer_ctx->drm_dev, mixer_ctx->dev);
|
||||
}
|
||||
|
||||
static int mixer_enable_vblank(struct exynos_drm_crtc *crtc)
|
||||
|
|
Loading…
Reference in a new issue