Giter Site home page Giter Site logo

kernel-module-imx-gpu-viv's People

Contributors

aridet avatar chrta avatar dsacre avatar gibsson avatar kraj avatar otavio avatar sbach avatar thochstein avatar tkisky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kernel-module-imx-gpu-viv's Issues

What does it mean by "This module is only meant for NXP-based kernel up to 4.1.x" ?

Hi,
I'm using Linux kernel version 4.9.144 which is based on toradex_4.9-2.3.x-imx and with this module "kernel-module-imx-gpu-viv" activated within Buildroot, the galcore module is automatically disabled from the kernel's menuconfig (which is enabled by default) and it is not compiled nor generated.

Also I saw that "This module is only meant for NXP-based kernel up to 4.1.x." , I'd like to know how would I get the galcore compiled for the kernel version : 4.9.144, please ?

Moreover, from this link https://boundarydevices.com/customizing-ubuntudebian-kernels/, it is said that for kernel version is 4.1.15 or higher, galcore module has to be built externally and independently to the kernel. Could you confirm, please ?

Best regards,
Khang

Usage of kernel-module-imx-gpu-viv with 3.14.79 vanilla kernel

Hi,

While trying to compile kernel-module-imx-gpu-viv with 3.14.79 vanilla kernel I am getting an error of missing header files busfreq.imx.h. Is there any other alternative to load the drivers with 3.14.79 vanilla kernel? Or I need to redo all the patches done by freescale?

/A

cross-compilation is failing

Hi. I tried to cross-compile this module with gcc-linaro-7.4.1-2019.02-i686_arm-linux-gnueabihf and process was failed with:

drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_lock’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:241:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:241:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:241:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_unlock’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:282:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:282:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:282:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_cache’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:329:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:329:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:329:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_query’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:387:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:387:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:387:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_timestamp’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:430:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:430:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:430:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_set_tiling’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:464:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:464:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:464:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_get_tiling’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:499:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:499:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:499:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_attach_aux’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:536:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:536:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:536:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:555:44: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
         gem_ts_obj = drm_gem_object_lookup(file, args->ts_handle);
                                            ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:555:50: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
         gem_ts_obj = drm_gem_object_lookup(file, args->ts_handle);
                                                  ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:555:22: error: too few arguments to function ‘drm_gem_object_lookup’
         gem_ts_obj = drm_gem_object_lookup(file, args->ts_handle);
                      ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_ref_node’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:602:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                     ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:602:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
     gem_obj = drm_gem_object_lookup(file, args->handle);
                                           ^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
                        ^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:602:15: error: too few arguments to function ‘drm_gem_object_lookup’
     gem_obj = drm_gem_object_lookup(file, args->handle);
               ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
 struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,

What I'm doing wrong?
Thanks!

panic in gckKERNEL_CreateProcessDB

Hello!

It's need to remove database from hash after gckKERNEL_DeinitDatabase()
call in gckKERNEL_CreateProcessDB(). In other case it could be found in
hash after another call of gckKERNEL_CreateProcessDB() and the kernel
will go to panic() while gckOS_AtomIncrement() call.

This bug was found with sress-ng test:
./stress-ng --dev-file /dev/galcore --dev 0

Patch:
Index: drivers/mcst/gpu-viv/hal/kernel/gc_hal_kernel_db.c

--- drivers/mcst/gpu-viv/hal/kernel/gc_hal_kernel_db.c (revision 27106)
+++ drivers/mcst/gpu-viv/hal/kernel/gc_hal_kernel_db.c (working copy)
@@ -520,6 +520,39 @@
return status;
}

+static void gckKERNEL_RemoveFromHash(

  • IN gckKERNEL Kernel,
  • IN gctSIZE_T slot,
  • IN gcsDATABASE_PTR database
    +)
    +{
  • gcsDATABASE_PTR db = gcvNULL, prev = gcvNULL;
  • /* Walk the hash list. */
  • for (db = Kernel->db->db[slot];
  •     db != gcvNULL;
    
  •     db = db->next)
    
  • {
  •    if (db->processID == database->processID)
    
  •    {
    
  •        break;
    
  •    }
    
  •    prev = db;
    
  • }
  • /* Remove the database from the hash list. */
  • if (prev)
  • {
  •    prev->next = database->next;
    
  • }
  • else
  • {
  •    Kernel->db->db[slot] = database->next;
    
  • }
    +}

/*******************************************************************************
***** Public API **************************************************************/

@@ -670,6 +703,10 @@
{
gcmkVERIFY_OK(gckKERNEL_DeinitDatabase(Kernel, database));

  •    gckKERNEL_RemoveFromHash(Kernel, slot, database);
    
  •    if (pointer)
       {
           gcmkOS_SAFE_FREE(Kernel->os, pointer);
    

Compiling and Booting on SabreSd with Android Lollipop L5.1.1_2.1.0-ga

Hi Sir,

We are facing 1080p60 video performance issue with the Freescale Sabre SD board running Android Lollipop L5.1.1_2.1.0-ga release. Attached are the Systrace logs captured from prebuilt images, with playing video( lp_good.html) and video+ pulling notification bar (lp_bad.html)

more info of problem are here link

After the bug been reported here, we wanted to try the new GPU 5.0.11p8 driver.

I tried to compile and integrate the freescale gpu driver with the Android Lollipop L5.1.1_2.1.0-ga release.
But I am getting crashes below

I/SurfaceFlinger( 878): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...

D/libEGL ( 878): loaded /system/lib/egl/libEGL_VIVANTE.so

--------- beginning of crash

F/libc ( 878): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x140 in tid 878 (surfaceflinger)
I/DEBUG ( 207): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 207): Build fingerprint: 'Freescale/sabresd_6dq/sabresd_6dq:5.1.1/2.1.0-ga-rc3/20151218:eng/release-keys'
I/DEBUG ( 207): Revision: '0'
I/DEBUG ( 207): ABI: 'arm'
I/DEBUG ( 207): pid: 878, tid: 878, name: surfaceflinger >>> /system/bin/surfaceflinger <<<
I/DEBUG ( 207): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x140
I/DEBUG ( 207): r0 00000140 r1 00000140 r2 b60d60d7 r3 00000000
I/DEBUG ( 207): r4 00000000 r5 ffffffff r6 00000006 r7 be8e6fec
I/DEBUG ( 207): r8 be8e7040 r9 be8e85a8 sl 00000000 fp 00000140
I/DEBUG ( 207): ip b6f5a7bc sp be8e6f30 lr b6f26785 pc b6f0598c cpsr 600f0030
I/DEBUG ( 207):
I/DEBUG ( 207): backtrace:
I/DEBUG ( 207): #00 pc 0001498c /system/lib/libc.so (strlen+15)
I/DEBUG ( 207): #1 pc 00035781 /system/lib/libc.so (__vfprintf+2888)
I/DEBUG ( 207): #2 pc 00038be5 /system/lib/libc.so (vsnprintf+88)
I/DEBUG ( 207): #3 pc 00039a4f /system/lib/libGAL.so
I/DEBUG ( 207): #4 pc 00039b49 /system/lib/libGAL.so (gcoOS_Print+20)
I/DEBUG ( 207): #5 pc 0002c7ab /system/lib/libGAL.so (gcoHAL_ConstructEx+166)
I/DEBUG ( 207): #6 pc 0003b349 /system/lib/libGAL.so (gcoOS_GetTLS+104)
I/DEBUG ( 207): #7 pc 00003dfd /system/lib/egl/libEGL_VIVANTE.so
I/DEBUG ( 207): #8 pc 00008c17 /system/lib/egl/libEGL_VIVANTE.so (eglGetProcAddress+142)

I/DEBUG ( 207): #9 pc 000431bd /system/lib/libEGL.so
I/DEBUG ( 207): #10 pc 0004326f /system/lib/libEGL.so
I/DEBUG ( 207): #11 pc 000107bd /system/lib/libEGL.so
I/DEBUG ( 207): #12 pc 00010f7d /system/lib/libEGL.so (eglGetDisplay+24)
I/DEBUG ( 207): #13 pc 00017f61 /system/lib/libsurfaceflinger.so (android::SurfaceFlinger::init()+44)
I/DEBUG ( 207): #14 pc 00000af1 /system/bin/surfaceflinger
I/DEBUG ( 207): #15 pc 00012df9 /system/lib/libc.so (__libc_init+44)
I/DEBUG ( 207): #16 pc 00000c08 /system/bin/surfaceflinger
W/linker ( 879): libfsl_jpeg_enc_arm11_elinux.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
D/AndroidRuntime( 880): >>>>>> START com.android.internal.os.ZygoteInit uid 0 <<<<<<

Looks like the update libEGL_VIVANTE.so, libGAL.so is needed.

Can you give me some inputs to resolve this.

systrace.zip

Use NN test cause system crash.

System open numa function, then use tensorflow's benchmark_model test, crashed.

The below log:
/ # benchmark_model
[ 1] gcSHADER_WriteBufferToFile: Failed to open the file ./viv_vir_cl_intrinsic_ImgLS.lib for writing
GazeNet average runtime=2.83967ms
[ 2] gcSHADER_WriteBufferToFile: Failed to open the file ./viv_vir_cl_intrinsic_ImgLS.lib for writing
FaceNet average runtime=3.02899ms
GestureSSD average runtime=4.63865ms
GestureSSDVsiOptimized average runtime=6.134ms
FaceSSD average runtime=12.5895ms
FacePersonSSD average runtime=17.6026ms
[ 196.725808@1] kernel BUG at /home/test/hal/os/linux/
kernel/allocator/default/gc_hal_kernel_allocator_gfp.c:465!
[ 196.737578@1] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
[ 196.743169@1] Modules linked in: iv009_isp(O) iv009_isp_sensor(O) iv009_isp_lens(O) iv009_isp_iq(O) galcore(O) dhd(O)
[ 196.753706@1] Process benchmark_model (pid: 1801, stack limit = 0x00000000a149988d)
[ 196.761296@1] CPU: 1 PID: 1801 Comm: benchmark_model Tainted: G W O 4.19.53-g550318ecb8da #0
[ 196.770776@1] Hardware name: Google NQ P1 Development Board (DT)
[ 196.776721@1] pstate: 60400009 (nZCv daif +PAN -UAO)
[ 196.781662@1] pc : _GFPAlloc+0x258/0x3c8 [galcore]
[ 196.786407@1] lr : _GFPAlloc+0xf4/0x3c8 [galcore]
[ 196.791036@1] sp : ffffff8009f5b7a0
[ 196.794487@1] x29: ffffff8009f5b7a0 x28: ffffffc003fb4e00
[ 196.799920@1] x27: ffffffc0075b58a0 x26: ffffff8000de9000
[ 196.805351@1] x25: ffffffc02b14c500 x24: 0000000000241000
[ 196.810787@1] x23: ffffffc003fb4e00 x22: ffffffc007731a80
[ 196.816220@1] x21: ffffffc007731c00 x20: 0000000000000001
[ 196.821654@1] x19: 0000000000000241 x18: 0000000000000000
[ 196.827086@1] x17: 0000000000000000 x16: 0000000000000000
[ 196.832520@1] x15: 0000000000000000 x14: 0000000000000000
[ 196.837954@1] x13: ffffffc01fffed40 x12: ffffffc01fffed50
[ 196.843389@1] x11: ffffffc01fffed30 x10: ffffffc01fffed20
[ 196.848821@1] x9 : 0000000000000400 x8 : 0000000000000000
[ 196.854256@1] x7 : c3c54cda994b7300 x6 : ffffff80080aa060
[ 196.859689@1] x5 : ffffffbf00000000 x4 : ffffff8009036000
[ 196.865125@1] x3 : ffffffbf00000000 x2 : 0000000000000000
[ 196.870557@1] x1 : 0000000000000000 x0 : 0000000000000000
[ 196.875992@1] Call trace:
[ 196.878605@1] _GFPAlloc+0x258/0x3c8 [galcore]
[ 196.883003@1] gckOS_AllocatePagedMemory+0xb8/0x1bc [galcore]
[ 196.888697@1] gckVIDMEM_AllocateVirtual.constprop.10+0xcc/0x140 [galcore]
[ 196.895510@1] gckVIDMEM_NODE_AllocateVirtual+0x64/0xf4 [galcore]
[ 196.901549@1] gckKERNEL_AllocateVideoMemory+0x244/0x338 [galcore]
[ 196.907670@1] _AllocateLinearMemory+0x74/0x13c [galcore]
[ 196.913018@1] gckKERNEL_Dispatch+0x16c/0xc74 [galcore]
[ 196.918199@1] gckDEVICE_Dispatch+0x188/0x2e8 [galcore]
[ 196.923367@1] drv_ioctl+0x134/0x230 [galcore]
[ 196.927750@1] do_vfs_ioctl+0xd0/0xd10
[ 196.931453@1] __arm64_sys_ioctl+0x94/0xa8
[ 196.935511@1] invoke_syscall+0x9c/0xac
[ 196.939302@1] el0_svc_common+0x6c/0xfc
[ 196.943097@1] el0_svc_handler+0x38/0x74
[ 196.946978@1] el0_svc+0x8/0xc
[ 196.950000@1] Code: 17ffffd9 f9400720 f8627801 17ffffbb (d4210000)
[ 196.956214@1] ---[ end trace 059f22c63801fad5 ]---
[ 196.960951@1] Kernel panic - not syncing: Fatal exception
[ 196.966298@1] SMP: stopping secondary CPUs
[ 196.970355@1] Kernel Offset: disabled
[ 196.973973@1] CPU features: 0x0,22802a30
[ 196.977852@1] Memory Limit: none
[ 196.981050@1] Rebooting in 5 seconds..
[ 202.104703@1] reboot reason 12

Source of NPU Part

Hello, is it possible to have source code with NPU? Some vivante gpu implementations like the one in RK1808 does have NPU

Makefile:6: recipe for target 'all' failed

Hello,

I'm trying to build it and having this build issue:

ubuntu@imx6qp:~/gpu_pack/kernel-module-imx-gpu-viv$ make
make -C M=/home/ubuntu/gpu_pack/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv-src AQROOT=/home/ubuntu/gpu_pack/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv-src
make[1]: *** M=/home/ubuntu/gpu_pack/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv-src: No such file or directory. Stop.
Makefile:6: recipe for target 'all' failed
make: *** [all] Error 2

Does KERNEL_SRC needs to be defined before?

error compiling kernel-module-imx-gpu-viv on rocko branch yocto

/os/linux/kernel/gc_hal_kernel_os.c:5990:25: error: implicit declaration of function '__SI_CODE'; did you mean 'USR_MODE'? [-Werror=implicit-function-declaration]
|          info.si_code  = __SI_CODE(__SI_RT, SI_KERNEL);
|                          ^~~~~~~~~
|                          USR_MODE

I am using custom yocto rocko branch. not NXP yocto BSP.
kernel= mainline 4.14

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.