args->pitch = args->width * ((args->bpp + 7) / 8);
        args->size = args->pitch * args->height;
 
-       exynos_gem_obj = exynos_drm_gem_create(dev, EXYNOS_BO_CONTIG |
-                                               EXYNOS_BO_WC, args->size);
-       /*
-        * If physically contiguous memory allocation fails and if IOMMU is
-        * supported then try to get buffer from non physically contiguous
-        * memory area.
-        */
-       if (IS_ERR(exynos_gem_obj) && is_drm_iommu_supported(dev)) {
-               dev_warn(dev->dev, "contiguous FB allocation failed, falling back to non-contiguous\n");
+       if (is_drm_iommu_supported(dev)) {
+               exynos_gem_obj = exynos_drm_gem_create(dev,
+                       EXYNOS_BO_NONCONTIG | EXYNOS_BO_WC,
+                       args->size);
+       } else {
                exynos_gem_obj = exynos_drm_gem_create(dev,
-                                       EXYNOS_BO_NONCONTIG | EXYNOS_BO_WC,
-                                       args->size);
+                       EXYNOS_BO_CONTIG | EXYNOS_BO_WC,
+                       args->size);
        }
 
-       if (IS_ERR(exynos_gem_obj))
+       if (IS_ERR(exynos_gem_obj)) {
+               dev_warn(dev->dev, "FB allocation failed.\n");
                return PTR_ERR(exynos_gem_obj);
+       }
 
        ret = exynos_drm_gem_handle_create(&exynos_gem_obj->base, file_priv,
                        &args->handle);