Re: [pci:next 20/20] drivers/pci/host/pcie-rockchip-host.c:996:8: error: implicit declaration of function 'devm_of_pci_get_host_bridge_resources'; did you mean 'pci_get_host_bridge_device'?

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

 



On Sat, May 19, 2018 at 07:43:58AM +0800, Shawn Lin wrote:
> Hi all,
> 
> On 2018/5/19 2:46, kbuild test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
> > head:   f8d3ac43d8cd4cfba337a50794c26c7ca89d86ac
> > commit: f8d3ac43d8cd4cfba337a50794c26c7ca89d86ac [20/20] Merge branch 'lorenzo/pci/rockchip'
> 
> Seems Jan's patchset reworking of_pci_get_host_bridge_resources()
> to devm_of_pci_get_host_bridge_resources() which touches pcie-rockchip,
> but series reworking rockchip driver to support EP had been in Lorenzo's
> pci/rockchip branch for quite some days in advance. Then the merge fails
> to build.

Yeah, it took me a while, but I *think* I got this all sorted out in my
"next" branch (current head is a39b04c31a77).

> > config: i386-allmodconfig (attached as .config)
> > compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
> > reproduce:
> >          git checkout f8d3ac43d8cd4cfba337a50794c26c7ca89d86ac
> >          # save the attached .config to linux build tree
> >          make ARCH=i386
> > 
> > All errors (new ones prefixed by >>):
> > 
> >     drivers/pci/host/pcie-rockchip-host.c: In function 'rockchip_pcie_probe':
> > > > drivers/pci/host/pcie-rockchip-host.c:996:8: error: implicit declaration of function 'devm_of_pci_get_host_bridge_resources'; did you mean 'pci_get_host_bridge_device'? [-Werror=implicit-function-declaration]
> >       err = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff,
> >             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >             pci_get_host_bridge_device
> >     cc1: some warnings being treated as errors
> > --
> >     /kbuild/src/cocci/drivers/pci/host/pcie-rockchip-host.c: In function 'rockchip_pcie_probe':
> > > > /kbuild/src/cocci/drivers/pci/host/pcie-rockchip-host.c:996:8: error: implicit declaration of function 'devm_of_pci_get_host_bridge_resources'; did you mean 'pci_get_host_bridge_device'? [-Werror=implicit-function-declaration]
> >       err = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff,
> >             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >             pci_get_host_bridge_device
> >     cc1: some warnings being treated as errors
> > 
> > vim +996 drivers/pci/host/pcie-rockchip-host.c
> > 
> >     944	
> >     945	static int rockchip_pcie_probe(struct platform_device *pdev)
> >     946	{
> >     947		struct rockchip_pcie *rockchip;
> >     948		struct device *dev = &pdev->dev;
> >     949		struct pci_bus *bus, *child;
> >     950		struct pci_host_bridge *bridge;
> >     951		struct resource_entry *win;
> >     952		resource_size_t io_base;
> >     953		struct resource	*mem;
> >     954		struct resource	*io;
> >     955		int err;
> >     956	
> >     957		LIST_HEAD(res);
> >     958	
> >     959		if (!dev->of_node)
> >     960			return -ENODEV;
> >     961	
> >     962		bridge = devm_pci_alloc_host_bridge(dev, sizeof(*rockchip));
> >     963		if (!bridge)
> >     964			return -ENOMEM;
> >     965	
> >     966		rockchip = pci_host_bridge_priv(bridge);
> >     967	
> >     968		platform_set_drvdata(pdev, rockchip);
> >     969		rockchip->dev = dev;
> >     970		rockchip->is_rc = true;
> >     971	
> >     972		err = rockchip_pcie_parse_host_dt(rockchip);
> >     973		if (err)
> >     974			return err;
> >     975	
> >     976		err = rockchip_pcie_enable_clocks(rockchip);
> >     977		if (err)
> >     978			return err;
> >     979	
> >     980		err = rockchip_pcie_set_vpcie(rockchip);
> >     981		if (err) {
> >     982			dev_err(dev, "failed to set vpcie regulator\n");
> >     983			goto err_set_vpcie;
> >     984		}
> >     985	
> >     986		err = rockchip_pcie_host_init_port(rockchip);
> >     987		if (err)
> >     988			goto err_vpcie;
> >     989	
> >     990		rockchip_pcie_enable_interrupts(rockchip);
> >     991	
> >     992		err = rockchip_pcie_init_irq_domain(rockchip);
> >     993		if (err < 0)
> >     994			goto err_deinit_port;
> >     995	
> >   > 996		err = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff,
> >     997							    &res, &io_base);
> >     998		if (err)
> >     999			goto err_remove_irq_domain;
> >    1000	
> >    1001		err = devm_request_pci_bus_resources(dev, &res);
> >    1002		if (err)
> >    1003			goto err_free_res;
> >    1004	
> >    1005		/* Get the I/O and memory ranges from DT */
> >    1006		resource_list_for_each_entry(win, &res) {
> >    1007			switch (resource_type(win->res)) {
> >    1008			case IORESOURCE_IO:
> >    1009				io = win->res;
> >    1010				io->name = "I/O";
> >    1011				rockchip->io_size = resource_size(io);
> >    1012				rockchip->io_bus_addr = io->start - win->offset;
> >    1013				err = pci_remap_iospace(io, io_base);
> >    1014				if (err) {
> >    1015					dev_warn(dev, "error %d: failed to map resource %pR\n",
> >    1016						 err, io);
> >    1017					continue;
> >    1018				}
> >    1019				rockchip->io = io;
> >    1020				break;
> >    1021			case IORESOURCE_MEM:
> >    1022				mem = win->res;
> >    1023				mem->name = "MEM";
> >    1024				rockchip->mem_size = resource_size(mem);
> >    1025				rockchip->mem_bus_addr = mem->start - win->offset;
> >    1026				break;
> >    1027			case IORESOURCE_BUS:
> >    1028				rockchip->root_bus_nr = win->res->start;
> >    1029				break;
> >    1030			default:
> >    1031				continue;
> >    1032			}
> >    1033		}
> >    1034	
> >    1035		err = rockchip_pcie_cfg_atu(rockchip);
> >    1036		if (err)
> >    1037			goto err_unmap_iospace;
> >    1038	
> >    1039		rockchip->msg_region = devm_ioremap(dev, rockchip->msg_bus_addr, SZ_1M);
> >    1040		if (!rockchip->msg_region) {
> >    1041			err = -ENOMEM;
> >    1042			goto err_unmap_iospace;
> >    1043		}
> >    1044	
> >    1045		list_splice_init(&res, &bridge->windows);
> >    1046		bridge->dev.parent = dev;
> >    1047		bridge->sysdata = rockchip;
> >    1048		bridge->busnr = 0;
> >    1049		bridge->ops = &rockchip_pcie_ops;
> >    1050		bridge->map_irq = of_irq_parse_and_map_pci;
> >    1051		bridge->swizzle_irq = pci_common_swizzle;
> >    1052	
> >    1053		err = pci_scan_root_bus_bridge(bridge);
> >    1054		if (err < 0)
> >    1055			goto err_unmap_iospace;
> >    1056	
> >    1057		bus = bridge->bus;
> >    1058	
> >    1059		rockchip->root_bus = bus;
> >    1060	
> >    1061		pci_bus_size_bridges(bus);
> >    1062		pci_bus_assign_resources(bus);
> >    1063		list_for_each_entry(child, &bus->children, node)
> >    1064			pcie_bus_configure_settings(child);
> >    1065	
> >    1066		pci_bus_add_devices(bus);
> >    1067		return 0;
> >    1068	
> >    1069	err_unmap_iospace:
> >    1070		pci_unmap_iospace(rockchip->io);
> >    1071	err_free_res:
> >    1072		pci_free_resource_list(&res);
> >    1073	err_remove_irq_domain:
> >    1074		irq_domain_remove(rockchip->irq_domain);
> >    1075	err_deinit_port:
> >    1076		rockchip_pcie_deinit_phys(rockchip);
> >    1077	err_vpcie:
> >    1078		if (!IS_ERR(rockchip->vpcie12v))
> >    1079			regulator_disable(rockchip->vpcie12v);
> >    1080		if (!IS_ERR(rockchip->vpcie3v3))
> >    1081			regulator_disable(rockchip->vpcie3v3);
> >    1082		if (!IS_ERR(rockchip->vpcie1v8))
> >    1083			regulator_disable(rockchip->vpcie1v8);
> >    1084		if (!IS_ERR(rockchip->vpcie0v9))
> >    1085			regulator_disable(rockchip->vpcie0v9);
> >    1086	err_set_vpcie:
> >    1087		rockchip_pcie_disable_clocks(rockchip);
> >    1088		return err;
> >    1089	}
> >    1090	
> > 
> > ---
> > 0-DAY kernel test infrastructure                Open Source Technology Center
> > https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> > 
> 
> 
> -- 
> Best Regards
> Shawn Lin
> 



[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