All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [freescale-fslc:pr/378 15408/19459] drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for 'viv_gem_prime_export'
@ 2021-06-21 23:37 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-06-21 23:37 UTC (permalink / raw
  To: kbuild-all

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

Hi Xianzhong,

FYI, the error/warning still remains.

tree:   https://github.com/Freescale/linux-fslc pr/378
head:   661d78cf4d62e0ec307e15df8f8ffc67e65530ef
commit: 0cbc4419bd2f810d1689d81f24884bb527bbe5fd [15408/19459] MGS-4929 [#imx-2382] enable vivante drm for linux build
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
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
        # 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/378
        git checkout 0cbc4419bd2f810d1689d81f24884bb527bbe5fd
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

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

   cc1: error: arch/arm/mm: No such file or directory [-Werror=missing-include-dirs]
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for 'viv_gem_prime_export' [-Werror=missing-prototypes]
      79 | 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:103:24: error: no previous prototype for 'viv_gem_prime_import' [-Werror=missing-prototypes]
     103 | 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:145:6: error: no previous prototype for 'viv_gem_free_object' [-Werror=missing-prototypes]
     145 | void viv_gem_free_object(struct drm_gem_object *gem_obj)
         |      ^~~~~~~~~~~~~~~~~~~
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function 'viv_ioctl_gem_create':
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:166:9: error: variable 'ret' set but not used [-Werror=unused-but-set-variable]
     166 |     int ret = 0;
         |         ^~~
   drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: At top level:
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:739:5: error: no previous prototype for 'viv_drm_open' [-Werror=missing-prototypes]
     739 | 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:759:6: error: no previous prototype for 'viv_drm_postclose' [-Werror=missing-prototypes]
     759 | 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:814:5: error: no previous prototype for 'viv_drm_probe' [-Werror=missing-prototypes]
     814 | int viv_drm_probe(struct device *dev)
         |     ^~~~~~~~~~~~~
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:856:5: error: no previous prototype for 'viv_drm_remove' [-Werror=missing-prototypes]
     856 | int viv_drm_remove(struct device *dev)
         |     ^~~~~~~~~~~~~~
   cc1: all warnings being treated as errors


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

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

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

only message in thread, other threads:[~2021-06-21 23:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-21 23:37 [freescale-fslc:pr/378 15408/19459] drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for '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.