Hi "Mirela,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on shawnguo/for-next robh/for-next linus/master 
v5.12-rc2 next-20210310]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Mirela-Rabulea-OSS/Add-V4L2-driver-for-i-MX8-JPEG-Encoder-Decoder/20210311-083324
base:   git://linuxtv.org/media_tree.git master
config: microblaze-randconfig-r021-20210308 (attached as .config)
compiler: microblaze-linux-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/0day-ci/linux/commit/c6db61a15ca1a173f200f4a2344b3198652d64a6
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Mirela-Rabulea-OSS/Add-V4L2-driver-for-i-MX8-JPEG-Encoder-Decoder/20210311-083324
        git checkout c6db61a15ca1a173f200f4a2344b3198652d64a6
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
ARCH=microblaze 

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

All warnings (new ones prefixed by >>):

   drivers/media/platform/imx-jpeg/mxc-jpeg.c: In function 'mxc_jpeg_probe':
>> drivers/media/platform/imx-jpeg/mxc-jpeg.c:1967:14: warning: cast from 
>> pointer to integer of different size [-Wpointer-to-int-cast]
    1967 |  mode = (int)(u64)of_id->data;
         |              ^


vim +1967 drivers/media/platform/imx-jpeg/mxc-jpeg.c

  1954  
  1955  static int mxc_jpeg_probe(struct platform_device *pdev)
  1956  {
  1957          struct mxc_jpeg_dev *jpeg;
  1958          struct device *dev = &pdev->dev;
  1959          struct resource *res;
  1960          int dec_irq;
  1961          int ret;
  1962          int mode;
  1963          const struct of_device_id *of_id;
  1964          unsigned int slot;
  1965  
  1966          of_id = of_match_node(mxc_jpeg_match, dev->of_node);
> 1967          mode = (int)(u64)of_id->data;
  1968  
  1969          jpeg = devm_kzalloc(dev, sizeof(struct mxc_jpeg_dev), 
GFP_KERNEL);
  1970          if (!jpeg)
  1971                  return -ENOMEM;
  1972  
  1973          mutex_init(&jpeg->lock);
  1974          spin_lock_init(&jpeg->hw_lock);
  1975  
  1976          ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
  1977          if (ret) {
  1978                  dev_err(&pdev->dev, "No suitable DMA available.\n");
  1979                  goto err_irq;
  1980          }
  1981  
  1982          res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  1983          jpeg->base_reg = devm_ioremap_resource(&pdev->dev, res);
  1984          if (IS_ERR(jpeg->base_reg))
  1985                  return PTR_ERR(jpeg->base_reg);
  1986  
  1987          for (slot = 0; slot < MXC_MAX_SLOTS; slot++) {
  1988                  dec_irq = platform_get_irq(pdev, slot);
  1989                  if (dec_irq < 0) {
  1990                          dev_err(&pdev->dev, "Failed to get irq %d\n", 
dec_irq);
  1991                          ret = dec_irq;
  1992                          goto err_irq;
  1993                  }
  1994                  ret = devm_request_irq(&pdev->dev, dec_irq, 
mxc_jpeg_dec_irq,
  1995                                         0, pdev->name, jpeg);
  1996                  if (ret) {
  1997                          dev_err(&pdev->dev, "Failed to request irq %d 
(%d)\n",
  1998                                  dec_irq, ret);
  1999                          goto err_irq;
  2000                  }
  2001          }
  2002  
  2003          jpeg->pdev = pdev;
  2004          jpeg->dev = dev;
  2005          jpeg->mode = mode;
  2006  
  2007          ret = mxc_jpeg_attach_pm_domains(jpeg);
  2008          if (ret < 0) {
  2009                  dev_err(dev, "failed to attach power domains %d\n", 
ret);
  2010                  return ret;
  2011          }
  2012  
  2013          /* v4l2 */
  2014          ret = v4l2_device_register(dev, &jpeg->v4l2_dev);
  2015          if (ret) {
  2016                  dev_err(dev, "failed to register v4l2 device\n");
  2017                  goto err_register;
  2018          }
  2019          jpeg->m2m_dev = v4l2_m2m_init(&mxc_jpeg_m2m_ops);
  2020          if (IS_ERR(jpeg->m2m_dev)) {
  2021                  dev_err(dev, "failed to register v4l2 device\n");
  2022                  goto err_m2m;
  2023          }
  2024  
  2025          jpeg->dec_vdev = video_device_alloc();
  2026          if (!jpeg->dec_vdev) {
  2027                  dev_err(dev, "failed to register v4l2 device\n");
  2028                  goto err_vdev_alloc;
  2029          }
  2030          if (mode == MXC_JPEG_ENCODE)
  2031                  snprintf(jpeg->dec_vdev->name,
  2032                           sizeof(jpeg->dec_vdev->name),
  2033                           "%s-enc", MXC_JPEG_NAME);
  2034          else
  2035                  snprintf(jpeg->dec_vdev->name,
  2036                           sizeof(jpeg->dec_vdev->name),
  2037                           "%s-dec", MXC_JPEG_NAME);
  2038  
  2039          jpeg->dec_vdev->fops = &mxc_jpeg_fops;
  2040          jpeg->dec_vdev->ioctl_ops = &mxc_jpeg_ioctl_ops;
  2041          jpeg->dec_vdev->minor = -1;
  2042          jpeg->dec_vdev->release = video_device_release;
  2043          jpeg->dec_vdev->lock = &jpeg->lock; /* lock for ioctl 
serialization */
  2044          jpeg->dec_vdev->v4l2_dev = &jpeg->v4l2_dev;
  2045          jpeg->dec_vdev->vfl_dir = VFL_DIR_M2M;
  2046          jpeg->dec_vdev->device_caps = V4L2_CAP_STREAMING |
  2047                                          V4L2_CAP_VIDEO_M2M_MPLANE;
  2048          if (mode == MXC_JPEG_ENCODE) {
  2049                  v4l2_disable_ioctl(jpeg->dec_vdev, VIDIOC_DECODER_CMD);
  2050                  v4l2_disable_ioctl(jpeg->dec_vdev, 
VIDIOC_TRY_DECODER_CMD);
  2051          } else {
  2052                  v4l2_disable_ioctl(jpeg->dec_vdev, VIDIOC_ENCODER_CMD);
  2053                  v4l2_disable_ioctl(jpeg->dec_vdev, 
VIDIOC_TRY_ENCODER_CMD);
  2054          }
  2055          ret = video_register_device(jpeg->dec_vdev, VFL_TYPE_VIDEO, -1);
  2056          if (ret) {
  2057                  dev_err(dev, "failed to register video device\n");
  2058                  goto err_vdev_register;
  2059          }
  2060          video_set_drvdata(jpeg->dec_vdev, jpeg);
  2061          if (mode == MXC_JPEG_ENCODE)
  2062                  v4l2_info(&jpeg->v4l2_dev,
  2063                            "encoder device registered as /dev/video%d 
(%d,%d)\n",
  2064                            jpeg->dec_vdev->num, VIDEO_MAJOR,
  2065                            jpeg->dec_vdev->minor);
  2066          else
  2067                  v4l2_info(&jpeg->v4l2_dev,
  2068                            "decoder device registered as /dev/video%d 
(%d,%d)\n",
  2069                            jpeg->dec_vdev->num, VIDEO_MAJOR,
  2070                            jpeg->dec_vdev->minor);
  2071  
  2072          platform_set_drvdata(pdev, jpeg);
  2073  
  2074          return 0;
  2075  
  2076  err_vdev_register:
  2077          video_device_release(jpeg->dec_vdev);
  2078  
  2079  err_vdev_alloc:
  2080          v4l2_m2m_release(jpeg->m2m_dev);
  2081  
  2082  err_m2m:
  2083          v4l2_device_unregister(&jpeg->v4l2_dev);
  2084  
  2085  err_register:
  2086  err_irq:
  2087          return ret;
  2088  }
  2089  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to