Re: [PATCH v3] drm/exynos: Add fallback option to get non physically continous memory for fb

2013-08-06 Thread Sachin Kamat
Hi Vikas,

On 6 August 2013 10:53, Vikas Sajjan vikas.saj...@linaro.org 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.88] [drm:lowlevel_buffer_allocate] *ERROR* failed to allocate buffer.
 [0.89] [drm] Initialized exynos 1.0.0 20110530 on minor 0

 To address the cases where physically continous memory MAY NOT be a
 mandatory requirement for fb, the patch adds a feature to get non physically
 continous memory for fb if IOMMU is supported and if CONTIG memory allocation
 fails.

The patch looks fine. Just a small nit. Please use the word contiguous
instead of continuous to refer to memory locations consistently in
this patch.


 Signed-off-by: Vikas Sajjan vikas.saj...@linaro.org
 Signed-off-by: Arun Kumar arun...@samsung.com
 Reviewed-by: Rob Clark robdcl...@gmail.com
 ---
 changes since v2:
 - addressed comments given by Tomasz Figa tomasz.f...@gmail.com.

 changes since v1:
  - Modified to add the fallback patch if CONTIG alloc fails as 
 suggested
  by Rob Clark robdcl...@gmail.com and Tomasz Figa 
 tomasz.f...@gmail.com.

  - changed the commit message.
 ---
  drivers/gpu/drm/exynos/exynos_drm_fbdev.c |   14 --
  1 file changed, 12 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..faec77e 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,17 @@ 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 IOMMU is supported then try to get buffer from non physically
 +* continous memory area.
 +*/

To make this more clear, you could say,
If physically contiguous memory allocation fails and if IOMMU is
supported, try to .


 +   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

 --
 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



-- 
With warm regards,
Sachin
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3] drm/exynos: Add fallback option to get non physically continous memory for fb

2013-08-06 Thread Sylwester Nawrocki
Vikas,

On 08/06/2013 07:23 AM, Vikas Sajjan 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.88] [drm:lowlevel_buffer_allocate] *ERROR* failed to allocate buffer.
 [0.89] [drm] Initialized exynos 1.0.0 20110530 on minor 0
 
 To address the cases where physically continous memory MAY NOT be a
 mandatory requirement for fb, the patch adds a feature to get non physically
 continous memory for fb if IOMMU is supported and if CONTIG memory allocation
 fails.
 
 Signed-off-by: Vikas Sajjan vikas.saj...@linaro.org
 Signed-off-by: Arun Kumar arun...@samsung.com
 Reviewed-by: Rob Clark robdcl...@gmail.com
 ---
 changes since v2:
   - addressed comments given by Tomasz Figa tomasz.f...@gmail.com.
 
 changes since v1:
- Modified to add the fallback patch if CONTIG alloc fails as suggested
by Rob Clark robdcl...@gmail.com and Tomasz Figa 
 tomasz.f...@gmail.com.
 
- changed the commit message.
 ---
  drivers/gpu/drm/exynos/exynos_drm_fbdev.c |   14 --
  1 file changed, 12 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..faec77e 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,17 @@ 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 IOMMU is supported then try to get buffer from non physically
 +  * continous memory area.

s/continous/continuous

or better

s/continous/contiguous

Otherwise the patch looks good. But please note it has nothing to do
with linux-media@vger.kernel.org, please drop this mailing list from
Cc as I need to be constantly marking those patches as Non applicable
in the patchwork.

Thanks!
Sylwester

 +  */
 + 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;
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3] drm/exynos: Add fallback option to get non physically continous memory for fb

2013-08-05 Thread Vikas Sajjan
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.88] [drm:lowlevel_buffer_allocate] *ERROR* failed to allocate buffer.
[0.89] [drm] Initialized exynos 1.0.0 20110530 on minor 0

To address the cases where physically continous memory MAY NOT be a
mandatory requirement for fb, the patch adds a feature to get non physically
continous memory for fb if IOMMU is supported and if CONTIG memory allocation
fails.

Signed-off-by: Vikas Sajjan vikas.saj...@linaro.org
Signed-off-by: Arun Kumar arun...@samsung.com
Reviewed-by: Rob Clark robdcl...@gmail.com
---
changes since v2:
- addressed comments given by Tomasz Figa tomasz.f...@gmail.com.

changes since v1:
 - Modified to add the fallback patch if CONTIG alloc fails as suggested
 by Rob Clark robdcl...@gmail.com and Tomasz Figa 
tomasz.f...@gmail.com.

 - changed the commit message.
---
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c |   14 --
 1 file changed, 12 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..faec77e 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,17 @@ 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 IOMMU is supported then try to get buffer from non physically
+* continous 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

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html