Re: [PATCH] drm/exynos: Add fallback option to get non physically contiguous memory for gem_dumb_create
Thanks. On 27 August 2013 08:14, Inki Dae inki@samsung.com wrote: Applied. Thanks, Inki Dae -Original Message- From: Vikas Sajjan [mailto:vikas.saj...@linaro.org] Sent: Friday, August 23, 2013 3:35 PM To: dri-de...@lists.freedesktop.org; inki@samsung.com Cc: kgene@samsung.com; s.nawro...@samsung.com; robdcl...@gmail.com; tomasz.f...@gmail.com; laurent.pinch...@ideasonboard.com; patc...@linaro.org; linaro-...@lists.linaro.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 vikas.saj...@linaro.org Signed-off-by: Arun Kumar arun...@samsung.com --- 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 -- Thanks and Regards Vikas Sajjan -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH] drm/exynos: Add fallback option to get non physically contiguous memory for gem_dumb_create
One more thing, changed the subject to Consider fallback option to allocation fail. The subject is too long :) Thanks, Inki Dae -Original Message- From: linux-samsung-soc-ow...@vger.kernel.org [mailto:linux-samsung-soc- ow...@vger.kernel.org] On Behalf Of Vikas Sajjan Sent: Tuesday, August 27, 2013 12:05 PM To: Inki Dae Cc: DRI mailing list; kgene.kim; Sylwester Nawrocki; Rob Clark; Tomasz Figa; Laurent Pinchart; Patch Tracking; linaro-...@lists.linaro.org; sunil joshi; linux-samsung-soc@vger.kernel.org Subject: Re: [PATCH] drm/exynos: Add fallback option to get non physically contiguous memory for gem_dumb_create Thanks. On 27 August 2013 08:14, Inki Dae inki@samsung.com wrote: Applied. Thanks, Inki Dae -Original Message- From: Vikas Sajjan [mailto:vikas.saj...@linaro.org] Sent: Friday, August 23, 2013 3:35 PM To: dri-de...@lists.freedesktop.org; inki@samsung.com Cc: kgene@samsung.com; s.nawro...@samsung.com; robdcl...@gmail.com; tomasz.f...@gmail.com; laurent.pinch...@ideasonboard.com; patc...@linaro.org; linaro-...@lists.linaro.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 vikas.saj...@linaro.org Signed-off-by: Arun Kumar arun...@samsung.com --- 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 -- Thanks and Regards Vikas Sajjan -- To unsubscribe from this list: send the line unsubscribe linux-samsung- soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] drm/exynos: Add fallback option to get non physically contiguous memory for gem_dumb_create
OK. On 27 August 2013 09:44, Inki Dae inki@samsung.com wrote: One more thing, changed the subject to Consider fallback option to allocation fail. The subject is too long :) Thanks, Inki Dae -Original Message- From: linux-samsung-soc-ow...@vger.kernel.org [mailto:linux-samsung-soc- ow...@vger.kernel.org] On Behalf Of Vikas Sajjan Sent: Tuesday, August 27, 2013 12:05 PM To: Inki Dae Cc: DRI mailing list; kgene.kim; Sylwester Nawrocki; Rob Clark; Tomasz Figa; Laurent Pinchart; Patch Tracking; linaro-...@lists.linaro.org; sunil joshi; linux-samsung-soc@vger.kernel.org Subject: Re: [PATCH] drm/exynos: Add fallback option to get non physically contiguous memory for gem_dumb_create Thanks. On 27 August 2013 08:14, Inki Dae inki@samsung.com wrote: Applied. Thanks, Inki Dae -Original Message- From: Vikas Sajjan [mailto:vikas.saj...@linaro.org] Sent: Friday, August 23, 2013 3:35 PM To: dri-de...@lists.freedesktop.org; inki@samsung.com Cc: kgene@samsung.com; s.nawro...@samsung.com; robdcl...@gmail.com; tomasz.f...@gmail.com; laurent.pinch...@ideasonboard.com; patc...@linaro.org; linaro-...@lists.linaro.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 vikas.saj...@linaro.org Signed-off-by: Arun Kumar arun...@samsung.com --- 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 -- Thanks and Regards Vikas Sajjan -- To unsubscribe from this list: send the line unsubscribe linux-samsung- soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- Thanks and Regards Vikas Sajjan -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html