Hi Inki, On Tue, Aug 6, 2013 at 5:27 PM, Sachin Kamat <sachin.kamat@xxxxxxxxxx> wrote: > On 6 August 2013 17:22, Vikas Sajjan <vikas.sajjan@xxxxxxxxxx> wrote: >> While trying to get boot-logo up on exynos5420 SMDK which has eDP panel >> connected with resolution 2560x1600, following error occured even with >> IOMMU enabled: >> [0.880000] [drm:lowlevel_buffer_allocate] *ERROR* failed to allocate buffer. >> [0.890000] [drm] Initialized exynos 1.0.0 20110530 on minor 0 >> >> To address the cases where physically contiguous memory MAY NOT be a >> mandatory requirement for fb, the patch adds a feature to get non physically >> contiguous memory for fb if physically contiguous memory allocation fails >> and if IOMMU is supported. >> >> Signed-off-by: Vikas Sajjan <vikas.sajjan@xxxxxxxxxx> >> Signed-off-by: Arun Kumar <arun.kk@xxxxxxxxxxx> >> Reviewed-by: Rob Clark <robdclark@xxxxxxxxx> >> --- >> changes since v3: >> - addressed nits pointed out by Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx> >> and Sachin Kamat <sachin.kamat@xxxxxxxxxx>. >> >> changes since v2: >> - addressed comments given by Tomasz Figa <tomasz.figa@xxxxxxxxx>. >> >> changes since v1: >> - Modified to add the fallback patch if CONTIG alloc fails as suggested >> by Rob Clark robdclark@xxxxxxxxx and Tomasz Figa <tomasz.figa@xxxxxxxxx>. >> >> - changed the commit message. >> --- >> drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 15 +++++++++++++-- >> 1 file changed, 13 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c >> index 8e60bd6..5292fc7 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c >> @@ -16,6 +16,7 @@ >> #include <drm/drm_crtc.h> >> #include <drm/drm_fb_helper.h> >> #include <drm/drm_crtc_helper.h> >> +#include <drm/exynos_drm.h> >> >> #include "exynos_drm_drv.h" >> #include "exynos_drm_fb.h" >> @@ -165,8 +166,18 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper, >> >> size = mode_cmd.pitches[0] * mode_cmd.height; >> >> - /* 0 means to allocate physically continuous memory */ >> - exynos_gem_obj = exynos_drm_gem_create(dev, 0, size); >> + exynos_gem_obj = exynos_drm_gem_create(dev, EXYNOS_BO_CONTIG, 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(&pdev->dev, "contiguous FB allocation failed, falling back to non-contiguous\n"); >> + exynos_gem_obj = exynos_drm_gem_create(dev, EXYNOS_BO_NONCONTIG, >> + size); >> + } >> + >> if (IS_ERR(exynos_gem_obj)) { >> ret = PTR_ERR(exynos_gem_obj); >> goto err_release_framebuffer; >> -- >> 1.7.9.5 > > Looks good to me. > Can you apply this patch. > -- > With warm regards, > Sachin > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel