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.sajjan@linaro.org Signed-off-by: Arun Kumar arun.kk@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);
adding linux-samsung-soc mailing list and Dave Airlie.
On Fri, Aug 23, 2013 at 12:05 PM, Vikas Sajjan vikas.sajjan@linaro.org wrote:
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.sajjan@linaro.org Signed-off-by: Arun Kumar arun.kk@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
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
Applied.
Thanks, Inki Dae
-----Original Message----- From: Vikas Sajjan [mailto:vikas.sajjan@linaro.org] Sent: Friday, August 23, 2013 3:35 PM To: dri-devel@lists.freedesktop.org; inki.dae@samsung.com Cc: kgene.kim@samsung.com; s.nawrocki@samsung.com; robdclark@gmail.com; tomasz.figa@gmail.com; laurent.pinchart@ideasonboard.com; patches@linaro.org; linaro-dev@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.sajjan@linaro.org Signed-off-by: Arun Kumar arun.kk@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.
On 27 August 2013 08:14, Inki Dae inki.dae@samsung.com wrote:
Applied.
Thanks, Inki Dae
-----Original Message----- From: Vikas Sajjan [mailto:vikas.sajjan@linaro.org] Sent: Friday, August 23, 2013 3:35 PM To: dri-devel@lists.freedesktop.org; inki.dae@samsung.com Cc: kgene.kim@samsung.com; s.nawrocki@samsung.com; robdclark@gmail.com; tomasz.figa@gmail.com; laurent.pinchart@ideasonboard.com; patches@linaro.org; linaro-dev@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.sajjan@linaro.org Signed-off-by: Arun Kumar arun.kk@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
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-owner@vger.kernel.org [mailto:linux-samsung-soc- owner@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-dev@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.dae@samsung.com wrote:
Applied.
Thanks, Inki Dae
-----Original Message----- From: Vikas Sajjan [mailto:vikas.sajjan@linaro.org] Sent: Friday, August 23, 2013 3:35 PM To: dri-devel@lists.freedesktop.org; inki.dae@samsung.com Cc: kgene.kim@samsung.com; s.nawrocki@samsung.com; robdclark@gmail.com; tomasz.figa@gmail.com; laurent.pinchart@ideasonboard.com; patches@linaro.org; linaro-dev@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.sajjan@linaro.org Signed-off-by: Arun Kumar arun.kk@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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
OK.
On 27 August 2013 09:44, Inki Dae inki.dae@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-owner@vger.kernel.org [mailto:linux-samsung-soc- owner@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-dev@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.dae@samsung.com wrote:
Applied.
Thanks, Inki Dae
-----Original Message----- From: Vikas Sajjan [mailto:vikas.sajjan@linaro.org] Sent: Friday, August 23, 2013 3:35 PM To: dri-devel@lists.freedesktop.org; inki.dae@samsung.com Cc: kgene.kim@samsung.com; s.nawrocki@samsung.com; robdclark@gmail.com; tomasz.figa@gmail.com; laurent.pinchart@ideasonboard.com; patches@linaro.org; linaro-dev@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.sajjan@linaro.org Signed-off-by: Arun Kumar arun.kk@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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html