Hi Lubomir,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v4.20-rc1 next-20181112]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Lubomir-Rintel/media-make-Marvell-camera-work-on-DT-based-OLPC-XO-1-75/20181112-163212
base:   git://linuxtv.org/media_tree.git master
config: x86_64-randconfig-x003-11121005 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the 
linux-review/Lubomir-Rintel/media-make-Marvell-camera-work-on-DT-based-OLPC-XO-1-75/20181112-163212
 HEAD e78fa6428e22bbc61543f031695ad6f204f32344 builds fine.
      It only hurts bisectibility.

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

   drivers/media/platform/marvell-ccic/cafe-driver.c: In function 
'cafe_pci_probe':
>> drivers/media/platform/marvell-ccic/cafe-driver.c:563:2: error: implicit 
>> declaration of function 'cafe_shutdown'; did you mean 'mccic_shutdown'? 
>> [-Werror=implicit-function-declaration]
     cafe_shutdown(cam);
     ^~~~~~~~~~~~~
     mccic_shutdown
   drivers/media/platform/marvell-ccic/cafe-driver.c: At top level:
>> drivers/media/platform/marvell-ccic/cafe-driver.c:583:13: warning: 
>> conflicting types for 'cafe_shutdown'
    static void cafe_shutdown(struct cafe_camera *cam)
                ^~~~~~~~~~~~~
>> drivers/media/platform/marvell-ccic/cafe-driver.c:583:13: error: static 
>> declaration of 'cafe_shutdown' follows non-static declaration
   drivers/media/platform/marvell-ccic/cafe-driver.c:563:2: note: previous 
implicit declaration of 'cafe_shutdown' was here
     cafe_shutdown(cam);
     ^~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +563 drivers/media/platform/marvell-ccic/cafe-driver.c

   481  
   482  /* 
-------------------------------------------------------------------------- */
   483  /*
   484   * PCI interface stuff.
   485   */
   486  
   487  static int cafe_pci_probe(struct pci_dev *pdev,
   488                  const struct pci_device_id *id)
   489  {
   490          int ret;
   491          struct cafe_camera *cam;
   492          struct mcam_camera *mcam;
   493  
   494          /*
   495           * Start putting together one of our big camera structures.
   496           */
   497          ret = -ENOMEM;
   498          cam = kzalloc(sizeof(struct cafe_camera), GFP_KERNEL);
   499          if (cam == NULL)
   500                  goto out;
   501          cam->pdev = pdev;
   502          mcam = &cam->mcam;
   503          mcam->chip_id = MCAM_CAFE;
   504          spin_lock_init(&mcam->dev_lock);
   505          init_waitqueue_head(&cam->smbus_wait);
   506          mcam->plat_power_up = cafe_ctlr_power_up;
   507          mcam->plat_power_down = cafe_ctlr_power_down;
   508          mcam->dev = &pdev->dev;
   509          snprintf(mcam->bus_info, sizeof(mcam->bus_info), "PCI:%s", 
pci_name(pdev));
   510          /*
   511           * Vmalloc mode for buffers is traditional with this driver.
   512           * We *might* be able to run DMA_contig, especially on a system
   513           * with CMA in it.
   514           */
   515          mcam->buffer_mode = B_vmalloc;
   516          /*
   517           * Get set up on the PCI bus.
   518           */
   519          ret = pci_enable_device(pdev);
   520          if (ret)
   521                  goto out_free;
   522          pci_set_master(pdev);
   523  
   524          ret = -EIO;
   525          mcam->regs = pci_iomap(pdev, 0, 0);
   526          if (!mcam->regs) {
   527                  printk(KERN_ERR "Unable to ioremap cafe-ccic regs\n");
   528                  goto out_disable;
   529          }
   530          mcam->regs_size = pci_resource_len(pdev, 0);
   531          ret = request_irq(pdev->irq, cafe_irq, IRQF_SHARED, 
"cafe-ccic", cam);
   532          if (ret)
   533                  goto out_iounmap;
   534  
   535          /*
   536           * Initialize the controller and leave it powered up.  It will
   537           * stay that way until the sensor driver shows up.
   538           */
   539          cafe_ctlr_init(mcam);
   540          cafe_ctlr_power_up(mcam);
   541          /*
   542           * Set up I2C/SMBUS communications.  We have to drop the mutex 
here
   543           * because the sensor could attach in this call chain, leading 
to
   544           * unsightly deadlocks.
   545           */
   546          ret = cafe_smbus_setup(cam);
   547          if (ret)
   548                  goto out_pdown;
   549  
   550          mcam->asd.match_type = V4L2_ASYNC_MATCH_I2C;
   551          mcam->asd.match.i2c.adapter_id = 
i2c_adapter_id(cam->i2c_adapter);
   552          mcam->asd.match.i2c.address = ov7670_info.addr;
   553  
   554          ret = mccic_register(mcam);
   555          if (ret)
   556                  goto out_smbus_shutdown;
   557  
   558          if (i2c_new_device(cam->i2c_adapter, &ov7670_info)) {
   559                  cam->registered = 1;
   560                  return 0;
   561          }
   562  
 > 563          cafe_shutdown(cam);
   564  out_smbus_shutdown:
   565          cafe_smbus_shutdown(cam);
   566  out_pdown:
   567          cafe_ctlr_power_down(mcam);
   568          free_irq(pdev->irq, cam);
   569  out_iounmap:
   570          pci_iounmap(pdev, mcam->regs);
   571  out_disable:
   572          pci_disable_device(pdev);
   573  out_free:
   574          kfree(cam);
   575  out:
   576          return ret;
   577  }
   578  
   579  
   580  /*
   581   * Shut down an initialized device
   582   */
 > 583  static void cafe_shutdown(struct cafe_camera *cam)
   584  {
   585          mccic_shutdown(&cam->mcam);
   586          cafe_smbus_shutdown(cam);
   587          free_irq(cam->pdev->irq, cam);
   588          pci_iounmap(cam->pdev, cam->mcam.regs);
   589  }
   590  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to