All of lore.kernel.org
 help / color / mirror / Atom feed
* [freescale-fslc:pr/383 15408/19551] drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for function 'viv_gem_prime_export'
@ 2021-07-02  5:37 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-07-02  5:37 UTC (permalink / raw)
  To: kbuild-all

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

Hi Xianzhong,

FYI, the error/warning still remains.

tree:   https://github.com/Freescale/linux-fslc pr/383
head:   db8ff65069a384326486a94ec13716a833fbe6fd
commit: 0cbc4419bd2f810d1689d81f24884bb527bbe5fd [15408/19551] MGS-4929 [#imx-2382] enable vivante drm for linux build
config: arm64-randconfig-r011-20210630 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d21d5472501460933e78aead04cf59579025ba4)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://github.com/Freescale/linux-fslc/commit/0cbc4419bd2f810d1689d81f24884bb527bbe5fd
        git remote add freescale-fslc https://github.com/Freescale/linux-fslc
        git fetch --no-tags freescale-fslc pr/383
        git checkout 0cbc4419bd2f810d1689d81f24884bb527bbe5fd
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

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

All errors (new ones prefixed by >>):

   In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:58:
   In file included from include/drm/drmP.h:37:
   In file included from include/linux/dma-mapping.h:11:
   In file included from include/linux/scatterlist.h:8:
   In file included from include/linux/mm.h:99:
   In file included from arch/arm64/include/asm/pgtable.h:14:
   arch/arm64/include/asm/tlbflush.h:200:16: error: variable 'mask' set but not used [-Werror,-Wunused-but-set-variable]
           unsigned long mask = (1 << 20) - 1;
                         ^
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for function 'viv_gem_prime_export' [-Werror,-Wmissing-prototypes]
   struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj,
                   ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj,
   ^
   static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:103:24: error: no previous prototype for function 'viv_gem_prime_import' [-Werror,-Wmissing-prototypes]
   struct drm_gem_object *viv_gem_prime_import(struct drm_device *drm,
                          ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:103:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   struct drm_gem_object *viv_gem_prime_import(struct drm_device *drm,
   ^
   static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:145:6: error: no previous prototype for function 'viv_gem_free_object' [-Werror,-Wmissing-prototypes]
   void viv_gem_free_object(struct drm_gem_object *gem_obj)
        ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:145:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void viv_gem_free_object(struct drm_gem_object *gem_obj)
   ^
   static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:166:9: error: variable 'ret' set but not used [-Werror,-Wunused-but-set-variable]
       int ret = 0;
           ^
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:739:5: error: no previous prototype for function 'viv_drm_open' [-Werror,-Wmissing-prototypes]
   int viv_drm_open(struct drm_device *drm, struct drm_file *file)
       ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:739:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int viv_drm_open(struct drm_device *drm, struct drm_file *file)
   ^
   static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:759:6: error: no previous prototype for function 'viv_drm_postclose' [-Werror,-Wmissing-prototypes]
   void viv_drm_postclose(struct drm_device *drm, struct drm_file *file)
        ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:759:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void viv_drm_postclose(struct drm_device *drm, struct drm_file *file)
   ^
   static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:814:5: error: no previous prototype for function 'viv_drm_probe' [-Werror,-Wmissing-prototypes]
   int viv_drm_probe(struct device *dev)
       ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:814:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int viv_drm_probe(struct device *dev)
   ^
   static 
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:856:5: error: no previous prototype for function 'viv_drm_remove' [-Werror,-Wmissing-prototypes]
   int viv_drm_remove(struct device *dev)
       ^
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:856:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int viv_drm_remove(struct device *dev)
   ^
   static 
   9 errors generated.


vim +/viv_gem_prime_export +79 drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c

30638182fdab7c Xianzhong     2019-01-29   77  
9821cda5105e7d Richard Liu   2019-12-25   78  #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,0)
9821cda5105e7d Richard Liu   2019-12-25  @79  struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj,
9821cda5105e7d Richard Liu   2019-12-25   80                  int flags)
9821cda5105e7d Richard Liu   2019-12-25   81  {
9821cda5105e7d Richard Liu   2019-12-25   82      struct drm_device *drm = gem_obj->dev;
9821cda5105e7d Richard Liu   2019-12-25   83  #else
30638182fdab7c Xianzhong     2019-01-29   84  struct dma_buf *viv_gem_prime_export(struct drm_device *drm,
30638182fdab7c Xianzhong     2019-01-29   85                  struct drm_gem_object *gem_obj,
30638182fdab7c Xianzhong     2019-01-29   86                  int flags)
30638182fdab7c Xianzhong     2019-01-29   87  {
9821cda5105e7d Richard Liu   2019-12-25   88  #endif
30638182fdab7c Xianzhong     2019-01-29   89      struct viv_gem_object *viv_obj = container_of(gem_obj, struct viv_gem_object, base);
30638182fdab7c Xianzhong     2019-01-29   90      struct dma_buf *dmabuf = gcvNULL;
30638182fdab7c Xianzhong     2019-01-29   91      gckGALDEVICE gal_dev = (gckGALDEVICE)drm->dev_private;
30638182fdab7c Xianzhong     2019-01-29   92  
30638182fdab7c Xianzhong     2019-01-29   93      if (gal_dev)
30638182fdab7c Xianzhong     2019-01-29   94      {
30638182fdab7c Xianzhong     2019-01-29   95          gckKERNEL kernel = gal_dev->device->map[gal_dev->device->defaultHwType].kernels[0];
e9371a70921300 Minjie Zhuang 2019-09-23   96          gcmkVERIFY_OK(gckVIDMEM_NODE_Export(kernel, viv_obj->node_object, flags,
30638182fdab7c Xianzhong     2019-01-29   97                                              (gctPOINTER*)&dmabuf, gcvNULL));
30638182fdab7c Xianzhong     2019-01-29   98      }
30638182fdab7c Xianzhong     2019-01-29   99  
30638182fdab7c Xianzhong     2019-01-29  100      return dmabuf;
30638182fdab7c Xianzhong     2019-01-29  101  }
30638182fdab7c Xianzhong     2019-01-29  102  
30638182fdab7c Xianzhong     2019-01-29 @103  struct drm_gem_object *viv_gem_prime_import(struct drm_device *drm,
30638182fdab7c Xianzhong     2019-01-29  104                                              struct dma_buf *dmabuf)
30638182fdab7c Xianzhong     2019-01-29  105  {
30638182fdab7c Xianzhong     2019-01-29  106      struct drm_gem_object *gem_obj = gcvNULL;
30638182fdab7c Xianzhong     2019-01-29  107      struct viv_gem_object *viv_obj;
30638182fdab7c Xianzhong     2019-01-29  108  
30638182fdab7c Xianzhong     2019-01-29  109      gcsHAL_INTERFACE iface;
30638182fdab7c Xianzhong     2019-01-29  110      gckGALDEVICE gal_dev;
30638182fdab7c Xianzhong     2019-01-29  111      gckKERNEL kernel;
30638182fdab7c Xianzhong     2019-01-29  112      gctUINT32 processID;
30638182fdab7c Xianzhong     2019-01-29  113      gckVIDMEM_NODE nodeObject;
30638182fdab7c Xianzhong     2019-01-29  114      gceSTATUS status = gcvSTATUS_OK;
30638182fdab7c Xianzhong     2019-01-29  115  
30638182fdab7c Xianzhong     2019-01-29  116      gal_dev = (gckGALDEVICE)drm->dev_private;
30638182fdab7c Xianzhong     2019-01-29  117      if (!gal_dev)
30638182fdab7c Xianzhong     2019-01-29  118      {
30638182fdab7c Xianzhong     2019-01-29  119          gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
30638182fdab7c Xianzhong     2019-01-29  120      }
30638182fdab7c Xianzhong     2019-01-29  121  
30638182fdab7c Xianzhong     2019-01-29  122      gckOS_ZeroMemory(&iface, sizeof(iface));
30638182fdab7c Xianzhong     2019-01-29  123      iface.command = gcvHAL_WRAP_USER_MEMORY;
30638182fdab7c Xianzhong     2019-01-29  124      iface.hardwareType = gal_dev->device->defaultHwType;
30638182fdab7c Xianzhong     2019-01-29  125      iface.u.WrapUserMemory.desc.flag = gcvALLOC_FLAG_DMABUF;
30638182fdab7c Xianzhong     2019-01-29  126      iface.u.WrapUserMemory.desc.handle = -1;
30638182fdab7c Xianzhong     2019-01-29  127      iface.u.WrapUserMemory.desc.dmabuf = gcmPTR_TO_UINT64(dmabuf);
30638182fdab7c Xianzhong     2019-01-29  128      gcmkONERROR(gckDEVICE_Dispatch(gal_dev->device, &iface));
30638182fdab7c Xianzhong     2019-01-29  129  
30638182fdab7c Xianzhong     2019-01-29  130      kernel = gal_dev->device->map[gal_dev->device->defaultHwType].kernels[0];
30638182fdab7c Xianzhong     2019-01-29  131      gcmkONERROR(gckOS_GetProcessID(&processID));
30638182fdab7c Xianzhong     2019-01-29  132      gcmkONERROR(gckVIDMEM_HANDLE_Lookup(kernel, processID, iface.u.WrapUserMemory.node, &nodeObject));
30638182fdab7c Xianzhong     2019-01-29  133  
30638182fdab7c Xianzhong     2019-01-29  134      /* ioctl output */
30638182fdab7c Xianzhong     2019-01-29  135      gem_obj = kzalloc(sizeof(struct viv_gem_object), GFP_KERNEL);
30638182fdab7c Xianzhong     2019-01-29  136      drm_gem_private_object_init(drm, gem_obj, dmabuf->size);
30638182fdab7c Xianzhong     2019-01-29  137      viv_obj = container_of(gem_obj, struct viv_gem_object, base);
30638182fdab7c Xianzhong     2019-01-29  138      viv_obj->node_handle = iface.u.WrapUserMemory.node;
30638182fdab7c Xianzhong     2019-01-29  139      viv_obj->node_object = nodeObject;
30638182fdab7c Xianzhong     2019-01-29  140  
30638182fdab7c Xianzhong     2019-01-29  141  OnError:
30638182fdab7c Xianzhong     2019-01-29  142      return gem_obj;
30638182fdab7c Xianzhong     2019-01-29  143  }
30638182fdab7c Xianzhong     2019-01-29  144  
30638182fdab7c Xianzhong     2019-01-29 @145  void viv_gem_free_object(struct drm_gem_object *gem_obj)
30638182fdab7c Xianzhong     2019-01-29  146  {
30638182fdab7c Xianzhong     2019-01-29  147      struct viv_gem_object *viv_obj = container_of(gem_obj, struct viv_gem_object, base);
30638182fdab7c Xianzhong     2019-01-29  148      struct drm_device *drm = gem_obj->dev;
30638182fdab7c Xianzhong     2019-01-29  149  
30638182fdab7c Xianzhong     2019-01-29  150      gcsHAL_INTERFACE iface;
30638182fdab7c Xianzhong     2019-01-29  151      gckGALDEVICE gal_dev = (gckGALDEVICE)drm->dev_private;
30638182fdab7c Xianzhong     2019-01-29  152  
30638182fdab7c Xianzhong     2019-01-29  153      gckOS_ZeroMemory(&iface, sizeof(iface));
30638182fdab7c Xianzhong     2019-01-29  154      iface.command = gcvHAL_RELEASE_VIDEO_MEMORY;
30638182fdab7c Xianzhong     2019-01-29  155      iface.hardwareType = gal_dev->device->defaultHwType;
30638182fdab7c Xianzhong     2019-01-29  156      iface.u.ReleaseVideoMemory.node = viv_obj->node_handle;
30638182fdab7c Xianzhong     2019-01-29  157      gcmkVERIFY_OK(gckDEVICE_Dispatch(gal_dev->device, &iface));
30638182fdab7c Xianzhong     2019-01-29  158  
30638182fdab7c Xianzhong     2019-01-29  159      drm_gem_object_release(gem_obj);
30638182fdab7c Xianzhong     2019-01-29  160      kfree(gem_obj);
30638182fdab7c Xianzhong     2019-01-29  161  }
30638182fdab7c Xianzhong     2019-01-29  162  
30638182fdab7c Xianzhong     2019-01-29  163  static int viv_ioctl_gem_create(struct drm_device *drm, void *data,
30638182fdab7c Xianzhong     2019-01-29  164                                  struct drm_file *file)
30638182fdab7c Xianzhong     2019-01-29  165  {
30638182fdab7c Xianzhong     2019-01-29 @166      int ret = 0;
30638182fdab7c Xianzhong     2019-01-29  167      struct drm_viv_gem_create *args = (struct drm_viv_gem_create*)data;
30638182fdab7c Xianzhong     2019-01-29  168      struct drm_gem_object *gem_obj = gcvNULL;
30638182fdab7c Xianzhong     2019-01-29  169      struct viv_gem_object *viv_obj = gcvNULL;
30638182fdab7c Xianzhong     2019-01-29  170  
30638182fdab7c Xianzhong     2019-01-29  171      gcsHAL_INTERFACE iface;
30638182fdab7c Xianzhong     2019-01-29  172      gckGALDEVICE gal_dev;
30638182fdab7c Xianzhong     2019-01-29  173      gckKERNEL kernel;
30638182fdab7c Xianzhong     2019-01-29  174      gctUINT32 processID;
30638182fdab7c Xianzhong     2019-01-29  175      gckVIDMEM_NODE nodeObject;
30638182fdab7c Xianzhong     2019-01-29  176      gctUINT32 flags = gcvALLOC_FLAG_DMABUF_EXPORTABLE;
30638182fdab7c Xianzhong     2019-01-29  177      gceSTATUS status = gcvSTATUS_OK;
e9371a70921300 Minjie Zhuang 2019-09-23  178      gctUINT64 alignSize = PAGE_ALIGN(args->size);
30638182fdab7c Xianzhong     2019-01-29  179  
30638182fdab7c Xianzhong     2019-01-29  180      gal_dev = (gckGALDEVICE)drm->dev_private;
30638182fdab7c Xianzhong     2019-01-29  181      if (!gal_dev)
30638182fdab7c Xianzhong     2019-01-29  182      {
30638182fdab7c Xianzhong     2019-01-29  183          gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
30638182fdab7c Xianzhong     2019-01-29  184      }
30638182fdab7c Xianzhong     2019-01-29  185  
30638182fdab7c Xianzhong     2019-01-29  186      if (args->flags & DRM_VIV_GEM_CONTIGUOUS)
30638182fdab7c Xianzhong     2019-01-29  187      {
30638182fdab7c Xianzhong     2019-01-29  188          flags |= gcvALLOC_FLAG_CONTIGUOUS;
30638182fdab7c Xianzhong     2019-01-29  189      }
30638182fdab7c Xianzhong     2019-01-29  190      if (args->flags & DRM_VIV_GEM_CACHED)
30638182fdab7c Xianzhong     2019-01-29  191      {
30638182fdab7c Xianzhong     2019-01-29  192          flags |= gcvALLOC_FLAG_CACHEABLE;
30638182fdab7c Xianzhong     2019-01-29  193      }
30638182fdab7c Xianzhong     2019-01-29  194      if (args->flags & DRM_VIV_GEM_SECURE)
30638182fdab7c Xianzhong     2019-01-29  195      {
30638182fdab7c Xianzhong     2019-01-29  196          flags |= gcvALLOC_FLAG_SECURITY;
30638182fdab7c Xianzhong     2019-01-29  197      }
30638182fdab7c Xianzhong     2019-01-29  198      if (args->flags & DRM_VIV_GEM_CMA_LIMIT)
30638182fdab7c Xianzhong     2019-01-29  199      {
30638182fdab7c Xianzhong     2019-01-29  200          flags |= gcvALLOC_FLAG_CMA_LIMIT;
30638182fdab7c Xianzhong     2019-01-29  201      }
30638182fdab7c Xianzhong     2019-01-29  202  
30638182fdab7c Xianzhong     2019-01-29  203      gckOS_ZeroMemory(&iface, sizeof(iface));
30638182fdab7c Xianzhong     2019-01-29  204      iface.command = gcvHAL_ALLOCATE_LINEAR_VIDEO_MEMORY;
30638182fdab7c Xianzhong     2019-01-29  205      iface.hardwareType = gal_dev->device->defaultHwType;
e9371a70921300 Minjie Zhuang 2019-09-23  206      iface.u.AllocateLinearVideoMemory.bytes = alignSize;
30638182fdab7c Xianzhong     2019-01-29  207      iface.u.AllocateLinearVideoMemory.alignment = 256;
e9371a70921300 Minjie Zhuang 2019-09-23  208      iface.u.AllocateLinearVideoMemory.type = gcvVIDMEM_TYPE_GENERIC;
30638182fdab7c Xianzhong     2019-01-29  209      iface.u.AllocateLinearVideoMemory.flag = flags;
e9371a70921300 Minjie Zhuang 2019-09-23  210      iface.u.AllocateLinearVideoMemory.pool = gcvPOOL_DEFAULT;
30638182fdab7c Xianzhong     2019-01-29  211      gcmkONERROR(gckDEVICE_Dispatch(gal_dev->device, &iface));
30638182fdab7c Xianzhong     2019-01-29  212  
30638182fdab7c Xianzhong     2019-01-29  213      kernel = gal_dev->device->map[gal_dev->device->defaultHwType].kernels[0];
30638182fdab7c Xianzhong     2019-01-29  214      gcmkONERROR(gckOS_GetProcessID(&processID));
30638182fdab7c Xianzhong     2019-01-29  215      gcmkONERROR(gckVIDMEM_HANDLE_Lookup(kernel, processID, iface.u.AllocateLinearVideoMemory.node, &nodeObject));
30638182fdab7c Xianzhong     2019-01-29  216  
30638182fdab7c Xianzhong     2019-01-29  217      /* ioctl output */
30638182fdab7c Xianzhong     2019-01-29  218      gem_obj = kzalloc(sizeof(struct viv_gem_object), GFP_KERNEL);
e9371a70921300 Minjie Zhuang 2019-09-23  219      drm_gem_private_object_init(drm, gem_obj, (size_t)alignSize);
30638182fdab7c Xianzhong     2019-01-29  220      ret = drm_gem_handle_create(file, gem_obj, &args->handle);
30638182fdab7c Xianzhong     2019-01-29  221  
30638182fdab7c Xianzhong     2019-01-29  222      viv_obj = container_of(gem_obj, struct viv_gem_object, base);
30638182fdab7c Xianzhong     2019-01-29  223      viv_obj->node_handle = iface.u.AllocateLinearVideoMemory.node;
30638182fdab7c Xianzhong     2019-01-29  224      viv_obj->node_object = nodeObject;
30638182fdab7c Xianzhong     2019-01-29  225      viv_obj->cacheable = flags & gcvALLOC_FLAG_CACHEABLE;
30638182fdab7c Xianzhong     2019-01-29  226  
30638182fdab7c Xianzhong     2019-01-29  227      /* drop reference from allocate - handle holds it now */
30638182fdab7c Xianzhong     2019-01-29  228      drm_gem_object_unreference_unlocked(gem_obj);
30638182fdab7c Xianzhong     2019-01-29  229  
30638182fdab7c Xianzhong     2019-01-29  230  OnError:
30638182fdab7c Xianzhong     2019-01-29  231      return gcmIS_ERROR(status) ? -ENOTTY : 0;
30638182fdab7c Xianzhong     2019-01-29  232  }
30638182fdab7c Xianzhong     2019-01-29  233  

:::::: The code at line 79 was first introduced by commit
:::::: 9821cda5105e7d6bf026a4f21f927745a3f6b931 MA-16168 [#imx-1903] Fix GPU driver build error and not work issue on 5.4 kernel

:::::: TO: Richard Liu <xuegang.liu@nxp.com>
:::::: CC: Xianzhong <xianzhong.li@nxp.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-07-02  5:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-02  5:37 [freescale-fslc:pr/383 15408/19551] drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for function 'viv_gem_prime_export' kernel test robot

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.