Hi Jon,

I love your patch! Yet something to improve:

[auto build test ERROR on tegra/for-next]
[cannot apply to v5.4-rc3 next-20191011]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Jon-Hunter/mailbox-tegra-Fix-superfluous-IRQ-error-message/20191014-052329
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 7.4.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>

All errors (new ones prefixed by >>):

   drivers//mailbox/tegra-hsp.c: In function 'tegra_hsp_probe':
>> drivers//mailbox/tegra-hsp.c:660:8: error: implicit declaration of function 
>> 'platform_get_irq_byname_optional'; did you mean 
>> 'platform_get_irq_optional'? [-Werror=implicit-function-declaration]
     err = platform_get_irq_byname_optional(pdev, "doorbell");
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           platform_get_irq_optional
   cc1: some warnings being treated as errors

vim +660 drivers//mailbox/tegra-hsp.c

   630  
   631  static int tegra_hsp_probe(struct platform_device *pdev)
   632  {
   633          struct tegra_hsp *hsp;
   634          struct resource *res;
   635          unsigned int i;
   636          u32 value;
   637          int err;
   638  
   639          hsp = devm_kzalloc(&pdev->dev, sizeof(*hsp), GFP_KERNEL);
   640          if (!hsp)
   641                  return -ENOMEM;
   642  
   643          hsp->dev = &pdev->dev;
   644          hsp->soc = of_device_get_match_data(&pdev->dev);
   645          INIT_LIST_HEAD(&hsp->doorbells);
   646          spin_lock_init(&hsp->lock);
   647  
   648          res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   649          hsp->regs = devm_ioremap_resource(&pdev->dev, res);
   650          if (IS_ERR(hsp->regs))
   651                  return PTR_ERR(hsp->regs);
   652  
   653          value = tegra_hsp_readl(hsp, HSP_INT_DIMENSIONING);
   654          hsp->num_sm = (value >> HSP_nSM_SHIFT) & HSP_nINT_MASK;
   655          hsp->num_ss = (value >> HSP_nSS_SHIFT) & HSP_nINT_MASK;
   656          hsp->num_as = (value >> HSP_nAS_SHIFT) & HSP_nINT_MASK;
   657          hsp->num_db = (value >> HSP_nDB_SHIFT) & HSP_nINT_MASK;
   658          hsp->num_si = (value >> HSP_nSI_SHIFT) & HSP_nINT_MASK;
   659  
 > 660          err = platform_get_irq_byname_optional(pdev, "doorbell");
   661          if (err >= 0)
   662                  hsp->doorbell_irq = err;
   663  
   664          if (hsp->num_si > 0) {
   665                  unsigned int count = 0;
   666  
   667                  hsp->shared_irqs = devm_kcalloc(&pdev->dev, hsp->num_si,
   668                                                  
sizeof(*hsp->shared_irqs),
   669                                                  GFP_KERNEL);
   670                  if (!hsp->shared_irqs)
   671                          return -ENOMEM;
   672  
   673                  for (i = 0; i < hsp->num_si; i++) {
   674                          char *name;
   675  
   676                          name = kasprintf(GFP_KERNEL, "shared%u", i);
   677                          if (!name)
   678                                  return -ENOMEM;
   679  
   680                          err = platform_get_irq_byname_optional(pdev, 
name);
   681                          if (err >= 0) {
   682                                  hsp->shared_irqs[i] = err;
   683                                  count++;
   684                          }
   685  
   686                          kfree(name);
   687                  }
   688  
   689                  if (count == 0) {
   690                          devm_kfree(&pdev->dev, hsp->shared_irqs);
   691                          hsp->shared_irqs = NULL;
   692                  }
   693          }
   694  
   695          /* setup the doorbell controller */
   696          hsp->mbox_db.of_xlate = tegra_hsp_db_xlate;
   697          hsp->mbox_db.num_chans = 32;
   698          hsp->mbox_db.dev = &pdev->dev;
   699          hsp->mbox_db.ops = &tegra_hsp_db_ops;
   700  
   701          hsp->mbox_db.chans = devm_kcalloc(&pdev->dev, 
hsp->mbox_db.num_chans,
   702                                            sizeof(*hsp->mbox_db.chans),
   703                                            GFP_KERNEL);
   704          if (!hsp->mbox_db.chans)
   705                  return -ENOMEM;
   706  
   707          if (hsp->doorbell_irq) {
   708                  err = tegra_hsp_add_doorbells(hsp);
   709                  if (err < 0) {
   710                          dev_err(&pdev->dev, "failed to add doorbells: 
%d\n",
   711                                  err);
   712                          return err;
   713                  }
   714          }
   715  
   716          err = devm_mbox_controller_register(&pdev->dev, &hsp->mbox_db);
   717          if (err < 0) {
   718                  dev_err(&pdev->dev, "failed to register doorbell 
mailbox: %d\n",
   719                          err);
   720                  return err;
   721          }
   722  
   723          /* setup the shared mailbox controller */
   724          hsp->mbox_sm.of_xlate = tegra_hsp_sm_xlate;
   725          hsp->mbox_sm.num_chans = hsp->num_sm;
   726          hsp->mbox_sm.dev = &pdev->dev;
   727          hsp->mbox_sm.ops = &tegra_hsp_sm_ops;
   728  
   729          hsp->mbox_sm.chans = devm_kcalloc(&pdev->dev, 
hsp->mbox_sm.num_chans,
   730                                            sizeof(*hsp->mbox_sm.chans),
   731                                            GFP_KERNEL);
   732          if (!hsp->mbox_sm.chans)
   733                  return -ENOMEM;
   734  
   735          if (hsp->shared_irqs) {
   736                  err = tegra_hsp_add_mailboxes(hsp, &pdev->dev);
   737                  if (err < 0) {
   738                          dev_err(&pdev->dev, "failed to add mailboxes: 
%d\n",
   739                                  err);
   740                          return err;
   741                  }
   742          }
   743  
   744          err = devm_mbox_controller_register(&pdev->dev, &hsp->mbox_sm);
   745          if (err < 0) {
   746                  dev_err(&pdev->dev, "failed to register shared mailbox: 
%d\n",
   747                          err);
   748                  return err;
   749          }
   750  
   751          platform_set_drvdata(pdev, hsp);
   752  
   753          if (hsp->doorbell_irq) {
   754                  err = devm_request_irq(&pdev->dev, hsp->doorbell_irq,
   755                                         tegra_hsp_doorbell_irq, 
IRQF_NO_SUSPEND,
   756                                         dev_name(&pdev->dev), hsp);
   757                  if (err < 0) {
   758                          dev_err(&pdev->dev,
   759                                  "failed to request doorbell IRQ#%u: 
%d\n",
   760                                  hsp->doorbell_irq, err);
   761                          return err;
   762                  }
   763          }
   764  
   765          if (hsp->shared_irqs) {
   766                  err = tegra_hsp_request_shared_irq(hsp);
   767                  if (err < 0)
   768                          return err;
   769          }
   770  
   771          return 0;
   772  }
   773  

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