Hi Hui-Ping,

kernel test robot noticed the following build warnings:

[auto build test WARNING on mtd/nand/next]
[also build test WARNING on linus/master v6.11-rc3 next-20240812]
[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#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Hui-Ping-Chen/dt-bindings-mtd-nuvoton-ma35d1-nand-add-new-bindings/20240812-110259
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next
patch link:    
https://lore.kernel.org/r/20240812030045.20831-3-hpchen0nvt%40gmail.com
patch subject: [PATCH 2/2] mtd: rawnand: nuvoton: add new driver for the 
Nuvoton MA35 SoC
config: x86_64-allyesconfig 
(https://download.01.org/0day-ci/archive/20240812/202408122007.qutidxpr-...@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 
617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20240812/202408122007.qutidxpr-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202408122007.qutidxpr-...@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:991:29: warning: cast from 
>> 'irqreturn_t (*)(int, struct ma35_nand_info *)' (aka 'enum irqreturn 
>> (*)(int, struct ma35_nand_info *)') to 'irq_handler_t' (aka 'enum irqreturn 
>> (*)(int, void *)') converts to incompatible function type 
>> [-Wcast-function-type-strict]
     991 |         if (request_irq(nand->irq, (irq_handler_t)&ma35_nand_irq,
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.


vim +991 drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c

   921  
   922  static int ma35_nand_probe(struct platform_device *pdev)
   923  {
   924          struct ma35_nand_info *nand;
   925          struct nand_chip *chip;
   926          struct mtd_info *mtd;
   927          int retval = 0;
   928  
   929          nand = devm_kzalloc(&pdev->dev, sizeof(struct ma35_nand_info), 
GFP_KERNEL);
   930          if (!nand)
   931                  return -ENOMEM;
   932  
   933          nand_controller_init(&nand->controller);
   934  
   935          nand->regs = devm_platform_ioremap_resource(pdev, 0);
   936          if (IS_ERR(nand->regs))
   937                  return PTR_ERR(nand->regs);
   938  
   939          nand->dev = &pdev->dev;
   940          chip = &nand->chip;
   941          mtd = nand_to_mtd(chip);
   942          nand_set_controller_data(chip, nand);
   943          nand_set_flash_node(chip, pdev->dev.of_node);
   944  
   945          mtd->priv = chip;
   946          mtd->owner = THIS_MODULE;
   947          mtd->dev.parent = &pdev->dev;
   948  
   949          nand->clk = of_clk_get(pdev->dev.of_node, 0);
   950          if (IS_ERR(nand->clk))
   951                  return dev_err_probe(&pdev->dev, PTR_ERR(nand->clk),
   952                                       "failed to find nand clock\n");
   953  
   954          retval = clk_prepare_enable(nand->clk);
   955          if (retval < 0) {
   956                  dev_err(&pdev->dev, "Failed to enable clock\n");
   957                  return -ENXIO;
   958          }
   959  
   960          nand->chip.controller    = &nand->controller;
   961  
   962          chip->legacy.cmdfunc     = ma35_nand_command;
   963          chip->legacy.waitfunc    = ma35_waitfunc;
   964          chip->legacy.read_byte   = ma35_nand_read_byte;
   965          chip->legacy.select_chip = ma35_nand_select_chip;
   966          chip->legacy.read_buf    = ma35_read_buf_dma;
   967          chip->legacy.write_buf   = ma35_write_buf_dma;
   968          chip->legacy.dev_ready   = ma35_nand_devready;
   969          chip->legacy.chip_delay  = 25; /* us */
   970  
   971          /* Read OOB data first, then HW read page */
   972          chip->ecc.hwctl      = ma35_nand_enable_hwecc;
   973          chip->ecc.calculate  = ma35_nand_calculate_ecc;
   974          chip->ecc.correct    = ma35_nand_correct_data;
   975          chip->ecc.write_page = ma35_nand_write_page_hwecc;
   976          chip->ecc.read_page  = ma35_nand_read_page_hwecc_oob_first;
   977          chip->ecc.read_oob   = ma35_nand_read_oob_hwecc;
   978          chip->options |= (NAND_NO_SUBPAGE_WRITE | NAND_USES_DMA);
   979  
   980          ma35_nand_initialize(nand);
   981          platform_set_drvdata(pdev, nand);
   982  
   983          nand->controller.ops = &ma35_nand_controller_ops;
   984  
   985          nand->irq = platform_get_irq(pdev, 0);
   986          if (nand->irq < 0) {
   987                  dev_err(&pdev->dev, "failed to get platform irq\n");
   988                  return -EINVAL;
   989          }
   990  
 > 991          if (request_irq(nand->irq, (irq_handler_t)&ma35_nand_irq,
   992                          IRQF_TRIGGER_HIGH, "ma35d1-nand", nand)) {
   993                  dev_err(&pdev->dev, "Error requesting NAND IRQ\n");
   994                  return -ENXIO;
   995          }
   996  
   997          retval = nand_scan(chip, 1);
   998          if (retval)
   999                  return retval;
  1000  
  1001          if (mtd_device_register(mtd, nand->parts, nand->nr_parts)) {
  1002                  nand_cleanup(chip);
  1003                  devm_kfree(&pdev->dev, nand);
  1004                  return retval;
  1005          }
  1006  
  1007          pr_info("ma35-nfi: registered successfully! mtdid=%s\n", 
mtd->name);
  1008  
  1009          return retval;
  1010  }
  1011  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to