From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: RE: [PATCH] drm/exynos: Add fallback option to get non physically contiguous memory for gem_dumb_create Date: Tue, 27 Aug 2013 11:44:25 +0900 Message-ID: <02a401cea2cf$57be6ab0$073b4010$%dae@samsung.com> References: <1377239706-17804-1-git-send-email-vikas.sajjan@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-reply-to: <1377239706-17804-1-git-send-email-vikas.sajjan-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Content-language: ko List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linaro-dev-bounces-cunTk1MwBs8s++Sfvej+rw@public.gmane.org Sender: linaro-dev-bounces-cunTk1MwBs8s++Sfvej+rw@public.gmane.org To: 'Vikas Sajjan' , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, linaro-dev-cunTk1MwBs8s++Sfvej+rw@public.gmane.org, patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org, s.nawrocki-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org List-Id: dri-devel@lists.freedesktop.org Applied. Thanks, Inki Dae > -----Original Message----- > From: Vikas Sajjan [mailto:vikas.sajjan-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org] > Sent: Friday, August 23, 2013 3:35 PM > To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org; inki.dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org > Cc: kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org; s.nawrocki-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org; robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org; > tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org; laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org; > patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org; linaro-dev-cunTk1MwBs8s++Sfvej+rw@public.gmane.org > Subject: [PATCH] drm/exynos: Add fallback option to get non physically > contiguous memory for gem_dumb_create > > To address the case where physically contiguous memory MAY NOT be a > mandatory > requirement for framebuffer for the application calling > exynos_drm_gem_dumb_create, > the patch adds a feature to get non physically contiguous memory for > framebuffer, > if physically contiguous memory allocation fails and if IOMMU is supported. > > Signed-off-by: Vikas Sajjan > Signed-off-by: Arun Kumar > --- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c > b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index 2eabe1a..66d1b40 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -17,6 +17,7 @@ > #include "exynos_drm_drv.h" > #include "exynos_drm_gem.h" > #include "exynos_drm_buf.h" > +#include "exynos_drm_iommu.h" > > static unsigned int convert_to_vm_err_msg(int msg) > { > @@ -666,6 +667,18 @@ int exynos_drm_gem_dumb_create(struct drm_file > *file_priv, > > 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"); > + exynos_gem_obj = exynos_drm_gem_create(dev, > + EXYNOS_BO_NONCONTIG | EXYNOS_BO_WC, > + args->size); > + } > + > if (IS_ERR(exynos_gem_obj)) > return PTR_ERR(exynos_gem_obj); > > -- > 1.7.9.5