[pci:controller/mediatek 2/2] drivers/pci/controller/pcie-mediatek-gen3.c:898:14: error: call to undeclared function 'of_property_read_u31'; ISO C99 and later do not support implicit function declarations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git controller/mediatek
head:   2bee4c1a6fc0408242aedca80a102ef50c0dfbe5
commit: 2bee4c1a6fc0408242aedca80a102ef50c0dfbe5 [2/2] PCI: mediatek-gen3: Add support for restricting link width
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20241107/202411070452.OBJPnFbT-lkp@xxxxxxxxx/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241107/202411070452.OBJPnFbT-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411070452.OBJPnFbT-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

   In file included from drivers/pci/controller/pcie-mediatek-gen3.c:22:
   In file included from include/linux/pci.h:1650:
   In file included from include/linux/dmapool.h:14:
   In file included from include/linux/scatterlist.h:8:
   In file included from include/linux/mm.h:2213:
   include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     504 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     505 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     511 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     512 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     524 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     525 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/pci/controller/pcie-mediatek-gen3.c:898:14: error: call to undeclared function 'of_property_read_u31'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     898 |        ret = of_property_read_u31(dev->of_node, "num-lanes", &num_lanes);
         |              ^
   drivers/pci/controller/pcie-mediatek-gen3.c:898:14: note: did you mean 'of_property_read_u32'?
   include/linux/of.h:1412:19: note: 'of_property_read_u32' declared here
    1412 | static inline int of_property_read_u32(const struct device_node *np,
         |                   ^
   4 warnings and 1 error generated.

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for MODVERSIONS
   Depends on [n]: MODULES [=y] && !COMPILE_TEST [=y]
   Selected by [y]:
   - RANDSTRUCT_FULL [=y] && (CC_HAS_RANDSTRUCT [=y] || GCC_PLUGINS [=n]) && MODULES [=y]


vim +/of_property_read_u31 +898 drivers/pci/controller/pcie-mediatek-gen3.c

   845	
   846	static int mtk_pcie_parse_port(struct mtk_gen3_pcie *pcie)
   847	{
   848		int i, ret, num_resets = pcie->soc->phy_resets.num_resets;
   849		struct device *dev = pcie->dev;
   850		struct platform_device *pdev = to_platform_device(dev);
   851		struct resource *regs;
   852		u32 num_lanes;
   853	
   854		regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcie-mac");
   855		if (!regs)
   856			return -EINVAL;
   857		pcie->base = devm_ioremap_resource(dev, regs);
   858		if (IS_ERR(pcie->base)) {
   859			dev_err(dev, "failed to map register base\n");
   860			return PTR_ERR(pcie->base);
   861		}
   862	
   863		pcie->reg_base = regs->start;
   864	
   865		for (i = 0; i < num_resets; i++)
   866			pcie->phy_resets[i].id = pcie->soc->phy_resets.id[i];
   867	
   868		ret = devm_reset_control_bulk_get_optional_shared(dev, num_resets, pcie->phy_resets);
   869		if (ret) {
   870			dev_err(dev, "failed to get PHY bulk reset\n");
   871			return ret;
   872		}
   873	
   874		pcie->mac_reset = devm_reset_control_get_optional_exclusive(dev, "mac");
   875		if (IS_ERR(pcie->mac_reset)) {
   876			ret = PTR_ERR(pcie->mac_reset);
   877			if (ret != -EPROBE_DEFER)
   878				dev_err(dev, "failed to get MAC reset\n");
   879	
   880			return ret;
   881		}
   882	
   883		pcie->phy = devm_phy_optional_get(dev, "pcie-phy");
   884		if (IS_ERR(pcie->phy)) {
   885			ret = PTR_ERR(pcie->phy);
   886			if (ret != -EPROBE_DEFER)
   887				dev_err(dev, "failed to get PHY\n");
   888	
   889			return ret;
   890		}
   891	
   892		pcie->num_clks = devm_clk_bulk_get_all(dev, &pcie->clks);
   893		if (pcie->num_clks < 0) {
   894			dev_err(dev, "failed to get clocks\n");
   895			return pcie->num_clks;
   896		}
   897	
 > 898	       ret = of_property_read_u31(dev->of_node, "num-lanes", &num_lanes);
   899	       if (ret == 0) {
   900		       if (num_lanes == 0 || num_lanes > 16 || (num_lanes != 1 && num_lanes % 2))
   901				dev_warn(dev, "invalid num-lanes, using controller defaults\n");
   902		       else
   903				pcie->num_lanes = num_lanes;
   904	       }
   905	
   906		return 0;
   907	}
   908	

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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux