All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Create dumb buffer from LMEM
@ 2019-09-19 18:04 Ramalingam C
  2019-09-19 20:05 ` Chris Wilson
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Ramalingam C @ 2019-09-19 18:04 UTC (permalink / raw)
  To: intel-gfx, Matthew Auld

When LMEM is supported, dumb buffer preferred to be created from LMEM.

This is developed on top of v3 LMEM series
https://patchwork.freedesktop.org/series/56683/.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
cc: Matthew Auld <matthew.auld@intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index e458507b1558..c0decbd020ce 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -161,7 +161,7 @@ static int
 i915_gem_create(struct drm_file *file,
 		struct drm_i915_private *dev_priv,
 		u64 *size_p,
-		u32 *handle_p)
+		u32 *handle_p, enum intel_region_id mem_region)
 {
 	struct drm_i915_gem_object *obj;
 	u32 handle;
@@ -173,7 +173,12 @@ i915_gem_create(struct drm_file *file,
 		return -EINVAL;
 
 	/* Allocate the new object */
-	obj = i915_gem_object_create_shmem(dev_priv, size);
+	if (mem_region == INTEL_MEMORY_LMEM)
+		obj = i915_gem_object_create_lmem(dev_priv, size, 0);
+	else if (mem_region == INTEL_MEMORY_STOLEN)
+		obj = i915_gem_object_create_stolen(dev_priv, size);
+	else
+		obj = i915_gem_object_create_shmem(dev_priv, size);
 	if (IS_ERR(obj))
 		return PTR_ERR(obj);
 
@@ -193,6 +198,7 @@ i915_gem_dumb_create(struct drm_file *file,
 		     struct drm_device *dev,
 		     struct drm_mode_create_dumb *args)
 {
+	enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
 	int cpp = DIV_ROUND_UP(args->bpp, 8);
 	u32 format;
 
@@ -219,8 +225,12 @@ i915_gem_dumb_create(struct drm_file *file,
 		args->pitch = ALIGN(args->pitch, 4096);
 
 	args->size = args->pitch * args->height;
+
+	if (HAS_LMEM(to_i915(dev)))
+		mem_region = INTEL_MEMORY_LMEM;
+
 	return i915_gem_create(file, to_i915(dev),
-			       &args->size, &args->handle);
+			       &args->size, &args->handle, mem_region);
 }
 
 /**
@@ -239,7 +249,7 @@ i915_gem_create_ioctl(struct drm_device *dev, void *data,
 	i915_gem_flush_free_objects(dev_priv);
 
 	return i915_gem_create(file, dev_priv,
-			       &args->size, &args->handle);
+			       &args->size, &args->handle, INTEL_MEMORY_UKNOWN);
 }
 
 static int
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] drm/i915: Create dumb buffer from LMEM
  2019-09-19 18:04 [PATCH] drm/i915: Create dumb buffer from LMEM Ramalingam C
@ 2019-09-19 20:05 ` Chris Wilson
  2019-09-23 10:01   ` Ramalingam C
  2019-09-19 20:49 ` ✗ Fi.CI.BUILD: failure for " Patchwork
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 8+ messages in thread
From: Chris Wilson @ 2019-09-19 20:05 UTC (permalink / raw)
  To: Matthew Auld, Ramalingam C, intel-gfx

Quoting Ramalingam C (2019-09-19 19:04:33)
> When LMEM is supported, dumb buffer preferred to be created from LMEM.
> 
> This is developed on top of v3 LMEM series
> https://patchwork.freedesktop.org/series/56683/.
> 
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> cc: Matthew Auld <matthew.auld@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index e458507b1558..c0decbd020ce 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -161,7 +161,7 @@ static int
>  i915_gem_create(struct drm_file *file,
>                 struct drm_i915_private *dev_priv,
>                 u64 *size_p,
> -               u32 *handle_p)
> +               u32 *handle_p, enum intel_region_id mem_region)

General pattern is to keep outparams last.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* ✗ Fi.CI.BUILD: failure for drm/i915: Create dumb buffer from LMEM
  2019-09-19 18:04 [PATCH] drm/i915: Create dumb buffer from LMEM Ramalingam C
  2019-09-19 20:05 ` Chris Wilson
@ 2019-09-19 20:49 ` Patchwork
  2019-09-21 15:33 ` [PATCH] " kbuild test robot
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2019-09-19 20:49 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Create dumb buffer from LMEM
URL   : https://patchwork.freedesktop.org/series/66950/
State : failure

== Summary ==

CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  DESCEND  objtool
  CHK     include/generated/compile.h
  AR      drivers/gpu/drm/i915/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_gem.o
drivers/gpu/drm/i915/i915_gem.c:162:23: error: ‘enum intel_region_id’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
   u32 *handle_p, enum intel_region_id mem_region)
                       ^~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c:162:39: error: parameter 5 (‘mem_region’) has incomplete type
   u32 *handle_p, enum intel_region_id mem_region)
                                       ^~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c:159:1: error: function declaration isn’t a prototype [-Werror=strict-prototypes]
 i915_gem_create(struct drm_file *file,
 ^~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_create’:
drivers/gpu/drm/i915/i915_gem.c:174:20: error: ‘INTEL_MEMORY_LMEM’ undeclared (first use in this function); did you mean ‘INTEL_GEMINILAKE’?
  if (mem_region == INTEL_MEMORY_LMEM)
                    ^~~~~~~~~~~~~~~~~
                    INTEL_GEMINILAKE
drivers/gpu/drm/i915/i915_gem.c:174:20: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/i915/i915_gem.c:175:9: error: implicit declaration of function ‘i915_gem_object_create_lmem’; did you mean ‘i915_gem_object_create_shmem’? [-Werror=implicit-function-declaration]
   obj = i915_gem_object_create_lmem(dev_priv, size, 0);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
         i915_gem_object_create_shmem
drivers/gpu/drm/i915/i915_gem.c:175:7: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]
   obj = i915_gem_object_create_lmem(dev_priv, size, 0);
       ^
drivers/gpu/drm/i915/i915_gem.c:176:25: error: ‘INTEL_MEMORY_STOLEN’ undeclared (first use in this function); did you mean ‘INTEL_MEMORY_LMEM’?
  else if (mem_region == INTEL_MEMORY_STOLEN)
                         ^~~~~~~~~~~~~~~~~~~
                         INTEL_MEMORY_LMEM
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_dumb_create’:
drivers/gpu/drm/i915/i915_gem.c:199:7: error: variable ‘mem_region’ has initializer but incomplete type
  enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
       ^~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c:199:36: error: ‘INTEL_MEMORY_UKNOWN’ undeclared (first use in this function); did you mean ‘INTEL_DRAM_UNKNOWN’?
  enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                                    ^~~~~~~~~~~~~~~~~~~
                                    INTEL_DRAM_UNKNOWN
drivers/gpu/drm/i915/i915_gem.c:199:23: error: storage size of ‘mem_region’ isn’t known
  enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                       ^~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c:227:6: error: implicit declaration of function ‘HAS_LMEM’; did you mean ‘HAS_GMCH’? [-Werror=implicit-function-declaration]
  if (HAS_LMEM(to_i915(dev)))
      ^~~~~~~~
      HAS_GMCH
drivers/gpu/drm/i915/i915_gem.c:228:16: error: ‘INTEL_MEMORY_LMEM’ undeclared (first use in this function); did you mean ‘INTEL_MEMORY_UKNOWN’?
   mem_region = INTEL_MEMORY_LMEM;
                ^~~~~~~~~~~~~~~~~
                INTEL_MEMORY_UKNOWN
drivers/gpu/drm/i915/i915_gem.c:199:23: error: unused variable ‘mem_region’ [-Werror=unused-variable]
  enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                       ^~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_create_ioctl’:
drivers/gpu/drm/i915/i915_gem.c:250:39: error: ‘INTEL_MEMORY_UKNOWN’ undeclared (first use in this function); did you mean ‘INTEL_DRAM_UNKNOWN’?
           &args->size, &args->handle, INTEL_MEMORY_UKNOWN);
                                       ^~~~~~~~~~~~~~~~~~~
                                       INTEL_DRAM_UNKNOWN
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_dumb_create’:
drivers/gpu/drm/i915/i915_gem.c:232:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_create_ioctl’:
drivers/gpu/drm/i915/i915_gem.c:251:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1: all warnings being treated as errors
scripts/Makefile.build:280: recipe for target 'drivers/gpu/drm/i915/i915_gem.o' failed
make[4]: *** [drivers/gpu/drm/i915/i915_gem.o] Error 1
scripts/Makefile.build:497: recipe for target 'drivers/gpu/drm/i915' failed
make[3]: *** [drivers/gpu/drm/i915] Error 2
scripts/Makefile.build:497: recipe for target 'drivers/gpu/drm' failed
make[2]: *** [drivers/gpu/drm] Error 2
scripts/Makefile.build:497: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:1083: recipe for target 'drivers' failed
make: *** [drivers] Error 2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] drm/i915: Create dumb buffer from LMEM
  2019-09-19 18:04 [PATCH] drm/i915: Create dumb buffer from LMEM Ramalingam C
  2019-09-19 20:05 ` Chris Wilson
  2019-09-19 20:49 ` ✗ Fi.CI.BUILD: failure for " Patchwork
@ 2019-09-21 15:33 ` kbuild test robot
  2019-09-21 15:42 ` kbuild test robot
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: kbuild test robot @ 2019-09-21 15:33 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx, kbuild-all, Matthew Auld

[-- Attachment #1: Type: text/plain, Size: 11219 bytes --]

Hi Ramalingam,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.3 next-20190919]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Ramalingam-C/drm-i915-Create-dumb-buffer-from-LMEM/20190920-020825
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-rhel (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 
:::::: branch date: 2 hours ago
:::::: commit date: 2 hours ago

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

>> drivers/gpu/drm/i915/i915_gem.c:162:23: warning: 'enum intel_region_id' declared inside parameter list will not be visible outside of this definition or declaration
      u32 *handle_p, enum intel_region_id mem_region)
                          ^~~~~~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_gem.c:162:39: error: parameter 5 ('mem_region') has incomplete type
      u32 *handle_p, enum intel_region_id mem_region)
                                          ^~~~~~~~~~
>> drivers/gpu/drm/i915/i915_gem.c:159:1: error: function declaration isn't a prototype [-Werror=strict-prototypes]
    i915_gem_create(struct drm_file *file,
    ^~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_create':
>> drivers/gpu/drm/i915/i915_gem.c:174:20: error: 'INTEL_MEMORY_LMEM' undeclared (first use in this function); did you mean 'INTEL_GEMINILAKE'?
     if (mem_region == INTEL_MEMORY_LMEM)
                       ^~~~~~~~~~~~~~~~~
                       INTEL_GEMINILAKE
   drivers/gpu/drm/i915/i915_gem.c:174:20: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/i915/i915_gem.c:175:9: error: implicit declaration of function 'i915_gem_object_create_lmem'; did you mean 'i915_gem_object_create_shmem'? [-Werror=implicit-function-declaration]
      obj = i915_gem_object_create_lmem(dev_priv, size, 0);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
            i915_gem_object_create_shmem
>> drivers/gpu/drm/i915/i915_gem.c:175:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
      obj = i915_gem_object_create_lmem(dev_priv, size, 0);
          ^
>> drivers/gpu/drm/i915/i915_gem.c:176:25: error: 'INTEL_MEMORY_STOLEN' undeclared (first use in this function); did you mean 'INTEL_MEMORY_LMEM'?
     else if (mem_region == INTEL_MEMORY_STOLEN)
                            ^~~~~~~~~~~~~~~~~~~
                            INTEL_MEMORY_LMEM
   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_dumb_create':
>> drivers/gpu/drm/i915/i915_gem.c:199:7: error: variable 'mem_region' has initializer but incomplete type
     enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
          ^~~~~~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_gem.c:199:36: error: 'INTEL_MEMORY_UKNOWN' undeclared (first use in this function); did you mean 'INTEL_DRAM_UNKNOWN'?
     enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                                       ^~~~~~~~~~~~~~~~~~~
                                       INTEL_DRAM_UNKNOWN
>> drivers/gpu/drm/i915/i915_gem.c:199:23: error: storage size of 'mem_region' isn't known
     enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                          ^~~~~~~~~~
>> drivers/gpu/drm/i915/i915_gem.c:227:6: error: implicit declaration of function 'HAS_LMEM'; did you mean 'HAS_GMCH'? [-Werror=implicit-function-declaration]
     if (HAS_LMEM(to_i915(dev)))
         ^~~~~~~~
         HAS_GMCH
>> drivers/gpu/drm/i915/i915_gem.c:228:16: error: 'INTEL_MEMORY_LMEM' undeclared (first use in this function); did you mean 'INTEL_MEMORY_UKNOWN'?
      mem_region = INTEL_MEMORY_LMEM;
                   ^~~~~~~~~~~~~~~~~
                   INTEL_MEMORY_UKNOWN
   drivers/gpu/drm/i915/i915_gem.c:199:23: warning: unused variable 'mem_region' [-Wunused-variable]
     enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                          ^~~~~~~~~~
   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_create_ioctl':
   drivers/gpu/drm/i915/i915_gem.c:250:39: error: 'INTEL_MEMORY_UKNOWN' undeclared (first use in this function); did you mean 'INTEL_DRAM_UNKNOWN'?
              &args->size, &args->handle, INTEL_MEMORY_UKNOWN);
                                          ^~~~~~~~~~~~~~~~~~~
                                          INTEL_DRAM_UNKNOWN
   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_dumb_create':
>> drivers/gpu/drm/i915/i915_gem.c:232:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/gpu/drm/i915/i915_gem.c: In function 'i915_gem_create_ioctl':
   drivers/gpu/drm/i915/i915_gem.c:251:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors

# https://github.com/0day-ci/linux/commit/3b75523cb0b12a5692ef98d5dbe775070204c3cb
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 3b75523cb0b12a5692ef98d5dbe775070204c3cb
vim +162 drivers/gpu/drm/i915/i915_gem.c

00731155a73020 Chris Wilson     2014-05-21  157  
ff72145badb834 Dave Airlie      2011-02-07  158  static int
ff72145badb834 Dave Airlie      2011-02-07 @159  i915_gem_create(struct drm_file *file,
12d79d78287cdc Tvrtko Ursulin   2016-12-01  160  		struct drm_i915_private *dev_priv,
e163484afa8d6b Michał Winiarski 2019-03-26  161  		u64 *size_p,
3b75523cb0b12a Ramalingam C     2019-09-19 @162  		u32 *handle_p, enum intel_region_id mem_region)
673a394b1e3b69 Eric Anholt      2008-07-30  163  {
05394f3975dceb Chris Wilson     2010-11-08  164  	struct drm_i915_gem_object *obj;
a1a2d1d32250f6 Pekka Paalanen   2009-08-23  165  	u32 handle;
e163484afa8d6b Michał Winiarski 2019-03-26  166  	u64 size;
e163484afa8d6b Michał Winiarski 2019-03-26  167  	int ret;
673a394b1e3b69 Eric Anholt      2008-07-30  168  
e163484afa8d6b Michał Winiarski 2019-03-26  169  	size = round_up(*size_p, PAGE_SIZE);
8ffc02468145ac Chris Wilson     2011-09-14  170  	if (size == 0)
8ffc02468145ac Chris Wilson     2011-09-14  171  		return -EINVAL;
673a394b1e3b69 Eric Anholt      2008-07-30  172  
673a394b1e3b69 Eric Anholt      2008-07-30  173  	/* Allocate the new object */
3b75523cb0b12a Ramalingam C     2019-09-19 @174  	if (mem_region == INTEL_MEMORY_LMEM)
3b75523cb0b12a Ramalingam C     2019-09-19 @175  		obj = i915_gem_object_create_lmem(dev_priv, size, 0);
3b75523cb0b12a Ramalingam C     2019-09-19 @176  	else if (mem_region == INTEL_MEMORY_STOLEN)
3b75523cb0b12a Ramalingam C     2019-09-19  177  		obj = i915_gem_object_create_stolen(dev_priv, size);
3b75523cb0b12a Ramalingam C     2019-09-19  178  	else
8475355f7a2645 Chris Wilson     2019-05-28  179  		obj = i915_gem_object_create_shmem(dev_priv, size);
fe3db79b0b5019 Chris Wilson     2016-04-25  180  	if (IS_ERR(obj))
fe3db79b0b5019 Chris Wilson     2016-04-25  181  		return PTR_ERR(obj);
673a394b1e3b69 Eric Anholt      2008-07-30  182  
05394f3975dceb Chris Wilson     2010-11-08  183  	ret = drm_gem_handle_create(file, &obj->base, &handle);
202f2fef7a1aa6 Chris Wilson     2010-10-14  184  	/* drop reference from allocate - handle holds it now */
f0cd518206e1a4 Chris Wilson     2016-10-28  185  	i915_gem_object_put(obj);
d861e338765029 Daniel Vetter    2013-07-24  186  	if (ret)
d861e338765029 Daniel Vetter    2013-07-24  187  		return ret;
202f2fef7a1aa6 Chris Wilson     2010-10-14  188  
ff72145badb834 Dave Airlie      2011-02-07  189  	*handle_p = handle;
99534023490686 Chris Wilson     2019-04-17  190  	*size_p = size;
673a394b1e3b69 Eric Anholt      2008-07-30  191  	return 0;
673a394b1e3b69 Eric Anholt      2008-07-30  192  }
673a394b1e3b69 Eric Anholt      2008-07-30  193  
ff72145badb834 Dave Airlie      2011-02-07  194  int
ff72145badb834 Dave Airlie      2011-02-07  195  i915_gem_dumb_create(struct drm_file *file,
ff72145badb834 Dave Airlie      2011-02-07  196  		     struct drm_device *dev,
ff72145badb834 Dave Airlie      2011-02-07  197  		     struct drm_mode_create_dumb *args)
ff72145badb834 Dave Airlie      2011-02-07  198  {
3b75523cb0b12a Ramalingam C     2019-09-19 @199  	enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  200  	int cpp = DIV_ROUND_UP(args->bpp, 8);
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  201  	u32 format;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  202  
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  203  	switch (cpp) {
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  204  	case 1:
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  205  		format = DRM_FORMAT_C8;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  206  		break;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  207  	case 2:
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  208  		format = DRM_FORMAT_RGB565;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  209  		break;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  210  	case 4:
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  211  		format = DRM_FORMAT_XRGB8888;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  212  		break;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  213  	default:
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  214  		return -EINVAL;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  215  	}
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  216  
ff72145badb834 Dave Airlie      2011-02-07  217  	/* have to work out size/pitch and return them */
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  218  	args->pitch = ALIGN(args->width * cpp, 64);
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  219  
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  220  	/* align stride to page size so that we can remap */
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  221  	if (args->pitch > intel_plane_fb_max_stride(to_i915(dev), format,
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  222  						    DRM_FORMAT_MOD_LINEAR))
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  223  		args->pitch = ALIGN(args->pitch, 4096);
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  224  
ff72145badb834 Dave Airlie      2011-02-07  225  	args->size = args->pitch * args->height;
3b75523cb0b12a Ramalingam C     2019-09-19  226  
3b75523cb0b12a Ramalingam C     2019-09-19 @227  	if (HAS_LMEM(to_i915(dev)))
3b75523cb0b12a Ramalingam C     2019-09-19 @228  		mem_region = INTEL_MEMORY_LMEM;
3b75523cb0b12a Ramalingam C     2019-09-19  229  
12d79d78287cdc Tvrtko Ursulin   2016-12-01  230  	return i915_gem_create(file, to_i915(dev),
3b75523cb0b12a Ramalingam C     2019-09-19  231  			       &args->size, &args->handle, mem_region);
ff72145badb834 Dave Airlie      2011-02-07 @232  }
ff72145badb834 Dave Airlie      2011-02-07  233  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 43598 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] drm/i915: Create dumb buffer from LMEM
  2019-09-19 18:04 [PATCH] drm/i915: Create dumb buffer from LMEM Ramalingam C
                   ` (2 preceding siblings ...)
  2019-09-21 15:33 ` [PATCH] " kbuild test robot
@ 2019-09-21 15:42 ` kbuild test robot
  2019-09-23  9:59 ` [PATCH v2] " Ramalingam C
  2019-09-23 12:56 ` ✗ Fi.CI.BUILD: failure for drm/i915: Create dumb buffer from LMEM (rev2) Patchwork
  5 siblings, 0 replies; 8+ messages in thread
From: kbuild test robot @ 2019-09-21 15:42 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx, kbuild-all, Matthew Auld

[-- Attachment #1: Type: text/plain, Size: 11284 bytes --]

Hi Ramalingam,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v5.3 next-20190919]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Ramalingam-C/drm-i915-Create-dumb-buffer-from-LMEM/20190920-020825
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-f003-201937 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 
:::::: branch date: 4 hours ago
:::::: commit date: 4 hours ago

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu//drm/i915/i915_gem.c:162:23: error: 'enum intel_region_id' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
      u32 *handle_p, enum intel_region_id mem_region)
                          ^~~~~~~~~~~~~~~
   drivers/gpu//drm/i915/i915_gem.c:162:39: error: parameter 5 ('mem_region') has incomplete type
      u32 *handle_p, enum intel_region_id mem_region)
                                          ^~~~~~~~~~
   drivers/gpu//drm/i915/i915_gem.c:159:1: error: function declaration isn't a prototype [-Werror=strict-prototypes]
    i915_gem_create(struct drm_file *file,
    ^~~~~~~~~~~~~~~
   drivers/gpu//drm/i915/i915_gem.c: In function 'i915_gem_create':
   drivers/gpu//drm/i915/i915_gem.c:174:20: error: 'INTEL_MEMORY_LMEM' undeclared (first use in this function); did you mean 'INTEL_GEMINILAKE'?
     if (mem_region == INTEL_MEMORY_LMEM)
                       ^~~~~~~~~~~~~~~~~
                       INTEL_GEMINILAKE
   drivers/gpu//drm/i915/i915_gem.c:174:20: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu//drm/i915/i915_gem.c:175:9: error: implicit declaration of function 'i915_gem_object_create_lmem'; did you mean 'i915_gem_object_create_shmem'? [-Werror=implicit-function-declaration]
      obj = i915_gem_object_create_lmem(dev_priv, size, 0);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
            i915_gem_object_create_shmem
>> drivers/gpu//drm/i915/i915_gem.c:175:7: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]
      obj = i915_gem_object_create_lmem(dev_priv, size, 0);
          ^
   drivers/gpu//drm/i915/i915_gem.c:176:25: error: 'INTEL_MEMORY_STOLEN' undeclared (first use in this function); did you mean 'INTEL_MEMORY_LMEM'?
     else if (mem_region == INTEL_MEMORY_STOLEN)
                            ^~~~~~~~~~~~~~~~~~~
                            INTEL_MEMORY_LMEM
   drivers/gpu//drm/i915/i915_gem.c: In function 'i915_gem_dumb_create':
   drivers/gpu//drm/i915/i915_gem.c:199:7: error: variable 'mem_region' has initializer but incomplete type
     enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
          ^~~~~~~~~~~~~~~
   drivers/gpu//drm/i915/i915_gem.c:199:36: error: 'INTEL_MEMORY_UKNOWN' undeclared (first use in this function); did you mean 'INTEL_DRAM_UNKNOWN'?
     enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                                       ^~~~~~~~~~~~~~~~~~~
                                       INTEL_DRAM_UNKNOWN
   drivers/gpu//drm/i915/i915_gem.c:199:23: error: storage size of 'mem_region' isn't known
     enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                          ^~~~~~~~~~
   drivers/gpu//drm/i915/i915_gem.c:227:6: error: implicit declaration of function 'HAS_LMEM'; did you mean 'HAS_GMCH'? [-Werror=implicit-function-declaration]
     if (HAS_LMEM(to_i915(dev)))
         ^~~~~~~~
         HAS_GMCH
   drivers/gpu//drm/i915/i915_gem.c:228:16: error: 'INTEL_MEMORY_LMEM' undeclared (first use in this function); did you mean 'INTEL_MEMORY_UKNOWN'?
      mem_region = INTEL_MEMORY_LMEM;
                   ^~~~~~~~~~~~~~~~~
                   INTEL_MEMORY_UKNOWN
>> drivers/gpu//drm/i915/i915_gem.c:199:23: error: unused variable 'mem_region' [-Werror=unused-variable]
     enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                          ^~~~~~~~~~
   drivers/gpu//drm/i915/i915_gem.c: In function 'i915_gem_create_ioctl':
   drivers/gpu//drm/i915/i915_gem.c:250:39: error: 'INTEL_MEMORY_UKNOWN' undeclared (first use in this function); did you mean 'INTEL_DRAM_UNKNOWN'?
              &args->size, &args->handle, INTEL_MEMORY_UKNOWN);
                                          ^~~~~~~~~~~~~~~~~~~
                                          INTEL_DRAM_UNKNOWN
   drivers/gpu//drm/i915/i915_gem.c: In function 'i915_gem_dumb_create':
   drivers/gpu//drm/i915/i915_gem.c:232:1: error: control reaches end of non-void function [-Werror=return-type]
    }
    ^
   drivers/gpu//drm/i915/i915_gem.c: In function 'i915_gem_create_ioctl':
   drivers/gpu//drm/i915/i915_gem.c:251:1: error: control reaches end of non-void function [-Werror=return-type]
    }
    ^
   cc1: all warnings being treated as errors

# https://github.com/0day-ci/linux/commit/3b75523cb0b12a5692ef98d5dbe775070204c3cb
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 3b75523cb0b12a5692ef98d5dbe775070204c3cb
vim +/mem_region +199 drivers/gpu//drm/i915/i915_gem.c

00731155a73020 Chris Wilson     2014-05-21  157  
ff72145badb834 Dave Airlie      2011-02-07  158  static int
ff72145badb834 Dave Airlie      2011-02-07  159  i915_gem_create(struct drm_file *file,
12d79d78287cdc Tvrtko Ursulin   2016-12-01  160  		struct drm_i915_private *dev_priv,
e163484afa8d6b Michał Winiarski 2019-03-26  161  		u64 *size_p,
3b75523cb0b12a Ramalingam C     2019-09-19  162  		u32 *handle_p, enum intel_region_id mem_region)
673a394b1e3b69 Eric Anholt      2008-07-30  163  {
05394f3975dceb Chris Wilson     2010-11-08  164  	struct drm_i915_gem_object *obj;
a1a2d1d32250f6 Pekka Paalanen   2009-08-23  165  	u32 handle;
e163484afa8d6b Michał Winiarski 2019-03-26  166  	u64 size;
e163484afa8d6b Michał Winiarski 2019-03-26  167  	int ret;
673a394b1e3b69 Eric Anholt      2008-07-30  168  
e163484afa8d6b Michał Winiarski 2019-03-26  169  	size = round_up(*size_p, PAGE_SIZE);
8ffc02468145ac Chris Wilson     2011-09-14  170  	if (size == 0)
8ffc02468145ac Chris Wilson     2011-09-14  171  		return -EINVAL;
673a394b1e3b69 Eric Anholt      2008-07-30  172  
673a394b1e3b69 Eric Anholt      2008-07-30  173  	/* Allocate the new object */
3b75523cb0b12a Ramalingam C     2019-09-19 @174  	if (mem_region == INTEL_MEMORY_LMEM)
3b75523cb0b12a Ramalingam C     2019-09-19 @175  		obj = i915_gem_object_create_lmem(dev_priv, size, 0);
3b75523cb0b12a Ramalingam C     2019-09-19  176  	else if (mem_region == INTEL_MEMORY_STOLEN)
3b75523cb0b12a Ramalingam C     2019-09-19  177  		obj = i915_gem_object_create_stolen(dev_priv, size);
3b75523cb0b12a Ramalingam C     2019-09-19  178  	else
8475355f7a2645 Chris Wilson     2019-05-28  179  		obj = i915_gem_object_create_shmem(dev_priv, size);
fe3db79b0b5019 Chris Wilson     2016-04-25  180  	if (IS_ERR(obj))
fe3db79b0b5019 Chris Wilson     2016-04-25  181  		return PTR_ERR(obj);
673a394b1e3b69 Eric Anholt      2008-07-30  182  
05394f3975dceb Chris Wilson     2010-11-08  183  	ret = drm_gem_handle_create(file, &obj->base, &handle);
202f2fef7a1aa6 Chris Wilson     2010-10-14  184  	/* drop reference from allocate - handle holds it now */
f0cd518206e1a4 Chris Wilson     2016-10-28  185  	i915_gem_object_put(obj);
d861e338765029 Daniel Vetter    2013-07-24  186  	if (ret)
d861e338765029 Daniel Vetter    2013-07-24  187  		return ret;
202f2fef7a1aa6 Chris Wilson     2010-10-14  188  
ff72145badb834 Dave Airlie      2011-02-07  189  	*handle_p = handle;
99534023490686 Chris Wilson     2019-04-17  190  	*size_p = size;
673a394b1e3b69 Eric Anholt      2008-07-30  191  	return 0;
673a394b1e3b69 Eric Anholt      2008-07-30  192  }
673a394b1e3b69 Eric Anholt      2008-07-30  193  
ff72145badb834 Dave Airlie      2011-02-07  194  int
ff72145badb834 Dave Airlie      2011-02-07  195  i915_gem_dumb_create(struct drm_file *file,
ff72145badb834 Dave Airlie      2011-02-07  196  		     struct drm_device *dev,
ff72145badb834 Dave Airlie      2011-02-07  197  		     struct drm_mode_create_dumb *args)
ff72145badb834 Dave Airlie      2011-02-07  198  {
3b75523cb0b12a Ramalingam C     2019-09-19 @199  	enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  200  	int cpp = DIV_ROUND_UP(args->bpp, 8);
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  201  	u32 format;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  202  
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  203  	switch (cpp) {
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  204  	case 1:
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  205  		format = DRM_FORMAT_C8;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  206  		break;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  207  	case 2:
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  208  		format = DRM_FORMAT_RGB565;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  209  		break;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  210  	case 4:
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  211  		format = DRM_FORMAT_XRGB8888;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  212  		break;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  213  	default:
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  214  		return -EINVAL;
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  215  	}
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  216  
ff72145badb834 Dave Airlie      2011-02-07  217  	/* have to work out size/pitch and return them */
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  218  	args->pitch = ALIGN(args->width * cpp, 64);
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  219  
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  220  	/* align stride to page size so that we can remap */
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  221  	if (args->pitch > intel_plane_fb_max_stride(to_i915(dev), format,
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  222  						    DRM_FORMAT_MOD_LINEAR))
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  223  		args->pitch = ALIGN(args->pitch, 4096);
aa5ca8b7421cdb Ville Syrjälä    2019-05-09  224  
ff72145badb834 Dave Airlie      2011-02-07  225  	args->size = args->pitch * args->height;
3b75523cb0b12a Ramalingam C     2019-09-19  226  
3b75523cb0b12a Ramalingam C     2019-09-19 @227  	if (HAS_LMEM(to_i915(dev)))
3b75523cb0b12a Ramalingam C     2019-09-19  228  		mem_region = INTEL_MEMORY_LMEM;
3b75523cb0b12a Ramalingam C     2019-09-19  229  
12d79d78287cdc Tvrtko Ursulin   2016-12-01  230  	return i915_gem_create(file, to_i915(dev),
3b75523cb0b12a Ramalingam C     2019-09-19  231  			       &args->size, &args->handle, mem_region);
ff72145badb834 Dave Airlie      2011-02-07  232  }
ff72145badb834 Dave Airlie      2011-02-07  233  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 25353 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] drm/i915: Create dumb buffer from LMEM
  2019-09-19 18:04 [PATCH] drm/i915: Create dumb buffer from LMEM Ramalingam C
                   ` (3 preceding siblings ...)
  2019-09-21 15:42 ` kbuild test robot
@ 2019-09-23  9:59 ` Ramalingam C
  2019-09-23 12:56 ` ✗ Fi.CI.BUILD: failure for drm/i915: Create dumb buffer from LMEM (rev2) Patchwork
  5 siblings, 0 replies; 8+ messages in thread
From: Ramalingam C @ 2019-09-23  9:59 UTC (permalink / raw)
  To: intel-gfx; +Cc: Matthew Auld

When LMEM is supported, dumb buffer preferred to be created from LMEM.

This is developed on top of v3 LMEM series
https://patchwork.freedesktop.org/series/56683/.

v2:
  Parameters are reshuffled. [Chris]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
cc: Matthew Auld <matthew.auld@intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index e458507b1558..a34a87d192da 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -160,6 +160,7 @@ i915_gem_phys_pwrite(struct drm_i915_gem_object *obj,
 static int
 i915_gem_create(struct drm_file *file,
 		struct drm_i915_private *dev_priv,
+		enum intel_region_id mem_region,
 		u64 *size_p,
 		u32 *handle_p)
 {
@@ -173,7 +174,12 @@ i915_gem_create(struct drm_file *file,
 		return -EINVAL;
 
 	/* Allocate the new object */
-	obj = i915_gem_object_create_shmem(dev_priv, size);
+	if (mem_region == INTEL_MEMORY_LMEM)
+		obj = i915_gem_object_create_lmem(dev_priv, size, 0);
+	else if (mem_region == INTEL_MEMORY_STOLEN)
+		obj = i915_gem_object_create_stolen(dev_priv, size);
+	else
+		obj = i915_gem_object_create_shmem(dev_priv, size);
 	if (IS_ERR(obj))
 		return PTR_ERR(obj);
 
@@ -193,6 +199,7 @@ i915_gem_dumb_create(struct drm_file *file,
 		     struct drm_device *dev,
 		     struct drm_mode_create_dumb *args)
 {
+	enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
 	int cpp = DIV_ROUND_UP(args->bpp, 8);
 	u32 format;
 
@@ -219,7 +226,11 @@ i915_gem_dumb_create(struct drm_file *file,
 		args->pitch = ALIGN(args->pitch, 4096);
 
 	args->size = args->pitch * args->height;
-	return i915_gem_create(file, to_i915(dev),
+
+	if (HAS_LMEM(to_i915(dev)))
+		mem_region = INTEL_MEMORY_LMEM;
+
+	return i915_gem_create(file, to_i915(dev), mem_region,
 			       &args->size, &args->handle);
 }
 
@@ -238,7 +249,7 @@ i915_gem_create_ioctl(struct drm_device *dev, void *data,
 
 	i915_gem_flush_free_objects(dev_priv);
 
-	return i915_gem_create(file, dev_priv,
+	return i915_gem_create(file, dev_priv, INTEL_MEMORY_UKNOWN,
 			       &args->size, &args->handle);
 }
 
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] drm/i915: Create dumb buffer from LMEM
  2019-09-19 20:05 ` Chris Wilson
@ 2019-09-23 10:01   ` Ramalingam C
  0 siblings, 0 replies; 8+ messages in thread
From: Ramalingam C @ 2019-09-23 10:01 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx, Matthew Auld

On 2019-09-19 at 21:05:09 +0100, Chris Wilson wrote:
> Quoting Ramalingam C (2019-09-19 19:04:33)
> > When LMEM is supported, dumb buffer preferred to be created from LMEM.
> > 
> > This is developed on top of v3 LMEM series
> > https://patchwork.freedesktop.org/series/56683/.
> > 
> > Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> > cc: Matthew Auld <matthew.auld@intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_gem.c | 18 ++++++++++++++----
> >  1 file changed, 14 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > index e458507b1558..c0decbd020ce 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -161,7 +161,7 @@ static int
> >  i915_gem_create(struct drm_file *file,
> >                 struct drm_i915_private *dev_priv,
> >                 u64 *size_p,
> > -               u32 *handle_p)
> > +               u32 *handle_p, enum intel_region_id mem_region)
> 
> General pattern is to keep outparams last.

Modified the order of the parameters. Thanks Chris!

-Ram
> -Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* ✗ Fi.CI.BUILD: failure for drm/i915: Create dumb buffer from LMEM (rev2)
  2019-09-19 18:04 [PATCH] drm/i915: Create dumb buffer from LMEM Ramalingam C
                   ` (4 preceding siblings ...)
  2019-09-23  9:59 ` [PATCH v2] " Ramalingam C
@ 2019-09-23 12:56 ` Patchwork
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2019-09-23 12:56 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Create dumb buffer from LMEM (rev2)
URL   : https://patchwork.freedesktop.org/series/66950/
State : failure

== Summary ==

CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  DESCEND  objtool
  CHK     include/generated/compile.h
  AR      drivers/gpu/drm/i915/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_gem.o
drivers/gpu/drm/i915/i915_gem.c:161:8: error: ‘enum intel_region_id’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
   enum intel_region_id mem_region,
        ^~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c:161:24: error: parameter 3 (‘mem_region’) has incomplete type
   enum intel_region_id mem_region,
                        ^~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c:159:1: error: function declaration isn’t a prototype [-Werror=strict-prototypes]
 i915_gem_create(struct drm_file *file,
 ^~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_create’:
drivers/gpu/drm/i915/i915_gem.c:175:20: error: ‘INTEL_MEMORY_LMEM’ undeclared (first use in this function); did you mean ‘INTEL_GEMINILAKE’?
  if (mem_region == INTEL_MEMORY_LMEM)
                    ^~~~~~~~~~~~~~~~~
                    INTEL_GEMINILAKE
drivers/gpu/drm/i915/i915_gem.c:175:20: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/i915/i915_gem.c:176:9: error: implicit declaration of function ‘i915_gem_object_create_lmem’; did you mean ‘i915_gem_object_create_shmem’? [-Werror=implicit-function-declaration]
   obj = i915_gem_object_create_lmem(dev_priv, size, 0);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
         i915_gem_object_create_shmem
drivers/gpu/drm/i915/i915_gem.c:176:7: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]
   obj = i915_gem_object_create_lmem(dev_priv, size, 0);
       ^
drivers/gpu/drm/i915/i915_gem.c:177:25: error: ‘INTEL_MEMORY_STOLEN’ undeclared (first use in this function); did you mean ‘INTEL_MEMORY_LMEM’?
  else if (mem_region == INTEL_MEMORY_STOLEN)
                         ^~~~~~~~~~~~~~~~~~~
                         INTEL_MEMORY_LMEM
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_dumb_create’:
drivers/gpu/drm/i915/i915_gem.c:200:7: error: variable ‘mem_region’ has initializer but incomplete type
  enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
       ^~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c:200:36: error: ‘INTEL_MEMORY_UKNOWN’ undeclared (first use in this function); did you mean ‘INTEL_DRAM_UNKNOWN’?
  enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                                    ^~~~~~~~~~~~~~~~~~~
                                    INTEL_DRAM_UNKNOWN
drivers/gpu/drm/i915/i915_gem.c:200:23: error: storage size of ‘mem_region’ isn’t known
  enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                       ^~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c:228:6: error: implicit declaration of function ‘HAS_LMEM’; did you mean ‘HAS_GMCH’? [-Werror=implicit-function-declaration]
  if (HAS_LMEM(to_i915(dev)))
      ^~~~~~~~
      HAS_GMCH
drivers/gpu/drm/i915/i915_gem.c:229:16: error: ‘INTEL_MEMORY_LMEM’ undeclared (first use in this function); did you mean ‘INTEL_MEMORY_UKNOWN’?
   mem_region = INTEL_MEMORY_LMEM;
                ^~~~~~~~~~~~~~~~~
                INTEL_MEMORY_UKNOWN
drivers/gpu/drm/i915/i915_gem.c:200:23: error: unused variable ‘mem_region’ [-Werror=unused-variable]
  enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN;
                       ^~~~~~~~~~
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_create_ioctl’:
drivers/gpu/drm/i915/i915_gem.c:250:41: error: ‘INTEL_MEMORY_UKNOWN’ undeclared (first use in this function); did you mean ‘INTEL_DRAM_UNKNOWN’?
  return i915_gem_create(file, dev_priv, INTEL_MEMORY_UKNOWN,
                                         ^~~~~~~~~~~~~~~~~~~
                                         INTEL_DRAM_UNKNOWN
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_dumb_create’:
drivers/gpu/drm/i915/i915_gem.c:233:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_create_ioctl’:
drivers/gpu/drm/i915/i915_gem.c:252:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1: all warnings being treated as errors
scripts/Makefile.build:280: recipe for target 'drivers/gpu/drm/i915/i915_gem.o' failed
make[4]: *** [drivers/gpu/drm/i915/i915_gem.o] Error 1
scripts/Makefile.build:497: recipe for target 'drivers/gpu/drm/i915' failed
make[3]: *** [drivers/gpu/drm/i915] Error 2
scripts/Makefile.build:497: recipe for target 'drivers/gpu/drm' failed
make[2]: *** [drivers/gpu/drm] Error 2
scripts/Makefile.build:497: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:1087: recipe for target 'drivers' failed
make: *** [drivers] Error 2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-09-23 12:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-09-19 18:04 [PATCH] drm/i915: Create dumb buffer from LMEM Ramalingam C
2019-09-19 20:05 ` Chris Wilson
2019-09-23 10:01   ` Ramalingam C
2019-09-19 20:49 ` ✗ Fi.CI.BUILD: failure for " Patchwork
2019-09-21 15:33 ` [PATCH] " kbuild test robot
2019-09-21 15:42 ` kbuild test robot
2019-09-23  9:59 ` [PATCH v2] " Ramalingam C
2019-09-23 12:56 ` ✗ Fi.CI.BUILD: failure for drm/i915: Create dumb buffer from LMEM (rev2) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.